def post(self): self.request_parser.add_argument('username', type=str, required=True, help='No username is provided') self.request_parser.add_argument('password', type=str, required=True, help='No password is provided') self.request_parser.add_argument('name', type=unicode, required=False) args = self.request_parser.parse_args() username = args['username'] password = args['password'] if not username or not password: return make_response('Username and password are mandatory!', 400) user = service.find_user_by_email(username) if user is not None: logger.warn('User %s already exists', user.email) return make_response('User already exists', 400) name = args['name'].encode('utf-8') if args['name'] else '' user = service.create_new_user(username, password, name) logger.info('New user %d with email %s has been created!', user.id, user.email) return redirect(url_for('main', confirmationSent=True))
def post(self): self.request_parser.add_argument('username', type=str, required=True, help='No username is provided') self.request_parser.add_argument('password', type=str, required=True, help='No password is provided') self.request_parser.add_argument('source', type=str, required=False) args = self.request_parser.parse_args() username = args['username'] password = args['password'] if not username or not password: return make_response('Username and password are mandatory!', 400) user = users_service.find_user_by_email(username) if user is None: return make_response('User ' + username + ' does not exist!', 404) else: logger.info('Logging in with an existing username: %s', user.email) existing_password_entry = \ users_service.find_user_password_by_email(username) if not existing_password_entry.verify_password(password): logger.warn('User %s tried to login with a wrong password', user.email) return make_response('Wrong password', 404) elif not user.email_is_confirmed: logger.warn('User %s has not verified their email yet.' ' Login attempt denied.', user.email) return make_response( 'Please confirm the email first.' 'The confirmation link is sent to your email.', 403) else: login_user(user) logger.info('User %s logged in', user.email) if args['source']: return redirect(args['source']) else: return redirect('/')
def load_user(username): logger.info('Loading user %s', username) return users_service.find_user_by_email(username)