понедельник, 9 августа 2010 г.

Права на создание документов в Lotus Notes

 В списке доступа к базе данных в Lotus Notes есть отметка - создание документов. При отсутствии этой отметки пользователь не может создавать в базе документы. Все правильно и хорошо. Пока. Пока не сталкиваемся с этим на практике! По самой простой и понятной логике казалось бы должно происходить следующее: у пользователя не стоит этой галки => у него нет прав создавать документы => при попытке создания документа должно быть выдано системное сообщение о нехватке прав и должно быть отказано в создании документа.
Лотус же действует по-другому! (блядь, ну почему? Почему?!) у пользователя не стоит этой галки => у него нет прав создавать документы => при попытке создания документа ничего не сообщается. Открывается форма создания документа. Доступны для ввода поля в документе. Ошибка возникает только тогда, когда документ сохраняется!!!
Т.е. пользователь забил туеву хучу данных, все проверил, все уточнил... А ему потом хуяк - у тебя нет прав! Кто крайний? Правильно - разработчик базы : ))) И даже если в этом состоянии пользователю дать права на создание документов, то открытый и заполненный документ не сохранится. Соответственно, пользователю нужно все перезабивать заново! Кто очень сильно недоволен? Правильно - пользователь. Кто крайний? Правильно - разработчик базы : )))
Что-то я не наблюдаю в этой цепочке того пидараса из IBM, который выдумал такой алгоритм работы : )

Вот и приходится писать дополнительный код для очевидных вещей...

Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
    If isnewdoc Then
        Dim sess As New NotesSession
        Dim db As NotesDatabase
        Dim acl As NotesACL
        Dim aclentry As NotesACLEntry
       
        Set db = sess.CurrentDatabase
        Set acl = db.ACL
        Set aclentry = acl.GetEntry(sess.UserName)
        If Not(aclentry.CanCreateDocuments) Then
            Messagebox "Вы не можете создавать документы в этой базе данных", 16, "Не достаточно прав"
            continue = False
            End
        End If
    End If
End Sub

Комментариев нет:

Отправить комментарий