Я пишу веб-интерфейс (django) для сервера LDAP. Существуют разные люди с разными привилегиями, поэтому я настроил LDAP ACL, чтобы контролировать, кто может просматривать или редактировать определенный атрибут. Теперь легко определить, есть ли у конкретного пользователя права на чтение — попробуйте прочитать, и вы увидите, что у вас получится. Но я не вижу элегантного способа различать доступ для чтения и записи до того, как я на самом деле попытаюсь внести некоторые изменения. То есть хотелось бы, чтобы в интерфейсе было понятно, есть ли у вошедшего в систему пользователя доступ на запись, или он может только читать. Чтобы пользователи не пытались изменить атрибут, который они не могут.
Единственное, что пришло мне в голову, это попробовать временно вписать в атрибут какой-нибудь фиктивный элемент и посмотреть, получится ли это. Если это так, исходное значение будет восстановлено, и я знаю, что у этого пользователя есть права на запись. Затем я могу отобразить этот атрибут как редактируемый. Проблема заключается в том, что если сервер выйдет из строя после того, как фиктивный файл был записан и до того, как исходное значение будет восстановлено, я останусь с фиктивными значениями на моем сервере LDAP.
Что мне нужно, так это какой-то способ запросить ACL, аналогично тому, как я могу запросить определения схемы. Но, может быть, это «запрещено» LDAP?
Любые идеи?
Исаак