0 / 0 / 0
Регистрация: 30.12.2007
Сообщений: 583
|
|
1 | |
User Acl & Postopendocument10.12.2009, 14:57. Показов 13492. Ответов 7
Метки нет (Все метки)
Всем привет
вобщем проблем следующий: агентом создаю несколько респонзов. в каждом респонзе есть поле "UserRole" в которое прописивию роль подразделения. в каждом респонзе своя роль. дальше пробую открить доку смисл такой если нету роль то пользователь может только читать... если есть роль может редактировать Код
Dim ses As New NotesSession Dim db As NotesDatabase Dim acl As NotesACL Dim entry As NotesACLEntry Dim doc As NotesDocument Dim uidoc As NotesUIDocument Set db = ses.CurrentDatabase Set ws = New NotesUIWorkspace Set uidoc = ws.CurrentDocument Set doc = uidoc.Document v = doc.GetItemValue("UnitRole")(0) Set acl = db.ACL Set entry = acl.GetEntry( ses.UserName ) If ( entry Is Nothyng ) Then uidoc.EditMode = False Elseif Not ( entry.IsRoleEnabled( doc.GetItemValue("UnitRole")(0) )) Then continue = False uidoc.EditMode=True End If
0
|
10.12.2009, 14:57 | |
Ответы с готовыми решениями:
7
User Type в Acl Acl Acl и Lotusscript Replica Id в Acl |
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
10.12.2009, 15:02 | 2 |
Жесть.
Код
db.QueryAccessRoles Хинт: человека в ACL можно указать неявно. И вообще, причём тут PostOpen? Тут скорее QueryOpen + QueryModeChange Ну или вообще использование полей типа Author. ----------------- Конечно тут надо использовать Authors.
0
|
0 / 0 / 0
Регистрация: 30.12.2007
Сообщений: 583
|
|
10.12.2009, 15:14 | 3 |
Omh
да путаюсь я с етими полями.....впринципе когдя создаю документ то прописиваю... но все равно люди без ролей могут редактировать... Код
Set res = db.CreateDocument res.form = "PrimaryAnalysys" uniq = doc.GetItemValue("Unique")(0) Set item = doctemp.GetFirstItem("UnitName") Set itemall = New NotesItem(res, "Role", "*") Set itemrole = doctemp.GetFirstItem("UnitRole") itemrole.IsAuthors = True itemall.IsReaders = True Call res.CopyItem(item, "UnitName") Call res.CopyItem(itemrole, "UnitRole") Call res.CopyItem(itemall, "Role") Call res.ReplaceItemValue("Unique", uniq) Call res.MakeResponse(doc) Call res.Save(True,False)
0
|
0 / 0 / 1
Регистрация: 30.06.2007
Сообщений: 2,153
|
|
10.12.2009, 15:28 | 4 |
Мне кажется, я слишком стар для этого дерьма.
Я абсолютно не понимаю, что происходит в приведённом тобой куске кода. Аццкое копирование айтемов в пределах одного документа выше моего понимания. Если хочешь защитить документ бантиками, то юзай примерно такой скрипт на QueryModeChange/QueryOpen: <!--shcode--><pre><code class=vb>Dim Roles As Variant Roles = db.QueryAccessRoles(session.UserName) if IsNull(ArrayGetIndex(Roles, doc.getitemValue(YOUR_FIELD_WITH_ROLE)(0)))) then Continue = False[/CODE]
0
|
0 / 0 / 0
Регистрация: 04.10.2007
Сообщений: 2,977
|
|
10.12.2009, 16:14 | 5 |
Сообщение от Omh
0
|
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
|
10.12.2009, 16:59 | 6 |
Сообщение от Cleric-Lviv
Authors поля позволяют ограничить редактирование документа только пользователям с уровнем доступа на базу Автор. Посмотрите, что в итоге получилось в документе, поля действительно авторс и ридерс? Тут правильно сказано, нельзя так: acl.GetEntry( ses.UserName ) . Akupaka - говорить по делу...
0
|
0 / 0 / 0
Регистрация: 30.12.2007
Сообщений: 583
|
|
11.12.2009, 11:33 | 7 |
OKEN
ну вчара кажется разобрался с помощю Akupaka :what?: так что жду ево во Львове)
0
|
0 / 0 / 0
Регистрация: 15.05.2009
Сообщений: 1,454
|
|
11.12.2009, 12:29 | 8 |
Тогда Akupaka - респект )
И ты молодец )
0
|
11.12.2009, 12:29 | |
11.12.2009, 12:29 | |
Помогаю со студенческими работами здесь
8
Проблема с Acl ... Обход Acl ACL для View Вапрос по группам в Acl Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |