From f769c69b6bec619ac2d926bb4192b7fdec622da2 Mon Sep 17 00:00:00 2001 From: lizerk Date: Fri, 20 Mar 2026 00:04:31 +0300 Subject: [PATCH] Fix binary data decoding error: Remove objectGUID field from LDAP models - Removed objectGUID field from LdapUser, LdapGroup, and LdapOrganizationalUnit models - objectGUID contains binary data that causes UnicodeDecodeError when decoded as UTF-8 - Field is not critical for core functionality - Updated admin.py to not use object_guid attribute --- backend/employees/admin.py | 2 +- backend/employees/ldap/orm_models.py | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/backend/employees/admin.py b/backend/employees/admin.py index a525b9be..f6f47cbd 100644 --- a/backend/employees/admin.py +++ b/backend/employees/admin.py @@ -778,7 +778,7 @@ class EmployeeAdmin(DjangoUserAdmin): object_pk=str(employee.pk), defaults={ 'ldap_dn': ldap_user.dn, - 'ldap_guid': str(ldap_user.object_guid) if hasattr(ldap_user, 'object_guid') else None, + 'ldap_guid': None, # objectGUID удален из модели 'last_sync_dir': 'ldap', } ) diff --git a/backend/employees/ldap/orm_models.py b/backend/employees/ldap/orm_models.py index 5a67cf73..5cf820e0 100644 --- a/backend/employees/ldap/orm_models.py +++ b/backend/employees/ldap/orm_models.py @@ -207,7 +207,7 @@ class LdapUser(LdapSyncStateMixin, ModifyDnMixin, LdapModel): cn = CharField(db_column='cn') # Идентификация - object_guid = CharField(db_column='objectGUID') + # objectGUID исключен из-за проблем с декодированием бинарных данных sam_account_name = CharField(db_column='sAMAccountName') user_principal_name = CharField(db_column='userPrincipalName') @@ -288,7 +288,7 @@ class LdapGroup(ModifyDnMixin, LdapModel): cn = CharField(db_column='cn') # Идентификация - object_guid = CharField(db_column='objectGUID') + # objectGUID исключен из-за проблем с декодированием бинарных данных sam_account_name = CharField(db_column='sAMAccountName') # Описание @@ -350,7 +350,7 @@ class LdapOrganizationalUnit(ModifyDnMixin, LdapModel): ou = CharField(db_column='ou') # Идентификация - object_guid = CharField(db_column='objectGUID') + # objectGUID исключен из-за проблем с декодированием бинарных данных # Описание description = CharField(db_column='description', blank=True)