06.12.2013, 22:50 | #1 |
Участник
|
ax 2012 привилегии
Добрый вечер! Осваиваю Ax 2012. Стоит след. задача. Есть в системе привилегия #1 и есть форма на которой два поля поле1 и поле2. Значения поля1 может быть 0 либо 1. Как из кода проверить, что если в поле1 - 0 и в пользователя есть привилегия, то нужно выполнять делать доступное к редактированию поле2. Раньше использовали в пред. версиях Securitykey. Сейчас нужно именно на привилегиях.
Пробовал через SecurityRights::construct().hasServerMethodAccess(класс1, метод1). Но всегда чегото true, под разными пользователями. Заранее благодаю. |
|
07.12.2013, 10:00 | #2 |
Участник
|
__________________
// no comments |
|
07.12.2013, 11:07 | #3 |
Участник
|
спс, читал уже не один раз, конкретного что то не нашел.
|
|
09.12.2013, 08:57 | #4 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Logger (1). |
05.08.2015, 13:33 | #5 |
Участник
|
|
|
05.08.2015, 15:01 | #6 |
Талантливый разгвоздяй
|
Насколько я понял, задача - выделить нескольких привилегированных пользователей, которые могут редактировать информацию в поле2. Если не завязываться конкретно на функционал привилегий, то я бы советовал посмотреть в сторону групп пользователей:
Последний раз редактировалось Kabardian; 05.08.2015 в 15:05. |
|
05.08.2015, 15:10 | #7 |
Участник
|
Цитата:
Сообщение от Kabardian
Насколько я понял, задача - выделить нескольких привилегированных пользователей, которые могут редактировать информацию в поле2. Если не завязываться конкретно на функционал привилегий, то я бы советовал посмотреть в сторону групп пользователей:
|
|
05.08.2015, 15:42 | #8 |
Участник
|
пользуюсь следующим методом. единственное, что админы не проходят данную проверку
X++: static boolean hasAccessToPrivilege(SecurityTaskAotName _privilegeName, UserID _userId = curUserId()) { UserInfo userInfo; SecurityUserRole securityUserRole; SecurityRoleTaskGrant srtGrant; securityRoleExplodedGraph securityRoleExplodedGraph; securityTaskExplodedGraph securityTaskExplodedGraph; SecurityTask securityTask; select firstOnly RecId from securityTask where securityTask.AotName == _privilegeName; if (securityTask.RecId) { select RecId from userInfo where userInfo.Enable && userInfo.id == _userId exists join securityUserRole where securityUserRole.User == userInfo.Id && securityUserRole.AssignmentStatus == RoleAssignmentStatus::Enabled exists join securityRoleExplodedGraph where securityUserRole.SecurityRole == securityRoleExplodedGraph.SecurityRole exists join srtGrant where srtGrant.SecurityRole == securityRoleExplodedGraph.SecuritySubRole exists join securityTaskExplodedGraph where securityTaskExplodedGraph.SecurityTask == srtGrant.SecurityTask && securityTaskExplodedGraph.SecuritySubTask == securityTask.RecId; } return userInfo.RecId != 0; } |
|
|
За это сообщение автора поблагодарили: Kabardian (2), АртемМелихов (1). |
Теги |
ax2012 |
|
|