Exemplo n.º 1
0
 def _authenticate(self, username, password):
     ''' Try to authenticate user. Throw AuthError for invalid users. '''
     user = users.get_user_by_name(username)
     if not user:
         raise errors.AuthError('No such user.')
     if not auth.is_valid_password(user, password):
         raise errors.AuthError('Invalid password.')
     return user
Exemplo n.º 2
0
def _authenticate_token(username: str,
                        token: str) -> Tuple[model.User, model.UserToken]:
    ''' Try to authenticate user. Throw AuthError for invalid users. '''
    user = users.get_user_by_name(username)
    user_token = user_tokens.get_by_user_and_token(user, token)
    if not auth.is_valid_token(user_token):
        raise errors.AuthError('잘못된 토큰입니다.')
    return user, user_token
Exemplo n.º 3
0
def update_user_rank(user, rank, authenticated_user):
    if not rank:
        raise InvalidRankError('Rank cannot be empty.')
    rank = util.flip(auth.RANK_MAP).get(rank.strip(), None)
    all_ranks = list(auth.RANK_MAP.values())
    if not rank:
        raise InvalidRankError('Rank can be either of %r.' % all_ranks)
    if rank in (db.User.RANK_ANONYMOUS, db.User.RANK_NOBODY):
        raise InvalidRankError('Rank %r cannot be used.' % auth.RANK_MAP[rank])
    if all_ranks.index(authenticated_user.rank) \
            < all_ranks.index(rank) and get_user_count() > 0:
        raise errors.AuthError('Trying to set higher rank than your own.')
    user.rank = rank
Exemplo n.º 4
0
def update_user_rank(user: model.User, rank: str,
                     auth_user: model.User) -> None:
    assert user
    if not rank:
        raise InvalidRankError('등급은 빈 값일 수 없습니다.')
    rank = util.flip(auth.RANK_MAP).get(rank.strip(), None)
    all_ranks = list(auth.RANK_MAP.values())
    if not rank:
        raise InvalidRankError('등급은 다음중 하나여야 합니다: %r' % all_ranks)
    if rank in (model.User.RANK_ANONYMOUS, model.User.RANK_NOBODY):
        raise InvalidRankError('등급 %r 은(는) 사용할 수 없습니다.' % auth.RANK_MAP[rank])
    if all_ranks.index(auth_user.rank) \
            < all_ranks.index(rank) and get_user_count() > 0:
        raise errors.AuthError('당신보다 높은 등급을 지정할 수 없습니다.')
    user.rank = rank
Exemplo n.º 5
0
def update_user_rank(user: model.User, rank: str,
                     auth_user: model.User) -> None:
    assert user
    if not rank:
        raise InvalidRankError("Rank cannot be empty.")
    rank = util.flip(auth.RANK_MAP).get(rank.strip(), None)
    all_ranks = list(auth.RANK_MAP.values())
    if not rank:
        raise InvalidRankError("Rank can be either of %r." % all_ranks)
    if rank in (model.User.RANK_ANONYMOUS, model.User.RANK_NOBODY):
        raise InvalidRankError("Rank %r cannot be used." % auth.RANK_MAP[rank])
    if (all_ranks.index(auth_user.rank) < all_ranks.index(rank)
            and get_user_count() > 0):
        raise errors.AuthError("Trying to set higher rank than your own.")
    user.rank = rank
Exemplo n.º 6
0
def _authenticate(username: str, password: str) -> model.User:
    ''' Try to authenticate user. Throw AuthError for invalid users. '''
    user = users.get_user_by_name(username)
    if not auth.is_valid_password(user, password):
        raise errors.AuthError('Invalid password.')
    return user
Exemplo n.º 7
0
def verify_privilege(user: model.User, privilege_name: str) -> None:
    assert user
    if not has_privilege(user, privilege_name):
        raise errors.AuthError("Insufficient privileges to do this.")
Exemplo n.º 8
0
def _authenticate_basic_auth(username: str, password: str) -> model.User:
    """ Try to authenticate user. Throw AuthError for invalid users. """
    user = users.get_user_by_name(username)
    if not auth.is_valid_password(user, password):
        raise errors.AuthError("Invalid password.")
    return user
Exemplo n.º 9
0
def verify_privilege(user: model.User, privilege_name: str) -> None:
    assert user
    if not has_privilege(user, privilege_name):
        raise errors.AuthError('이 작업을 수행할 권한이 없습니다.')