• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

solomonec

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

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
solomonec
Удалять, создавать, копировать, создавать папки, запускать агенты и так далее. Позволяет запись в ACL и галочки на разрешения.

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

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

solomonec

solomonec
Удалять, создавать, копировать, создавать папки, запускать агенты и так далее. Позволяет запись в ACL и галочки на разрешения.

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

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


Просто проблема состоит в том что галочки у групы на удаление документов(записей) сняты, но удалять они все равно могут...вот я и пытаюсь выяснить что и где смотреть.....
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
solomonec
У групп полбеды, если человек прописан на прямую - такая запись приоритетна.
Как именно удаляют? Del на клаве + F9(аналогично правая кнопка мыши - удалить) или через кнопку в форме/представлении?

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

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

solomonec

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

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

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

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

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Тогда должна быть галочка, так или иначе она есть, либо все же скрипт от имени админа или сервера есть на Querydocumentdelete
 
A

afest

может в доступе по дефолту стоит птычко на удаление
 
S

solomonec

Тогда должна быть галочка, так или иначе она есть, либо все же скрипт от имени админа или сервера есть на 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.....а у меня в ней никого и нету...
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
Воооотт, по коду видно что:

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

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

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

solomonec

Воооотт, по коду видно что:

Если форма "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.....а сработает ли финт если добавить код для трех документов...чтобы скажем если пользователи не являются представителями определенной роли то записи удалить нельзя...?
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
solomonec
Сработает, если добавить в условие эти формы. Сейчас их нет, поэтому и можно удалить.
Как только внесете в код - необходимо чтобы пользователи прервали сессии с базой, тогда начнет действовать.
 
A

afest

Replace design поможет (если нет, то доки пройтись ComputeWithForm)... ну и сессии нужно будет перегрузить
бЗЫ: реплейс иль агент с ComputeWithForm делать только при полностью всех закрытых сессиях!!! иначе доки конфликтами станут иль вообще пропадут, всяко бывает
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
граблеходцам на заметку...
если делать роли в дизайне (в св-вах формы) - получим поля $Readers апдейт которых может проистекать не совсем гладко
можно добавить свои ридерс/авторс и в них нахрдкодить дефолтные роли, сделать их компутед (хотя это и не очень красиво)
тогда после апдейта дизайна - просто запустить @Command([ToolsRefreshSelectedDocs]) (вынести на смартайкон)
можно, попутно, снести редерс - если они перекрывают права
в любом случае, до всего процесса - бекап и вынос его за пределы компа, с пометкой времени и действия
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
afest
lmike
При всем уважении, коллеги: Вопрос был в том: почему документы по формам "Document1", "Document2" удаляются, а под другим нет?
Ответ был в коде Querydocumentdelete, где жестко прописаны формы,роли и условия.
Как я понял, автор вставит туда условия для своих форм и решит проблему до появления новой формы.
Решение не очень, но видимо устраивает.
Сам предпочитаю ставить документам статус или флаг "Удален" и не сносить из базы некоторое время.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
215
savl да, я был невнимателен к постановке вопроса и отвечал на несколько др. тему :)
но вопрошающий может нарваться и на собственный код, кот. будет под юзером удалять доки (а правами не ограничен)
 
S

solomonec

afest
lmike
При всем уважении, коллеги: Вопрос был в том: почему документы по формам "Document1", "Document2" удаляются, а под другим нет?
Ответ был в коде Querydocumentdelete, где жестко прописаны формы,роли и условия.
Как я понял, автор вставит туда условия для своих форм и решит проблему до появления новой формы.
Решение не очень, но видимо устраивает.
Сам предпочитаю ставить документам статус или флаг "Удален" и не сносить из базы некоторое время.

Так у меня они сразу не удаляются а помичаются и видны в треше....чтобы потом можно было вручную удалить с концами...
 

savl

Lotus Team
28.10.2011
2 597
310
BIT
180
вьюха для удаленных $Trash?
Тогда по факту они удаляются, просто включено Soft Deletion, там же срок хранения еще выставляется 48 дней, кажется
 
S

solomonec

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

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

afest

Soft Deletion выключена

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

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