def post(self): """Login a user.""" user = auth.login_user(flask.request) if not user: redir = auth.get_login_uri() if redir: return dict(redirect=redir) return {} app.logger.info('%r logged in.', user) utils.session_for_user(user) return dict(user=user, team=user.team)
def gae_login_handler(): user = login_user(None) gae_user = users.get_current_user() if gae_user and not user: app.logger.info('No user found for user %s' % gae_user.email()) return flask.redirect('/register') elif not user: app.logger.error('No user found and not logged in.') return flask.redirect(get_register_uri()) utils.session_for_user(user) return flask.redirect('/')
def gae_login_handler(): user = login_user(None) gae_user = users.get_current_user() if gae_user and not user: app.logger.info('No user found for user %s' % gae_user.email()) return flask.redirect('/register') elif not user: app.logger.error('No user found and not logged in.') return flask.redirect(get_register_uri()) utils.session_for_user(user) return flask.redirect('/')
def post(self): """Login a user.""" user = auth.login_user(flask.request) if not user: redir = auth.get_login_uri() if redir: return dict(redirect=redir) return {} app.logger.info('%r logged in.', user) utils.session_for_user(user) return dict(user=user, team=user.team)
def post(self): """Register a new user.""" if utils.is_logged_in(): raise errors.ValidationError('Cannot register while logged in.') data = flask.request.get_json() if not data.get('nick', ''): raise errors.ValidationError('Need a player nick.') if (app.config.get('TEAMS') and not data.get('team_name', '') and not data.get('team_id', 0)): raise errors.ValidationError('Need a team name.') user = auth.register(flask.request) utils.session_for_user(user) return user
def post(self): """Register a new user.""" if models.User.current(): raise errors.ValidationError('Cannot register while logged in.') data = flask.request.get_json() if not data.get('nick', ''): raise errors.ValidationError('Need a player nick.') if (app.config.get('TEAMS') and not data.get('team_name', '') and not data.get('team_id', 0)): raise errors.ValidationError('Need a team name.') user = auth.register(flask.request) utils.session_for_user(user) return user
def current(cls): try: return flask.g.user except AttributeError: uid = flask.session.get('user') if uid is not None: # For some reason, .get() does not join! user = cls.query.options(orm.joinedload( cls.team)).filter(cls.uid == uid).first() flask.g.user = user flask.g.team = user.team if user: # Bump expiration time on session utils.session_for_user(user) return user
def current(cls): try: return flask.g.user except AttributeError: uid = flask.session.get('user') if uid is not None: # For some reason, .get() does not join! user = cls.query.options(orm.joinedload(cls.team)).filter( cls.uid == uid).first() flask.g.user = user flask.g.team = user.team if user: # Bump expiration time on session utils.session_for_user(user) return user
def post(self): """Register a new user.""" if utils.is_logged_in(): raise errors.ValidationError('Cannot register while logged in.') data = flask.request.get_json() if not data.get('nick', ''): raise errors.ValidationError('Need a player nick.') if (app.config.get('TEAMS') and not data.get('team_name', '') and not data.get('team_id', 0)): app.logger.warning('User attempted to register without team.') raise errors.ValidationError('Need a team name.') if (app.config.get('INVITE_KEY') and data.get( 'invite_key', '').strip() != app.config.get('INVITE_KEY')): app.logger.warning( 'Attempted invite-only registration with invalid ' 'invite key: %s', data.get('invite_key', '')) raise errors.ValidationError('Invalid invite key!') app.logger.debug('Passed registration validation for new user.') user = auth.register(flask.request) utils.session_for_user(user) return user
def post(self): """Register a new user.""" if utils.is_logged_in(): raise errors.ValidationError('Cannot register while logged in.') data = flask.request.get_json() if not data.get('nick', ''): raise errors.ValidationError('Need a player nick.') if (app.config.get('TEAMS') and not data.get('team_name', '') and not data.get('team_id', 0)): app.logger.warning('User attempted to register without team.') raise errors.ValidationError('Need a team name.') if (app.config.get('INVITE_KEY') and data.get('invite_key', '').strip() != app.config.get('INVITE_KEY')): app.logger.warning( 'Attempted invite-only registration with invalid ' 'invite key: %s', data.get('invite_key', '')) raise errors.ValidationError('Invalid invite key!') app.logger.debug('Passed registration validation for new user.') user = auth.register(flask.request) utils.session_for_user(user) return user
def post(self, email): """Verify reset and set new password.""" # TODO: Move to controller data = flask.request.get_json() user = models.User.get_by_email(email) if not user: flask.abort(404) token = data.get('token', '') try: user.verify_token(token) except errors.ValidationError as ex: app.logger.warning('Error validating password reset: %s', str(ex)) raise except Exception as ex: app.logger.exception( 'Unhandled exception during password reset: %s', str(ex)) raise if data['password'] != data['password2']: raise errors.ValidationError("Passwords don't match.") user.set_password(data['password']) app.logger.info('Password reset for %r.', user) models.commit() utils.session_for_user(user) return {'message': 'Password reset.'}
def post(self, email): """Verify reset and set new password.""" # TODO: Move to controller data = flask.request.get_json() user = models.User.get_by_email(email) if not user: flask.abort(404) token = data.get('token', '') try: user.verify_token(token) except errors.ValidationError as ex: app.logger.warning('Error validating password reset: %s', str(ex)) raise except Exception as ex: app.logger.exception( 'Unhandled exception during password reset: %s', str(ex)) raise if data['password'] != data['password2']: raise errors.ValidationError("Passwords don't match.") user.set_password(data['password']) app.logger.info('Password reset for %r.', user) models.commit() utils.session_for_user(user) return {'message': 'Password reset.'}