def login_user(request): '''Log in a user or render the login template.''' if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') user, error = HuxleyUser.authenticate(username, password) if error: return render_json({'success': False, 'error': error}) redirect = HuxleyUser.login(request, user) return render_json({'success': True, 'redirect': redirect}) return render_template(request, 'login.html')
def login_user(request): '''Log in a user or render the login template.''' if request.method == 'POST': username = request.POST.get('username') password = request.POST.get('password') try: user = HuxleyUser.authenticate(username, password) except AuthenticationError as e: return render_json({'success': False, 'error': str(e)}) redirect = HuxleyUser.login(request, user) return render_json({'success': True, 'redirect': redirect}) return render_template(request, 'login.html')
def new_user(**kwargs): u = HuxleyUser(username=kwargs.get('username', 'testuser'), email=kwargs.get('email', '*****@*****.**')) u.set_password(kwargs.get('password', 'test')) u.first_name = kwargs.get('first_name', 'Test') u.last_name = kwargs.get('last_name', 'User') skip = {'username', 'email', 'password', 'first_name', 'last_name'} for attr, value in kwargs.items(): if attr not in skip: setattr(u, attr, value) u.save() return u
def post(self, request, *args, **kwargs): '''Log in a new user.''' if request.user.is_authenticated(): raise PermissionDenied('Another user is currently logged in.') try: data = request.DATA user = HuxleyUser.authenticate(data['username'], data['password']) except AuthenticationError as e: raise AuthenticationFailed(str(e)) login(request, user) return Response(UserSerializer(user).data, status=status.HTTP_201_CREATED)
def reset_password(request): """ Reset a user's password. """ if request.method == 'POST': username = request.POST.get('username') new_password = HuxleyUser.reset_password(username) if new_password: if not settings.DEBUG: user.email_user("Huxley Password Reset", "Your password has been reset to %s.\nThank you for using Huxley!" % (new_password), from_email="*****@*****.**") return render_template(request, 'password-reset-success.html') else: return render_template(request, 'password-reset.html', {'error': True}) return render_template(request, 'password-reset.html')
def reset_password(request): '''Reset a user's password.''' if request.method == 'POST': username = request.POST.get('username') new_password = HuxleyUser.reset_password(username) if new_password: if True: user.email_user( "Huxley Password Reset", "Your password has been reset to %s.\nThank you for using Huxley!" % (new_password), from_email="*****@*****.**") return render_template(request, 'password-reset-success.html') else: return render_template(request, 'password-reset.html', {'error': True}) return render_template(request, 'password-reset.html')