Пример #1
0
 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)
Пример #2
0
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('/')
Пример #3
0
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('/')
Пример #4
0
 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)
Пример #5
0
 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
Пример #6
0
 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
Пример #7
0
 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
Пример #8
0
 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
Пример #9
0
 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
Пример #10
0
 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
Пример #11
0
 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.'}
Пример #12
0
 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.'}