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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.12.2013, 23:18   #1  
Vasil is offline
Vasil
Участник
Аватар для Vasil
 
37 / 10 (1) +
Регистрация: 29.06.2011
Добавление прав пользователям программно
Как можно добавить программно новые группы прав указанным пользователям Microsoft Dynamics AX 2009?
Старый 24.12.2013, 06:13   #2  
Player1 is offline
Player1
Участник
Самостоятельные клиенты AX
 
306 / 137 (5) +++++
Регистрация: 21.04.2008
Такая тема уже подымалась и у всех возникал вопрос - "Для чего это может понадобиться?", в этой же теме прикреплен классный проект по изменениям прав, категорически рекомендую!
Как программно изменить права доступа на объект ?
Старый 24.12.2013, 10:29   #3  
Vasil is offline
Vasil
Участник
Аватар для Vasil
 
37 / 10 (1) +
Регистрация: 29.06.2011
Посмотрел очень интересный вариант, но мне требуется другое, а именно:
Как найти таблицу, в которой для каждого пользователя хранится список его групп (Права групп пользователей) и произвести необходимые изменения (добавления, замена и удаления из списка групп конкретного пользователя) согласно поступившему списку пользователей.
Старый 24.12.2013, 10:40   #4  
S.Kuskov is offline
S.Kuskov
Участник
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
3,440 / 1775 (66) ++++++++
Регистрация: 28.04.2007
Адрес: Калуга
UserGroupList
Старый 24.12.2013, 13:09   #5  
ashu is offline
ashu
MCTS
MCBMSS
 
255 / 78 (3) ++++
Регистрация: 24.06.2008
в АОТ она в находится в "System Documentation/Tables"
Старый 24.12.2013, 16:55   #6  
MShi is offline
MShi
Участник
 
17 / 11 (1) +
Регистрация: 19.12.2012
Vasil, вот маленький джоб, позволяющий добавить пользователей в конкретную группу:

// Добавление пользователей в конкретную группу
static void AddUsersToGroup(Set _userSet, UserGroupId _addGroupId)
{
UserGroupList userGroupList; // Таблица пользователей в группах
SetEnumerator setEnum = _userSet.getEnumerator(); // Список пользователей
;

while (setEnum.moveNext())
{
select firstonly userGroupList
where userGroupList.groupId == _addGroupId
&& userGroupList.userId == setEnum.current();

// Если пользователя ещё нет в группе, добавляем его
if (!userGroupList)
{
userGroupList.groupId = _addGroupId;
userGroupList.userId = setEnum.current();
userGroupList.insert();
}
}
}

А также ссылка на доработку формы прав пользователей, где можно посмотреть, у каких пользователей есть доступ к тому или иному объекту:
Как программно изменить права доступа на объект ?
Старый 26.12.2013, 13:21   #7  
Vasil is offline
Vasil
Участник
Аватар для Vasil
 
37 / 10 (1) +
Регистрация: 29.06.2011
Здравствуй дорогой MShi!
Спасибо за присланное решение, я новичок в Аксапте и не смог запустить твое задание на выполнение со следующими данными:
userId = "Macru";
GroupId = "ASS.TECH";
И здесь подскажи пожалуйста!
Заранее благодарю.
Старый 26.12.2013, 16:51   #8  
GBH is offline
GBH
MCITP
Аватар для GBH
MCP
MCBMSS
Ex AND Project
 
140 / 28 (1) +++
Регистрация: 28.06.2007
Цитата:
Сообщение от Vasil Посмотреть сообщение
Здравствуй дорогой MShi!
Спасибо за присланное решение, я новичок в Аксапте и не смог запустить твое задание на выполнение со следующими данными:
userId = "Macru";
GroupId = "ASS.TECH";
И здесь подскажи пожалуйста!
Заранее благодарю.
А "не можете запустить" как выражается? Ошибка или что-то отдаленно напоминающее ошибку выскакивает?
Так тоже не запускается?
//static void AddUsersToGroup(Set _userSet, UserGroupId _addGroupId)
static void AddUsersToGroup(Args _args)
{
UserGroupList userGroupList; // Таблица пользователей в группах
//SetEnumerator setEnum = _userSet.getEnumerator(); // Список пользователей
;

//while (setEnum.moveNext())
//{
select firstonly userGroupList
where //userGroupList.groupId == _addGroupId
userGroupList.groupId == 'ASS.TECH'
//&& userGroupList.userId == setEnum.current();
&& userGroupList.userId == 'Macru';

// Если пользователя ещё нет в группе, добавляем его
if (!userGroupList)
{
//userGroupList.groupId = _addGroupId;
userGroupList.groupId = 'ASS.TECH';
//userGroupList.userId = setEnum.current();
userGroupList.userId = 'Macru';
userGroupList.insert();
}
//}
}

P.S. Такое впечатление, что taison разобрался с кнопкой "Печать" и решил заняться настройкой прав. Какое-то странное название для группы выбрано.

Последний раз редактировалось GBH; 26.12.2013 в 17:05.
Старый 27.12.2013, 14:22   #9  
MShi is offline
MShi
Участник
 
17 / 11 (1) +
Регистрация: 19.12.2012
Вот джоб, который точно должен отработать. Не забудьте подставить нужные значения.

X++:
// Добавление пользователей в конкретную группу
static void ForPortal_MShi(Args _args)
{
    UserGroupList   userGroupList;                          // Таблица пользователей в группах
    Set             userSet     = new Set(Types::String);   // Список пользователей
    SetEnumerator   setEnum;
    UserGroupId     addGroupId  = 'ИмяГруппыПользователей'; // В Вашем случае "ASS.TECH"
    ;

    userSet.add("ИмяПользователя"); // В Вашем случае "Macru"
    //userSet.add("ИмяПользователя1"); // Можно добавить в список нескольких пользователей
    // ...
    
    setEnum = userSet.getEnumerator();
    
    while (setEnum.moveNext())
    {
        select firstonly userGroupList
            where   userGroupList.groupId   == addGroupId
                    && userGroupList.userId == setEnum.current();

        // Если пользователя ещё нет в группе, добавляем его
        if (!userGroupList)
        {
            userGroupList.groupId   = addGroupId;
            userGroupList.userId    = setEnum.current();
            userGroupList.insert();
        }
    }
}
За это сообщение автора поблагодарили: Vasil (1).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Много групп прав и производительность... propeller DAX: Администрирование 10 15.05.2012 01:53
RLS+Обычная настройка прав gefr DAX: Администрирование 3 05.10.2007 18:41
Распознание прав программно DreamCreator DAX: Программирование 22 03.03.2006 16:26
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Проблемы настройки прав доступа пользователям axot DAX: Администрирование 25 16.05.2002 10:47

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

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

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