AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 06.12.2013, 22:50   #1  
axotnik88 is offline
axotnik88
Участник
 
82 / 18 (1) ++
Регистрация: 05.06.2012
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  
dech is offline
dech
Участник
Аватар для dech
Самостоятельные клиенты AX
 
647 / 350 (13) ++++++
Регистрация: 25.06.2009
Адрес: Омск
Записей в блоге: 3
Контроль доступа, лицензирование и конфигурирование
__________________
// no comments
Старый 07.12.2013, 11:07   #3  
axotnik88 is offline
axotnik88
Участник
 
82 / 18 (1) ++
Регистрация: 05.06.2012
спс, читал уже не один раз, конкретного что то не нашел.
Старый 09.12.2013, 08:57   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
http://msdn.microsoft.com/EN-US/library/jj190221.aspx
За это сообщение автора поблагодарили: Logger (1).
Старый 05.08.2015, 13:33   #5  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
В данном примере не совсем понятно, как это применять к привилегиям, а не ролям.
Старый 05.08.2015, 15:01   #6  
Kabardian is offline
Kabardian
Талантливый разгвоздяй
Аватар для Kabardian
 
424 / 338 (12) ++++++
Регистрация: 14.12.2008
Адрес: Москва
Записей в блоге: 14
Насколько я понял, задача - выделить нескольких привилегированных пользователей, которые могут редактировать информацию в поле2. Если не завязываться конкретно на функционал привилегий, то я бы советовал посмотреть в сторону групп пользователей:
  • Создать группу пользователей и добавить в нее нужных пользователей
  • Проверять в форме входит ли пользователь в группу, если входит - разрешать редактировать, иначе - запрещать
Такая задача техничеки проще реализуема.

Последний раз редактировалось Kabardian; 05.08.2015 в 15:05.
Старый 05.08.2015, 15:10   #7  
АртемМелихов is offline
АртемМелихов
Участник
Аватар для АртемМелихов
 
120 / 10 (1) +
Регистрация: 18.12.2013
Адрес: Samara
Цитата:
Сообщение от Kabardian Посмотреть сообщение
Насколько я понял, задача - выделить нескольких привилегированных пользователей, которые могут редактировать информацию в поле2. Если не завязываться конкретно на функционал привилегий, то я бы советовал посмотреть в сторону групп пользователей:
  • Создать группу пользователей и добавить в нее нужных пользователей
  • Проверять в форме входит ли пользователь в группу, если входит - разрешать редактировать, иначе - запрещать
Такая задача техничеки проще реализуема.
Это получается плодить разные способы контроля доступа. И мне кажется, сие не есть хорошо.
Старый 05.08.2015, 15:42   #8  
NeveB is offline
NeveB
Участник
 
60 / 16 (1) ++
Регистрация: 14.11.2003
Адрес: Mosсow
пользуюсь следующим методом. единственное, что админы не проходят данную проверку
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

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
atinkerersnotebook: Walkthrough & Tutorial Summary Blog bot DAX Blogs 1 09.09.2013 09:11
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 07:20.