def is_user_a_project_manager(user_id: int) -> bool: """ Is the user a project manager """ user = UserService.get_user_by_id(user_id) if UserRole(user.role) in [UserRole.ADMIN, UserRole.PROJECT_MANAGER]: 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.PROJECT_MANAGER and requested_role == UserRole.ADMIN: raise UserServiceError( f'You must be an Admin to assign Admin role') if admin_role == UserRole.PROJECT_MANAGER and requested_role == UserRole.PROJECT_MANAGER: raise UserServiceError( f'You must be an Admin to assign Project Manager role') user = UserService.get_user_by_username(username) user.set_user_role(requested_role)
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.VALIDATOR, UserRole.ADMIN, UserRole.PROJECT_MANAGER]: 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