"""Model class for Profile User.""" from ddtrace import tracer from grass.consts import headers, user class ProfileUser: """Profile User.""" def __init__(self): """Init function.""" self.orchard_identity_id = None self.orchard_identity_uuid = None self.user_group = user.UserGroups.PROFILE self.has_active_profile = False self.roles = None @property def user_id(self): """Return the user identity. The user id is a unique identifier across our different systems. Returns: str: user identity. """ return self.orchard_identity_id @property def user_uuid(self): """Return the user identity UUID. The user id is a unique identifier across our different systems. Returns: str: user identity. """ return self.orchard_identity_uuid @tracer.wrap() def set_roles(self, token, profile_id, profile_type): self.roles = None if not token.get(headers.JWT_PROFILES): return False for profile in token.get(headers.JWT_PROFILES): if profile.get('profile_type').lower() == profile_type.lower() and str( profile.get('profile_id') ) == str(profile_id): self.roles = profile.get('roles') return True return False @tracer.wrap() def set_roles_for_profile_uuid(self, token, profile_uuid): self.roles = None if not token.get(headers.JWT_PROFILES): return False for profile in token.get(headers.JWT_PROFILES): if profile.get('uuid').lower() == profile_uuid.lower(): self.roles = profile.get('roles') return True return False @tracer.wrap() def get_user_by_identity(orchard_identity_id, identity_uuid=None): """Get profile user object by identity id. Args: orchard_identity_id (str): Auth0 identity id. identity_uuid (str): Neo4J identity UUID Returns: ProfileUser: An instance of profileuser class. """ user_obj = ProfileUser() user_obj.orchard_identity_id = orchard_identity_id user_obj.orchard_identity_uuid = identity_uuid return user_obj