Использование Ролей Для Предоставление Доступа.

  • Автор темы Автор темы solomonec
  • Дата начала Дата начала
S

solomonec

Здраствуйте уважаемые эксперты! У меня есть вопросы касающиеся использования ролей - Где можно посмотреть что запрещают и разрешают роли в дизайне бази....могут ли они запрещать удалять записи в базе...и где обычно их прописываю в коде при разработке бази...
 
solomonec
Удалять, создавать, копировать, создавать папки, запускать агенты и так далее. Позволяет запись в ACL и галочки на разрешения.

Роли можно прописывать в поля Authors, Readers. Что в свою очередь дает владельцу роли: редактировать(Authors), видеть(Readers)
Через дизайнер можно запретить видимость отдельных элементов дизайна: формы, представления, агенты, пункты в навигаторе.
Можно настроить видимость отдельных полей, кнопок.
Можно использовать роли в коде, запрет того или иного действия.

В целом лучше почитать Help Domino Designer, плюс ветку FAQ данного форума + дополнительный материал в интернете.
 
solomonec
Удалять, создавать, копировать, создавать папки, запускать агенты и так далее. Позволяет запись в ACL и галочки на разрешения.

Роли можно прописывать в поля Authors, Readers. Что в свою очередь дает владельцу роли: редактировать(Authors), видеть(Readers)
Через дизайнер можно запретить видимость отдельных элементов дизайна: формы, представления, агенты, пункты в навигаторе.
Можно настроить видимость отдельных полей, кнопок.
Можно использовать роли в коде, запрет того или иного действия.

В целом лучше почитать Help Domino Designer, плюс ветку FAQ данного форума + дополнительный материал в интернете.


Просто проблема состоит в том что галочки у групы на удаление документов(записей) сняты, но удалять они все равно могут...вот я и пытаюсь выяснить что и где смотреть.....
 
solomonec
У групп полбеды, если человек прописан на прямую - такая запись приоритетна.
Как именно удаляют? Del на клаве + F9(аналогично правая кнопка мыши - удалить) или через кнопку в форме/представлении?

Если удаляют через кнопку "удалить" в базе, то скорее всего на ней агент или скрипт удаляющий документы.
Посмотри еще Database script событие Querydocumentdelete, порою там пишут.

Добавлено: А еще если человек входит только по группе, то свойства групп - складываются.
То есть он может быть в двух группах, одна прописана в базу с удалением, вторая без - пойдет сумма и будет удаление.
 
solomonec
У групп полбеды, если человек прописан на прямую - такая запись приоритетна.
Как именно удаляют? Del на клаве + F9(аналогично правая кнопка мыши - удалить) или через кнопку в форме/представлении?

Если удаляют через кнопку "удалить" в базе, то скорее всего на ней агент или скрипт удаляющий документы.
Посмотри еще Database script событие Querydocumentdelete, порою там пишут.

Добавлено: А еще если человек входит только по группе, то свойства групп - складываются.
То есть он может быть в двух группах, одна прописана в базу с удалением, вторая без - пойдет сумма и будет удаление.

Удаляют через Del на клаве + F9(аналогично правая кнопка мыши - удалить)
 
Тогда должна быть галочка, так или иначе она есть, либо все же скрипт от имени админа или сервера есть на Querydocumentdelete
 
может в доступе по дефолту стоит птычко на удаление
 
Тогда должна быть галочка, так или иначе она есть, либо все же скрипт от имени админа или сервера есть на Querydocumentdelete

Посмотрел что пользователи базы в других группах не состоят, галочки с удалением у группы убраны....Посмотрел в Querydocumentdelete и там вот такой код
Код:
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
Dim doc As NotesDocument
Dim y As Long
Continue = True
If( Source.Documents.Count > 0 ) Then
For y = Source.Documents.Count To 1 Step -1
Set doc = Source.Documents.GetNthDocument(y)
If Not( doc.Hasitem("$Conflict") ) Then
If( emsg Is Nothing ) Then Set emsg = New esamsg(Nothing)
'---------------------------------------------------------------------------------------------
'put here your specific code to control witch document can be deleted
'---------------------------------------------------------------------------------------------				
If( doc.Form(0) = "document" ) Then
If( doc.Status(0) <> "1" ) Then
vEval = Evaluate(|@IsNotMember("[eAppAdmin]";@UserRoles)|)
If( vEval(0) ) Then
Continue = False
Messagebox emsg.getstring(eMSG_COMMON,eMSG_DELNOTAUTHORIZED,Null,Nothing), 16, emsg.getstring(eMSG_COMMON,eMSG_TITLE,Null,Nothing)
Exit For
End If
End If
Elseif( doc.Form(0) = "eannextask" ) Then
If( doc.Status(0) = "1" Or doc.Status(0) = "2" ) Then
vEval = Evaluate(|@IsNotMember("[eAppAdmin]";@UserRoles)|)
If( vEval(0) ) Then
Continue = False
Messagebox emsg.getstring(eMSG_COMMON,eMSG_DELNOTAUTHORIZED,Null,Nothing), 16, emsg.getstring(eMSG_COMMON,eMSG_TITLE,Null,Nothing)
Exit For
End If
End If
Elseif( doc.Form(0) = "eannexapproval" ) Then
If( doc.Status(0) = "0" Or doc.Status(0) = "1" ) Then
vEval = Evaluate(|@IsNotMember("[eAppAdmin]";@UserRoles)|)
If( vEval(0) ) Then
Continue = False
Messagebox emsg.getstring(eMSG_COMMON,eMSG_DELNOTAUTHORIZED,Null,Nothing), 16, emsg.getstring(eMSG_COMMON,eMSG_TITLE,Null,Nothing)
Exit For
End If
End If
End If
'---------------------------------------------------------------------------------------------				
'end of your specifi code
'---------------------------------------------------------------------------------------------
End If
Next
If( Continue ) Then
Call eevents.Querydocumentdelete(Source,Continue)
End If
End If
End Sub

