Beispiel #1
0
 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')
Beispiel #2
0
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')
Beispiel #3
0
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')
Beispiel #4
0
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')
Beispiel #5
0
	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')
Beispiel #6
0
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')
Beispiel #7
0
 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')
Beispiel #8
0
	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')