Merge remote-tracking branch 'origin/fix_req' into fix_req

# Conflicts:
#	requirements.txt
feature/fix_accout_not_found
Andrey 8 years ago
parent ea39c1815d
commit 68fdd77e07
  1. 11
      access/models/user.py
  2. 10
      access/urls.py
  3. 62
      access/views.py
  4. 3
      lms/settings.py

@ -5,7 +5,7 @@ import uuid
from django.conf import settings
from django.contrib.auth.base_user import BaseUserManager, AbstractBaseUser
from django.contrib.auth.models import Group, PermissionsMixin
from django.core.mail import send_mail
from django.core.mail import send_mail, EmailMessage
from django.db import models
from django.utils import timezone
from django.utils.translation import ugettext_lazy as _
@ -70,16 +70,17 @@ class CustomUserManager(BaseUserManager):
hash=''.join(random.choice(string.ascii_letters) for x in range(15)))
body = {
"subject": 'Спасибо за регистрацию',
"message": '''
"body": '''
Вы были успешны зарегистрированны на портале go.skillbox.ru
ваш пароль %s
ваш пароль (он будет дествителен после активации по ссылке) %s
для подтверждения регистрации перейдите по ссылке
%s/api/v1/users/registration/?hash=%s''' % (password, settings.DOMAIN, invite.hash),
"from_email": 'robo@skillbox.ru',
"recipient_list": [user.email],
"to": [user.email],
"bcc": [settings.SUPPORT_EMAIL],
}
send_mail(
EmailMessage(
**body
)
return user

@ -18,10 +18,10 @@ urlpatterns = [
url(r'logout/$', views.LogoutView.as_view()),
url(r'reset/$', views.ResetPasswordView.as_view()),
url(r'progress_detail/upload/(?P<token>[0-9A-Fa-f-]+)/$', progress.views.UploadCourseProgressUserView.as_view()),
# url(
# r'management/password/$',
# views.ManagementPassword.as_view(),
# name='management-password'
# )
url(
r'management/password/$',
views.ManagementPassword.as_view(),
name='management-password'
)
]

@ -152,10 +152,10 @@ class DetailUserView(APIView):
if not acc['b_day'] is None:
try:
b_day = datetime.datetime.strptime(acc['b_day'], '%d.%m.%Y') # TODO вынести форматы в настройки
b_day = datetime.datetime.strptime(acc['b_day'], '%Y-%m-%d')
except ValueError:
b_day = datetime.datetime.strptime(acc['b_day'], '%d-%m-%Y')
acc['b_day'] = b_day.strftime('%Y-%m-%d')
return Response("Дата в не верном формате", status=400)
acc['b_day'] = b_day
acc['gender'] = 0 if acc['gender'] == "undefined" else 1 if acc['gender'] == "male" else 2
@ -292,31 +292,31 @@ class MinUserView(APIView):
return Response("User not found", status=404)
# class ManagementPassword(generics.GenericAPIView):
# permission_classes = (permissions.IsAuthenticated, permissions.IsAdminUser)
# serializer_class = UserEmailSerializer
#
# def post(self, request):
# """
# Set password to the student in admin area by manager
# ---
# Generate new password to the student and send email with new password
# """
# serializer = self.get_serializer(data=request.data)
# serializer.is_valid(raise_exception=True)
# serializer.save()
# logger.info(f'set password: {serializer.password} to the '
# f'student with email: {serializer.user.email}')
# send_mail(
# subject='Установлен новый пароль',
# message=f'Ваш новый пароль {serializer.password} '
# f'(в последствии вы сможите сменить его в личном кабинете).',
# from_email='robo@skillbox.ru',
# recipient_list=[serializer.user.email],
# )
# logger.info(f'send email to {serializer.user.email} '
# f'with new password')
# return Response(
# data={'message': 'Письмо с новым паролем отправлено на email студента.'},
# status=status.HTTP_201_CREATED
# )
class ManagementPassword(generics.GenericAPIView):
permission_classes = (permissions.IsAuthenticated, permissions.IsAdminUser)
serializer_class = UserEmailSerializer
def post(self, request):
"""
Set password to the student in admin area by manager
---
Generate new password to the student and send email with new password
"""
serializer = self.get_serializer(data=request.data)
serializer.is_valid(raise_exception=True)
serializer.save()
logger.info(f'set password: {serializer.password} to the '
f'student with email: {serializer.user.email}')
send_mail(
subject='Установлен новый пароль',
message=f'Ваш новый пароль {serializer.password} '
f'(в последствии вы сможите сменить его в личном кабинете).',
from_email='robo@skillbox.ru',
recipient_list=[serializer.user.email],
)
logger.info(f'send email to {serializer.user.email} '
f'with new password')
return Response(
data={'message': 'Письмо с новым паролем отправлено на email студента.'},
status=201
)

@ -26,6 +26,9 @@ else:
EMAIL_CONFIG = env.email_url('EMAIL_URL',)
vars().update(EMAIL_CONFIG)
#TODO: Ответственый работник, который ставится в копию ко многим рассылкам, костыль
SUPPORT_EMAIL = 'anastasiya.katyuhina@skillbox.ru'
BROKER_URL = 'amqp://guest:guest@localhost:5672//'
CELERY_RESULT_BACKEND = 'django-db'
CELERY_CACHE_BACKEND = 'django-cache'

Loading…
Cancel
Save