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 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(ModelBase):
[docs] def __init__( self, email_type_id: Optional[int] = None, preference_order: Optional[int] = None, email_address: Optional[str] = None, main: Optional[bool] = None ): self.emailTypeId = email_type_id self.preferenceOrder = preference_order self.emailAddress = email_address self.main = main
[docs] class PhoneInformations(ModelBase):
[docs] def __init__( self, phone_type_id: Optional[int] = None, preference_order: Optional[int] = None, phone_value: Optional[str] = None, phone_number: Optional[str] = None, extension: Optional[str] = None, main: Optional[bool] = None ): self.phoneTypeId = phone_type_id self.preferenceOrder = preference_order self.phoneValue = phone_value self.phoneNumber = phone_number self.extension = extension self.main = main
[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 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