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