Source code for ace.centralize.models.user

"""
    User models for Centralize

    Models for user management, RBAC, and user relations (REST API).
"""
from datetime import date
from typing import List, Optional
from ace.centralize.models.base import ModelBase



[docs] class BaseEmail(ModelBase):
[docs] def __init__( self, email_type_id: Optional[int] = None, email_address: Optional[str] = None, main: Optional[bool] = None, operation: Optional[str] = None, email_id: Optional[int] = None ): if email_type_id is not None: self.emailTypeId = email_type_id if email_address is not None: self.emailAddress = email_address if main is not None: self.main = main if operation is not None: self.operation = operation if email_id is not None: self.id = email_id
[docs] class BasePhone(ModelBase):
[docs] def __init__( self, phone_type_id: Optional[int] = None, phone_value: Optional[str] = None, extension: Optional[str] = None, main: Optional[bool] = None, operation: Optional[str] = None, phone_id: Optional[int] = None, ): if phone_type_id is not None: self.phoneTypeId = phone_type_id if phone_value is not None: self.phoneValue = phone_value if extension is not None: self.extension = extension if main is not None: self.main = main if operation is not None: self.operation = operation if phone_id is not None: self.id = phone_id
[docs] class UserInformations(ModelBase):
[docs] def __init__( self, first_name: Optional[str] = None, middle_name: Optional[str] = None, last_name: Optional[str] = None, company_name: Optional[str] = None, job_title: Optional[str] = None, display_name: Optional[str] = None, occupation_title: Optional[str] = None, occupation: Optional[str] = None, language_id: Optional[int] = None, sex: Optional[str] = None, gender: Optional[int] = None, user_guid: Optional[str] = None, external_id: Optional[str] = None, ): self.firstName = first_name self.middleName = middle_name self.lastName = last_name self.companyName = company_name self.jobTitle = job_title self.displayName = display_name self.occupationTitle = occupation_title self.occupation = occupation self.languageId = language_id self.sex = sex self.gender = gender self.userGUID = user_guid self.externalId = external_id
[docs] class EmailInformations(BaseEmail):
[docs] def __init__( self, email_type_id: int, email_address: str, main: Optional[bool] = None ): super().__init__( email_type_id=email_type_id, email_address=email_address, main=main, )
[docs] class PhoneInformations(BasePhone):
[docs] def __init__( self, phone_type_id: int, main: bool, phone_value: Optional[str] = None, extension: Optional[str] = None, ): super().__init__( phone_type_id=phone_type_id, phone_value=phone_value, extension=extension, main=main, )
[docs] class UpdateEmail(BaseEmail):
[docs] def __init__( self, operation: str, email_id: Optional[int] = None, email_type_id: Optional[int] = None, email_address: Optional[str] = None, main: Optional[bool] = None, ): super().__init__( email_type_id=email_type_id, email_address=email_address, main=main, email_id=email_id, operation=operation )
[docs] class UpdatePhone(BasePhone):
[docs] def __init__( self, operation: str, phone_id: Optional[int] = None, phone_type_id: Optional[int] = None, phone_value: Optional[str] = None, extension: Optional[str] = None, main: Optional[bool] = None, ): super().__init__( phone_type_id=phone_type_id, phone_value=phone_value, extension=extension, main=main, phone_id=phone_id, operation=operation )
[docs] class UpdateUserGroup(ModelBase):
[docs] def __init__( self, add: Optional[list[int]] = None, remove: Optional[list[int]] = None, replace: Optional[list[int]] = None ): if add is not None: self.add = add if remove is not None: self.remove = remove if replace is not None: self.replace = replace
[docs] class CreateUserObject(ModelBase):
[docs] def __init__( self, user_name: str, password: Optional[str], user_information: Optional[UserInformations], email_information: Optional[List[EmailInformations]], phone_information: Optional[List[PhoneInformations]], user_group_ids: Optional[UpdateUserGroup] = None, ): self.userName = user_name self.password = password self.userInformations = user_information self.phoneInformations = phone_information self.emailInformations = email_information self.groups = user_group_ids
[docs] class UpdateUser(ModelBase):
[docs] def __init__( self, user_name: str, password: Optional[str] = None, user_information: Optional[UserInformations] = None, email_information: Optional[List[UpdateEmail]] = None, phone_information: Optional[List[UpdatePhone]] = None, user_group_ids: Optional[UpdateUserGroup] = None, ): self.userName = user_name if password is not None: self.password = password if user_information is not None: self.userInformations = user_information if email_information is not None: self.emailInformations = email_information if phone_information is not None: self.phoneInformations = phone_information if user_group_ids is not None: self.groups = user_group_ids
[docs] class CreateRBACUserObject(ModelBase):
[docs] def __init__( self, user_name: str, email_id: str, password: str, password_expiration_date: str, effective_date: str, expiration_date: str, organization_uuid: str, is_disabled: bool = False ): self.userName = user_name self.emailId = email_id self.password = password self.passwordExpirationDate = password_expiration_date self.effectiveDate = effective_date self.expirationDate = expiration_date self.organizationUuid = organization_uuid self.isDisabled = is_disabled
[docs] class CreateUserRelationsObject(ModelBase):
[docs] def __init__( self, entity_type_id: str, entity_id: int, relation_role_id: int, effective_date: Optional[date] = None, expiration_date: Optional[date] = None, ): self.entityTypeId = entity_type_id self.entityId = entity_id self.relationRoleId = relation_role_id self.effectiveDate = effective_date.strftime("%Y-%m-%d") if effective_date else None self.expirationDate = expiration_date.strftime("%Y-%m-%d") if expiration_date else None