AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
CRM
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 28.12.2007, 09:50   #1  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
? Как программно изменить права доступа на объект ?
Например, есть поле в таблице (или MenuItem или еще что-нибудь), нужно у группы изменить права доступа на это поле (или другой объект) из X++ .
Не подскажете, каким методом это можно сделать? А то что-то я запутался в секурных классах.
Alt 28.12.2007, 10:09   #2  
miklenew ist offline
miklenew
Участник
Benutzerbild von miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1.688 / 438 (18) +++++++
Registriert seit: 10.07.2006
Ort: г. Ликино-Дулёво
Может я не понял вопрос. Зачем для этого кодить?
Программно проверить включён ли ключ можно так.
X++:
    DictSecurityKey dictSecurityKey;
    ;
    dictSecurityKey = new DictSecurityKey(id );
    if(!dictSecurityKey || (.rights() != AccessType::NoAccess)))
    {
         .....
    }
This post has been rated by: lev (1).
Alt 28.12.2007, 10:16   #3  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
Ключи тут не причем ! Я имею ввиду права доступа у полю таблицы или к пункту меню для определенной группы пользователей.
Alt 28.12.2007, 10:42   #4  
EAlex ist offline
EAlex
Участник
 
27 / 14 (1) ++
Registriert seit: 30.01.2004
X++:
secSet  = SysSecurity::constructSecurityKeySet();
secSet.loadGroupRights(userGroup.id, '');

//Уровень доступа на MenuItem
//            secSet.access(_MenuItemId ,AccessType::NoAccess);        

//Уровень доступа на таблицу
//            secSet.tableAccess(_TableId,AccessType::NoAccess);        

//Сохранить
xAccessRightsList::saveSecurityRights(secSet.packTouched(), userGroup.id, '');
This post has been rated by: Logger (1).
Alt 28.12.2007, 12:08   #5  
kashperuk ist offline
kashperuk
Участник
Benutzerbild von kashperuk
MCBMSS
Соотечественники
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4.361 / 2084 (78) +++++++++
Registriert seit: 30.05.2004
Ort: Atlanta, GA, USA
egorych - а зачем это могло вам понадобиться?
Alt 28.12.2007, 13:36   #6  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
Zitat:
Zitat von kashperuk Beitrag anzeigen
egorych - а зачем это могло вам понадобиться?
Например, делается новый пункт меню или кнопка, привязывается к существующему SecurityKey, и доступ автоматом получают все, у кого этот ключ "включен". Затем нужно пройти по всем группам и выключить кому не положено.
Хочу эту процедуру чуть-чуть упростить.
Alt 28.12.2007, 14:41   #7  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Может поможет вот этот проект? Это установка прав, но идем не от группы к правам, а наоборот: выбираем пункт на который нужно установить права и переходим в список групп.
Angehängte Dateien
Dateityp: xpo AK_SecurityUserGroup.xpo (100,4 KB, 1109x aufgerufen)
This post has been rated by: Dron AKA andy (2), belugin (3), egorych (1), gl00mie (9), Umi (1), Egesihora (1), Maximin (2), Kabardian (3), Logger (5), denny (1), player (1), zemius (1), Alexanderrrr (1), andy.l (1), S.Kuskov (2), alex55 (2), sukhanchik (10), Just_smile (1), Proba (1), dn (2), ice321i (1), novic (1), vagon (1), Player1 (1), someOne (8), A_BAS (0), Xardas (1), mazzy (2), Ace of Database (4), PQRS (1), wedmak_dk (1), RVS (5), Товарищ ♂uatr (4).
Alt 28.12.2007, 15:04   #8  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Может поможет вот этот проект?
Спасибо, посмотрю.
Посмотрел, класс!!! То что я хотел делать!
Дкмаю в полезное занести нужно

Geändert von egorych (28.12.2007 um 16:52 Uhr)
Alt 25.08.2009, 14:41   #9  
Kabardian ist offline
Kabardian
Талантливый разгвоздяй
Benutzerbild von Kabardian
 
424 / 338 (12) ++++++
Registriert seit: 14.12.2008
Ort: Москва
Blog-Einträge: 14
Zitat:
Zitat von egorych Beitrag anzeigen
Спасибо, посмотрю.
Посмотрел, класс!!! То что я хотел делать!
Дкмаю в полезное занести нужно
Kernel version: 4.0.2501.116
Application version: 4.0.2501.121
Localization version: Eastern Europe


