示例#1
0
def get_authenticated_user(username):

    if username is None:
        abort(404)

    dao = UserDAO()
    user = dao.get_by_username(username)

    return {"user": user.as_dict()}, 200
示例#2
0
def set_displayname_by_username(username, displayname):
    if username is None or displayname is None:
        return build_error_msg("Missing Display Name or not authenticated."), 404

    if not is_valid_displayname_format(displayname):
        return build_error_msg("Invalid Display Name format."), 404

    dao = UserDAO()

    # Get the authenticated users data
    auth_user = dao.get_by_username(username)

    if not is_valid_displayname_content(auth_user.email, displayname):
        return (
            build_error_msg(
                "Failed to verify your Display Name. This is known to fail for unusual names, please contact the site administrator verify it manually :/"
            ),
            404,
        )

    # Look for a temporary user who already has this displayname set but never logged on before (no auth_token)
    # These are most likely temporary users created by the db update script
    tmp_user = dao.get_temporary_user_by_displayname(displayname)
    if tmp_user:
        # Replace tmp user with auth user in the problem reports (if there is any)
        count = ProblemReportFullDAO().replace_user_id(tmp_user.id, auth_user.id)

        count = dao.delete_by_id(tmp_user.id)
        if count < 1:
            # todo log this, but its not a big issue if tmp users stay in the DB
            pass

    update_count = dao.set_displayname_by_id(auth_user.id, displayname)

    if 1 == update_count:
        auth_user.displayname = displayname
        return {"user": auth_user.as_dict()}, 201  # created, maybe just send 200 OK?!

    return build_error_msg("Failed to update your Display Name"), 404
示例#3
0
    def update_user_data( self, user, token ):

        dao = UserDAO()
        db_user = dao.get_by_username( user.username )

        token_expiration_date = self.calculate_token_expiration_date()

        if db_user is not None:
            dao.update_auth_by_id( db_user.id, token, token_expiration_date )
        else:
            dao.create_with_auth( user, token, token_expiration_date )
示例#4
0
    def remove_auth_token_from_user( self, username ):

        dao = UserDAO()
        db_user = dao.remove_auth_by_username( username )