def post(self, request): logger.info('Saving profile: %s', hide_fields(request.POST, ("base64_image", ), huge=True)) user_profile = UserProfile.objects.get(pk=request.user.id) image_base64 = request.POST.get('base64_image') new_email = request.POST['email'] if not new_email: new_email = None if new_email: utils.validate_email(new_email) utils.validate_user(request.POST['username']) if image_base64 is not None: image = extract_photo(image_base64) request.FILES['photo'] = image passwd = request.POST['password'] if passwd: if request.user.password: is_valid = authenticate(username=request.user.username, password=request.POST['old_password']) if not is_valid: return HttpResponse("Invalid old password", content_type='text/plain') utils.check_password(passwd) request.POST['password'] = make_password(passwd) form = UserProfileForm(request.POST, request.FILES, instance=user_profile) if form.is_valid(): if not passwd: form.instance.password = form.initial['password'] if new_email != form.initial['email']: if form.initial[ 'email'] and form.instance.email_verification and form.instance.email_verification.verified: verification = Verification( type_enum=Verification.TypeChoices.email, user_id=user_profile.id, email=new_email) verification.save() send_email_change(request, request.user.username, form.initial['email'], verification, new_email) raise ValidationError( "In order to change an email please confirm it from you current address. We send you an verification email to {}." .format(form.initial['email'])) if new_email: new_ver = send_new_email_ver(request, request.user, new_email) form.instance.email_verification = new_ver profile = form.save() if passwd and form.initial['email']: send_password_changed(request, form.initial['email']) response = profile.photo.url if 'photo' in request.FILES else settings.VALIDATION_IS_OK else: response = form.errors return HttpResponse(response, content_type='text/plain')
def report_issue(request): logger.info('Saving issue: %s', hide_fields(request.POST, ('log',), huge=True)) issue = Issue.objects.get_or_create(content=request.POST['issue'])[0] issue_details = IssueDetails( sender_id=request.user.id, browser=request.POST.get('browser'), issue=issue, log=request.POST.get('log') ) issue_details.save() return HttpResponse(VALIDATION_IS_OK, content_type='text/plain')
def auth(request): """ Logs in into system. """ username = request.POST.get('username') password = request.POST.get('password') logger.debug('Auth request %s', hide_fields(request.POST, ('password', ))) user = authenticate(username=username, password=password) if user is None: raise ValidationError('login or password is wrong') djangologin(request, user) request.session.save() return HttpResponse(request.session.session_key, content_type='text/plain')
def auth(request): """ Logs in into system. """ username = request.POST.get('username') password = request.POST.get('password') user = authenticate(username=username, password=password) if user is not None: djangologin(request, user) message = settings.VALIDATION_IS_OK else: message = 'Login or password is wrong' logger.debug('Auth request %s ; Response: %s', hide_fields(request.POST, ('password', )), message) return HttpResponse(message, content_type='text/plain')
def post(self, request): logger.info('Saving profile: %s', hide_fields(request.POST, ("base64_image", ), huge=True)) user_profile = UserProfile.objects.get(pk=request.user.id) image_base64 = request.POST.get('base64_image') if image_base64 is not None: image = extract_photo(image_base64) request.FILES['photo'] = image form = UserProfileForm(request.POST, request.FILES, instance=user_profile) if form.is_valid(): profile = form.save() response = profile. photo.url if 'photo' in request.FILES else VALIDATION_IS_OK else: response = form.errors return HttpResponse(response, content_type='text/plain')
def report_issue(request): logger.info('Saving issue: %s', hide_fields(request.POST, ('log', ), huge=True)) issue_text = request.POST['issue'] issue = Issue.objects.get_or_create(content=issue_text)[0] issue_details = IssueDetails(sender_id=request.user.id, browser=request.POST.get('browser'), issue=issue, log=request.POST.get('log')) try: mail_admins("{} reported issue".format(request.user.username), issue_text, fail_silently=True) except Exception as e: logging.error("Failed to send issue email because {}".format(e)) issue_details.save() return HttpResponse(settings.VALIDATION_IS_OK, content_type='text/plain')
def post(self, request): rp = request.POST logger.info('Got register request %s', hide_fields(rp, ('password', 'repeatpassword'))) (username, password, email) = (rp.get('username'), rp.get('password'), rp.get('email')) check_user(username) check_password(password) check_email(email) user_profile = UserProfile(username=username, email=email, sex_str=rp.get('sex')) user_profile.set_password(password) create_user_model(user_profile) # You must call authenticate before you can call login auth_user = authenticate(username=username, password=password) if email: send_sign_up_email(user_profile, request.get_host(), request) djangologin(request, auth_user) return HttpResponse(settings.VALIDATION_IS_OK, content_type='text/plain')
def post(self, request): try: rp = request.POST logger.info('Got register request %s', hide_fields(rp, ('password', 'repeatpassword'))) (username, password, email) = (rp.get('username'), rp.get('password'), rp.get('email')) check_user(username) check_password(password) check_email(email) user_profile = UserProfile(username=username, email=email, sex_str=rp.get('sex')) user_profile.set_password(password) create_user_model(user_profile) # You must call authenticate before you can call login auth_user = authenticate(username=username, password=password) message = VALIDATION_IS_OK # redirect if email: send_email_verification(user_profile, request.get_host()) djangologin(request, auth_user) except ValidationError as e: message = e.message logger.debug('Rejecting request because "%s"', message) return HttpResponse(message, content_type='text/plain')