Занес в полезное ;--).

egorych, пожалуйста, поделитесь опытом:
  1. На какой версии AX использовали?
  2. На какой среде? (тестовая, рабочая)
  3. Были ли какие-то проблемы с использованием?
У меня возникла только одна проблема -- кракозябры при установке на полностью английскую тестовую среду. Проблема решилась сменой региональных настроек на родные ;--).

Geändert von Kabardian (25.08.2009 um 14:51 Uhr)
Alt 25.08.2009, 21:18   #10  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3.985 / 3273 (117) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Может поможет вот этот проект? Это установка прав, но идем не от группы к правам, а наоборот: выбираем пункт на который нужно установить права и переходим в список групп.
Пробежал код по диагонали - впечатлило.
А как вы его писали ?
Переложили дерево из стандартной формы прав доступа для групп на некое подобие реляционной структуры ?

Известные косяки при использовании есть ? (уж очень стремно залезать в права самим)
У вас на какой версии работало ? 3-ка ?
Alt 29.08.2009, 20:39   #11  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Zitat:
А как вы его писали ?
Переложили дерево из стандартной формы прав доступа для групп на некое подобие реляционной структуры ?
Да, применил индуский поход Copy-Paste. Разрабатывалось для Ax3.0 еще когда работал в объединенных кондитерах. Там достаточно много было доработок (как самостоятельных, так и с привлечением специалистов Навикон и Норбит) Начальник отдела сопровождения Юля замучилась при появлении новой функциональности устанавливать права по группам и попросила сделать что-то, облегчающее работу. Вот, после очередного похода в Золотую воблу сил на что-то серьезное не было и в результате появилось это.Разрабатывалось для Ax3.0, но сейчас вроде работает на DAX4. Правда на DAX4 иногда при установке каскада бывает задумывается минут на 20-30. Закономерности не нашел, а следовательно не поправил.

Geändert von Raven Melancholic (29.08.2009 um 20:41 Uhr)
This post has been rated by: Logger (9), Kabardian (3).
Alt 31.08.2009, 09:01   #12  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
Активно пользуюсь данным инструментом на Ax3. Единственное замечание возникло.
Имеем форму, там кнопка, без ключа и без menuitem - простая кнопка. Стандартной формой "Права групп пользователей" без проблем можно выставить доступ NoAccess для нее, а вот эта не позволяет - пишет что-то типа "Для объекта доступен только режим View". За точность не ручаюсь, но смысл этот.
А в остальном - посто класс!
ps А на Ax 2009 не делали? А то мы 4 пропускаем, планируем сразу на 5.
This post has been rated by: Raven Melancholic (5), Kabardian (3).
Alt 01.09.2009, 21:29   #13  
Kabardian ist offline
Kabardian
Талантливый разгвоздяй
Benutzerbild von Kabardian
 
424 / 338 (12) ++++++
Registriert seit: 14.12.2008
Ort: Москва
Blog-Einträge: 14
Zitat:
Zitat von egorych Beitrag anzeigen
Имеем форму, там кнопка, без ключа и без menuitem - простая кнопка. Стандартной формой "Права групп пользователей" без проблем можно выставить доступ NoAccess для нее, а вот эта не позволяет - пишет что-то типа "Для объекта доступен только режим View".
У меня на AX4.0 SP2 не повторилось. Кажется, я понимаю о чем идет речь. Эта ошибка появляется, при попытке назначить уровень доступа выше максимального. Например, максимальный уровень доступа у элемента View, при поытке указать уровень Edit, будет выдано такое сообщение об ошибке. В стандартной форме при таких же условиях автоматически устанавливается максимально возможный уровень доступа без лишних предупреждений .
Alt 02.09.2009, 09:39   #14  
egorych ist offline
egorych
Участник
Самостоятельные клиенты AX
Oracle
 
761 / 154 (7) ++++++
Registriert seit: 09.11.2006
Ort: Краснодарский край
Zitat:
Zitat von Kabardian Beitrag anzeigen
Например, максимальный уровень доступа у элемента View, при поытке указать уровень Edit, будет выдано такое сообщение об ошибке.
Не-е-е! Я как раз хочу убрать доступ!
Alt 02.09.2009, 15:30   #15  
Kabardian ist offline
Kabardian
Талантливый разгвоздяй
Benutzerbild von Kabardian
 
