def save(self): email = self.initial_data.get('email') user = User.objects.get(email=email) new_password = generate_password() user.set_password(new_password) send_mail(RESET_PASSWORD_SUBJECT, RESET_PASSWORD_BODY + new_password, DEFAULT_FROM_EMAIL, [email], fail_silently=True) user.save()
def submitter_create(request): errors = [] status = '' if 'submit' in request.POST: user = User() username = request.POST.get('username') if username: if User.objects.filter(username=username).count() < 1: user.username = username else: errors += ['username', 'username_already_taken'] else: errors += ['username', 'invalid_username'] from django.core.validators import validate_email from django.core.exceptions import ValidationError email = request.POST.get('email') try: validate_email(email) if User.objects.filter(email=email).count() < 1: user.email = email else: errors += ['email', 'email_already_taken'] except ValidationError: errors += ['email', 'invalid_email'] user.first_name = request.POST.get('first_name') user.last_name = request.POST.get('last_name') password = generate_password() user.set_password(password) if len(errors) < 1: user.save() try: profile = CommiterProfileForm(request.POST, request.FILES) profile = profile.save(commit=False) profile.user = user profile.title = u'投稿講者' profile.save() except: errors += ['invalid_profile'] user.delete() status = 'error' return render(request, 'users/submitter_create.html', { 'errors': errors, 'status': status, 'saved': request.POST, }) user.groups.add(Group.objects.get(id=settings.SUBMITTER_GROUP_ID)) context = { 'sender': request.user, 'receiver': user, 'password': password, } sender_address = settings.SUBMITTER_ACCOUNTS_SENDER receiver_address = format_address(user.profile.display_name, user.email) send_template_mail(sender_address, receiver_address, 'mail/submitter_welcome.html', context) status = 'success' else: status = 'error' if status == 'success': return render(request, 'users/login.html', { 'status': status, }) else: return render(request, 'users/submitter_create.html', { 'errors': errors, 'status': status, 'saved': request.POST, })
def create(request): errors = [] status = '' if 'submit' in request.POST: user = User() username = request.POST.get('username') if username: if User.objects.filter(username=username).count() < 1: user.username = username else: errors += ['username', 'username_already_taken'] else: errors += ['username', 'invalid_username'] from django.core.validators import validate_email from django.core.exceptions import ValidationError email = request.POST.get('email') try: validate_email(email) if User.objects.filter(email=email).count() < 1: user.email = email else: errors += ['email', 'email_already_taken'] except ValidationError: errors += ['email', 'invalid_email'] user.first_name = request.POST.get('first_name') user.last_name = request.POST.get('last_name') password = generate_password() user.set_password(password) if len(errors) < 1: user.save() # Save the user first in order to create relational objects profile = UserProfile(user=user) profile.title = request.POST.get('title') profile.display_name = request.POST.get('display_name') profile.school = request.POST.get('school') profile.bio = request.POST.get('bio') profile.grade = request.POST.get('grade') profile.phone = request.POST.get('phone') profile.comment = request.POST.get('comment') profile.save() for group_id in request.POST.getlist('groups'): try: user.groups.add(Group.objects.get(id=group_id)) except Group.DoesNotExist: pass user.save() # Save the groups information if request.POST.get('send_welcome_letter'): context = { 'sender': request.user, 'receiver': user, 'password': password, 'groups': [g.name for g in user.groups.all()], } sender_address = format_address(request.user.profile.name(), request.user.email) receiver_address = format_address(user.profile.name(), user.email) send_template_mail(sender_address, receiver_address, 'mail/user_welcome.html', context) status = 'success' else: status = 'error' return render(request, 'users/create.html', { 'categories': sorted_categories(), 'errors': errors, 'status': status, })
def create(request): errors = [] status = '' if 'submit' in request.POST: user = User() username = request.POST.get('username') if username: if User.objects.filter(username=username).count() < 1: user.username = username else: errors += ['username', 'username_already_taken'] else: errors += ['username', 'invalid_username'] from django.core.validators import validate_email from django.core.exceptions import ValidationError email = request.POST.get('email') try: validate_email(email) if User.objects.filter(email=email).count() < 1: user.email = email else: errors += ['email', 'email_already_taken'] except ValidationError: errors += ['email', 'invalid_email'] user.first_name = request.POST.get('first_name') user.last_name = request.POST.get('last_name') password = generate_password() user.set_password(password) if len(errors) < 1: user.save() user.profile.title = request.POST.get('title') user.profile.display_name = request.POST.get('display_name') user.profile.school = request.POST.get('school') user.profile.bio = request.POST.get('bio') user.profile.grade = request.POST.get('grade') user.profile.phone = request.POST.get('phone') user.profile.comment = request.POST.get('comment') user.profile.save() for group_id in request.POST.getlist('groups'): try: user.groups.add(Group.objects.get(id=group_id)) except Group.DoesNotExist: pass user.save() # Save the groups information if request.POST.get('send_welcome_letter'): context = { 'sender': request.user, 'receiver': user, 'password': password, 'groups': [g.name for g in user.groups.all()], } sender_address = format_address(request.user.profile.name, request.user.email) receiver_address = format_address(user.profile.name, user.email) send_template_mail(sender_address, receiver_address, 'mail/user_welcome.html', context) status = 'success' else: status = 'error' return render(request, 'users/create.html', { 'categories': sorted_categories(), 'errors': errors, 'status': status, })