Но здесь я вижу разве что месседжбокс который срабатывает для всех кто не состоит в роли eAppAdmin.....а у меня в ней никого и нету...
 
Воооотт, по коду видно что:

Если форма "document", то:
1. можно удалять если поле Status = "1"
2. иначе если есть роль [eAppAdmin]

Если форма "eannextask" то:
1. можно удалять если поле Status не содержит в себе "1" или "2"
2. иначе если есть роль [eAppAdmin]

Если форма "eannexapproval" то:
1. можно удалять если поле Status не содержит в себе "0" или "1"
2. иначе если есть роль [eAppAdmin]
 
Воооотт, по коду видно что:

Если форма "document", то:
1. можно удалять если поле Status = "1"
2. иначе если есть роль [eAppAdmin]

Если форма "eannextask" то:
1. можно удалять если поле Status не содержит в себе "1" или "2"
2. иначе если есть роль [eAppAdmin]

Если форма "eannexapproval" то:
1. можно удалять если поле Status не содержит в себе "0" или "1"
2. иначе если есть роль [eAppAdmin]

Да верно, однако у меня форма document не та которую удаляют через view, a удаляют document1, document2, document3.....а сработает ли финт если добавить код для трех документов...чтобы скажем если пользователи не являются представителями определенной роли то записи удалить нельзя...?
 
solomonec
Сработает, если добавить в условие эти формы. Сейчас их нет, поэтому и можно удалить.
Как только внесете в код - необходимо чтобы пользователи прервали сессии с базой, тогда начнет действовать.
 
Replace design поможет (если нет, то доки пройтись ComputeWithForm)... ну и сессии нужно будет перегрузить
бЗЫ: реплейс иль агент с ComputeWithForm делать только при полностью всех закрытых сессиях!!! иначе доки конфликтами станут иль вообще пропадут, всяко бывает
 
граблеходцам на заметку...
если делать роли в дизайне (в св-вах формы) - получим поля $Readers апдейт которых может проистекать не совсем гладко
можно добавить свои ридерс/авторс и в них нахрдкодить дефолтные роли, сделать их компутед (хотя это и не очень красиво)
тогда после апдейта дизайна - просто запустить @Command([ToolsRefreshSelectedDocs]) (вынести на смартайкон)
можно, попутно, снести редерс - если они перекрывают права
в любом случае, до всего процесса - бекап и вынос его за пределы компа, с пометкой времени и действия
 
afest
lmike
При всем уважении, коллеги: Вопрос был в том: почему документы по формам "Document1", "Document2" удаляются, а под другим нет?
Ответ был в коде Querydocumentdelete, где жестко прописаны формы,роли и условия.
Как я понял, автор вставит туда условия для своих форм и решит проблему до появления новой формы.
Решение не очень, но видимо устраивает.
Сам предпочитаю ставить документам статус или флаг "Удален" и не сносить из базы некоторое время.
 
savl да, я был невнимателен к постановке вопроса и отвечал на несколько др. тему :)
но вопрошающий может нарваться и на собственный код, кот. будет под юзером удалять доки (а правами не ограничен)
 
afest
lmike
При всем уважении, коллеги: Вопрос был в том: почему документы по формам "Document1", "Document2" удаляются, а под другим нет?
Ответ был в коде Querydocumentdelete, где жестко прописаны формы,роли и условия.
Как я понял, автор вставит туда условия для своих форм и решит проблему до появления новой формы.
Решение не очень, но видимо устраивает.
Сам предпочитаю ставить документам статус или флаг "Удален" и не сносить из базы некоторое время.

Так у меня они сразу не удаляются а помичаются и видны в треше....чтобы потом можно было вручную удалить с концами...
 
вьюха для удаленных $Trash?
Тогда по факту они удаляются, просто включено Soft Deletion, там же срок хранения еще выставляется 48 дней, кажется
 
вьюха для удаленных $Trash?
Тогда по факту они удаляются, просто включено Soft Deletion, там же срок хранения еще выставляется 48 дней, кажется

Да именно $Trash, но интересно то что Soft Deletion выключена.
 
Soft Deletion выключена

может на серваке (домино) стоят хитрые настройки?
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!