424 / 338 (12) ++++++
Registriert seit: 14.12.2008
Ort: Москва
Blog-Einträge: 14
Zitat:
Zitat von egorych Beitrag anzeigen
Не-е-е! Я как раз хочу убрать доступ!
У меня убирается без проблем.

Как я проверял:
  1. Создал форму, кнопку, пункты меню на форму и на кнопку без Security Key
  2. Установил разные уровни доступа в разных доменах с помощью этого инструмента
  3. Проверил через стандартную форму уровень доступа в разных доменах -- все ОК
  4. Снял доступ во всех доменах
  5. Проверил через стандартную форму уровень доступа в разных доменах -- все ОК

Скорее всего, этот баг наблюдается при особых условиях, т. е. отсутвие Security Key -- это всего лишь одно из необходымых условий его воспроизведения.
Alt 02.09.2009, 18:14   #16  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Zitat:
Zitat von egorych Beitrag anzeigen
Имеем форму, там кнопка, без ключа и без menuitem - простая кнопка. Стандартной формой "Права групп пользователей" без проблем можно выставить доступ NoAccess для нее, а вот эта не позволяет - пишет что-то типа "Для объекта доступен только режим View". За точность не ручаюсь, но смысл этот.
Да, вкралась ошибка. Для исправления нужно в форме SecurityUserGroup_AK в методе getAccessForGroup закомментировать в ветке:
X++:
case SysSecurityType::FormButton:
строку:
X++:
minAccess  = sysSecurityFormSetup.getNeededAccessLevel(tmpSecurityTable.controlId);
Alt 02.09.2009, 18:16   #17  
Raven Melancholic ist offline
Raven Melancholic
Участник
Benutzerbild von Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2.164 / 1296 (48) ++++++++
Registriert seit: 21.03.2005
Ort: Москва-Петушки
Zitat:
Zitat von Kabardian Beitrag anzeigen
Скорее всего, этот баг наблюдается при особых условиях...
Скорее всего, у вас эту ошибку уже давно исправили
This post has been rated by: Pustik (3), Kabardian (3).
Alt 02.09.2009, 19:55   #18  
Kabardian ist offline
Kabardian
Талантливый разгвоздяй
Benutzerbild von Kabardian
 
424 / 338 (12) ++++++
Registriert seit: 14.12.2008
Ort: Москва
Blog-Einträge: 14
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Скорее всего, у вас эту ошибку уже давно исправили
Нет, я использовал его только в песочнице AX40SP2, но в планах был перенос на тестовое и рабочее приложения, после проверки ведущим разработчиком . Указанная строка не закомментирована.
Alt 01.11.2011, 18:39   #19  
Logger ist offline
Logger
Участник
Лучший по профессии 2015
Лучший по профессии 2014
 
3.985 / 3273 (117) ++++++++++
Registriert seit: 12.10.2004
Ort: Москва
Blog-Einträge: 2
Zitat:
Zitat von Raven Melancholic Beitrag anzeigen
Может поможет вот этот проект? Это установка прав, но идем не от группы к правам, а наоборот: выбираем пункт на который нужно установить права и переходим в список групп.
На 2009-й кто-нить использовал это проект ?
Alt 02.12.2011, 22:08   #20  
Kabardian ist offline
Kabardian
Талантливый разгвоздяй
Benutzerbild von Kabardian
 
424 / 338 (12) ++++++
Registriert seit: 14.12.2008
Ort: Москва
Blog-Einträge: 14
Просто поделюсь опытом, может кому-нибудь пригодится.

Дано:
  • AX 4.0 SP2, версия ядра 4.0.2503.116;
  • ~450 групп пользователей;
  • 10 доменов.

Задача:
  • отключить доступ к одному отчету у всех групп.

Выполняется очееень долго (~4-9 часов) и не всегда завершается успешно. Оптимизировать времени не было, поэтому и хотфикс не выкладываю, а лишь делюсь опытом :-).
This post has been rated by: Pustik (3).
Stichworte
axapta, законченный пример, полезное, права доступа, программно

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
права доступа Himan DAX: Функционал 9 24.09.2010 16:52
Права доступа Группы пользователей к таблице ta_and DAX: Администрирование 2 19.01.2009 15:19
Права доступа на поля формы. AlexeyBP DAX: Функционал 6 12.12.2006 12:02
Как программно изменить к-во в строке заказа в форме SalesTable BorDark DAX: Программирование 2 13.01.2005 17:02
Права доступа - Журнал платежей SDA DAX: Прочие вопросы 1 20.09.2004 23:10

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 21:55 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.