Source code for univention.admin.handlers.users.passwd
# SPDX-FileCopyrightText: 2004-2025 Univention GmbH
# SPDX-License-Identifier: AGPL-3.0-only
"""|UDM| module for password part of the user"""
from __future__ import annotations
import univention.admin
import univention.admin.handlers
import univention.admin.handlers.users.user
import univention.admin.localization
import univention.admin.uldap
from univention.admin.layout import Tab
translation = univention.admin.localization.translation('univention.admin.handlers.users')
_ = translation.translate
module = 'users/passwd'
operations = ['edit']
childs = False
short_description = _('User: Password')
object_name = _('Password')
object_name_plural = _('Passwords')
long_description = ''
options: dict[str, univention.admin.option] = {}
# fmt: off
property_descriptions = {
'username': univention.admin.property(
short_description=_('User name'),
long_description='',
syntax=univention.admin.syntax.uid,
include_in_default_search=True,
required=True,
may_change=False,
identifies=True,
),
'password': univention.admin.property(
short_description=_('Password'),
long_description='',
syntax=univention.admin.syntax.userPasswd,
required=True,
dontsearch=True,
),
}
layout = [
Tab(_('Change password'), _('Change password'), [
'password']),
]
# fmt: on
object = univention.admin.handlers.users.user.object
[docs]
def lookup(
co: None,
lo: univention.admin.uldap.access,
filter_s: str,
base: str = '',
superordinate: univention.admin.handlers.simpleLdap | None = None,
scope: str = 'sub',
unique: bool = False,
required: bool = False,
timeout: int = -1,
sizelimit: int = 0,
) -> list[univention.admin.handlers.simpleLdap]:
dn = lo.whoami()
return [
user
for user in univention.admin.handlers.users.user.lookup(
co, lo, filter_s, base, superordinate, scope=scope, unique=unique, required=required, timeout=timeout, sizelimit=sizelimit,
)
if lo.compare_dn(dn, user.dn)
]