aboutsummaryrefslogtreecommitdiffstats
path: root/arthur/apis/directory/ldap.py
diff options
context:
space:
mode:
authorGravatar Joe Banks <[email protected]>2025-06-15 01:16:56 +0100
committerGravatar Joe Banks <[email protected]>2025-06-15 01:16:56 +0100
commita394f04661b8899885897721c18a5a230407a99d (patch)
tree3a25c0774324c63cda69e5d85451c4d049739680 /arthur/apis/directory/ldap.py
parentSplit M-x sync into multiple messages (diff)
Better handling of locking/unlocking users
Diffstat (limited to 'arthur/apis/directory/ldap.py')
-rw-r--r--arthur/apis/directory/ldap.py4
1 files changed, 3 insertions, 1 deletions
diff --git a/arthur/apis/directory/ldap.py b/arthur/apis/directory/ldap.py
index c919f55..7af4c08 100644
--- a/arthur/apis/directory/ldap.py
+++ b/arthur/apis/directory/ldap.py
@@ -22,6 +22,7 @@ class LDAPUser:
employee_number: str | None = None
display_name: str | None = None
groups: list[str] | None = None
+ locked: bool = False
def prepare_dn(dn: str) -> str:
@@ -60,7 +61,7 @@ async def find_users() -> list[LDAPUser]:
prepare_dn("cn=users,cn=accounts"),
LDAPSearchScope.SUBTREE,
"(mail=*@pydis.wtf)",
- ["uid", "employeeNumber", "displayName", "memberOf"],
+ ["uid", "employeeNumber", "displayName", "memberOf", "nsAccountLock"],
)
for user in users:
@@ -77,6 +78,7 @@ async def find_users() -> list[LDAPUser]:
employee_number=user.get("employeeNumber", [None])[0],
display_name=user["displayName"][0],
groups=parsed_groups,
+ locked=user.get("nsAccountLock", [False])[0],
)
found_users.append(new_user)