23.12.2013, 23:18 | #1 |
Участник
|
Добавление прав пользователям программно
Как можно добавить программно новые группы прав указанным пользователям Microsoft Dynamics AX 2009?
|
|
24.12.2013, 06:13 | #2 |
Участник
|
Такая тема уже подымалась и у всех возникал вопрос - "Для чего это может понадобиться?", в этой же теме прикреплен классный проект по изменениям прав, категорически рекомендую!
Как программно изменить права доступа на объект ? |
|
24.12.2013, 10:29 | #3 |
Участник
|
Посмотрел очень интересный вариант, но мне требуется другое, а именно:
Как найти таблицу, в которой для каждого пользователя хранится список его групп (Права групп пользователей) и произвести необходимые изменения (добавления, замена и удаления из списка групп конкретного пользователя) согласно поступившему списку пользователей. |
|
24.12.2013, 10:40 | #4 |
Участник
|
UserGroupList
|
|
24.12.2013, 13:09 | #5 |
MCTS
|
в АОТ она в находится в "System Documentation/Tables"
|
|
24.12.2013, 16:55 | #6 |
Участник
|
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 |
Участник
|
Здравствуй дорогой MShi!
Спасибо за присланное решение, я новичок в Аксапте и не смог запустить твое задание на выполнение со следующими данными: userId = "Macru"; GroupId = "ASS.TECH"; И здесь подскажи пожалуйста! Заранее благодарю. |
|
26.12.2013, 16:51 | #8 |
MCITP
|
Цитата:
Так тоже не запускается? //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 |
Участник
|
Вот джоб, который точно должен отработать. Не забудьте подставить нужные значения.
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). |