def is_user_an_admin(user_id: int) -> bool: """ Is the user an admin """ user = UserService.get_user_by_id(user_id) if UserRole(user.role) == UserRole.ADMIN: return True return False
def is_user_blocked(user_id: int) -> bool: """ Determines if a user is blocked """ user = UserService.get_user_by_id(user_id) if UserRole(user.role) == UserRole.READ_ONLY: return True return False
def is_user_validator(user_id: int) -> bool: """ Determines if user is a validator """ user = UserService.get_user_by_id(user_id) if UserRole(user.role) in [ UserRole.ADMIN, ]: return True return False
def add_role_to_user(admin_user_id: int, username: str, role: str): """ Add role to user :param admin_user_id: ID of admin attempting to add the role :param username: Username of user the role should be added to :param role: The requested role :raises UserServiceError """ try: requested_role = UserRole[role.upper()] except KeyError: raise UserServiceError( f"Unknown role {role} accepted values are ADMIN, PROJECT_MANAGER, VALIDATOR" ) admin = UserService.get_user_by_id(admin_user_id) admin_role = UserRole(admin.role) if admin_role != UserRole.ADMIN and requested_role == UserRole.ADMIN: raise UserServiceError("You must be an Admin to assign Admin role") user = UserService.get_user_by_username(username) user.set_user_role(requested_role)