Source code for univention.udm.modules.users_user
# SPDX-FileCopyrightText: 2018-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only
"""Module and object specific for "users/user" UDM module."""
from ..encoders import (
Base64BinaryPropertyEncoder, DatePropertyEncoder, DisabledPropertyEncoder, HomePostalAddressPropertyEncoder,
SambaLogonHoursPropertyEncoder, StringIntPropertyEncoder, dn_list_property_encoder_for, dn_property_encoder_for,
)
from .generic import GenericModule, GenericObject, GenericObjectProperties
[docs]
class UsersUserObjectProperties(GenericObjectProperties):
"""users/user UDM properties."""
_encoders = {
'birthday': DatePropertyEncoder,
'disabled': DisabledPropertyEncoder,
'gidNumber': StringIntPropertyEncoder,
'groups': dn_list_property_encoder_for('groups/group'),
'homePostalAddress': HomePostalAddressPropertyEncoder,
'jpegPhoto': Base64BinaryPropertyEncoder,
'mailForwardCopyToSelf': DisabledPropertyEncoder,
'mailUserQuota': StringIntPropertyEncoder,
'primaryGroup': dn_property_encoder_for('groups/group'),
'sambaLogonHours': SambaLogonHoursPropertyEncoder,
'sambaRID': StringIntPropertyEncoder,
'secretary': dn_list_property_encoder_for('users/user'),
'uidNumber': StringIntPropertyEncoder,
'userexpiry': DatePropertyEncoder,
}
[docs]
class UsersUserObject(GenericObject):
"""Better representation of users/user properties."""
udm_prop_class = UsersUserObjectProperties
[docs]
class UsersUserModule(GenericModule):
"""UsersUserObject factory"""
_udm_object_class = UsersUserObject
class Meta:
supported_api_versions = [1, 2, 3]
suitable_for = ['users/user']
default_positions_property = 'users'