02.07.2010, 16:25 | #1 |
Участник
|
AX 4.0 Security permissions
Доброго времени суток.
Столкнулся со следующей проблемой при конфигурации group permissions, Например имеем 2 группы, в одной активен AR>Customers - доступ View, все кнопки внутри customers не активны. Вторая группа RLS, все ключи не активны. В Акспате юзер видит, что кнопки внутри Customers screen активны. Причина ясна, во второй группе при неактивных ключах, многие кнопки и экраны - остаются активными, причем имеют уровень доступа Full control, соответственно юзер имеет View на Customers screen через одну группу, а все остальные функции, которых по идее быть не должно - через другую. Вопрос такой - как сделать так, что бы при создании новой группы АБСОЛЮТНО ВСЕ экраны и кнопки внутри ключа были не активными. Вариант вручную лазить по RLS группе и выключать все не слишком прокатывает, т.к. группа не одна и не две. Последний раз редактировалось mdemon; 02.07.2010 в 16:47. |
|
03.07.2010, 10:26 | #2 |
Member
|
Речь идет только о кнопках, на которых не повешен Menu Item с Security Key? Вопрос про стандартные кнопки или про кастомизированные?
Я в своей практике с такой проблемой не сталкивался. Если делается кнопка без Menu Item, то подразумевается, что доступ к ней ограничивать не нужно, раз уж пользователь имеет доступ на форму. Или нужно делать кнопки с Menu Items. В стандартном приложении я не припоминаю случаев, чтобы были кнопки без Menu Items, и при этом имел бы смысл ограничивать на них доступ. Или уточните суть проблемы.
__________________
С уважением, glibs® |
|
04.07.2010, 08:53 | #3 |
Участник
|
суть проблемы в том, что по умолчанию про создаии новой группы при неактивных родительских ключах, внутри них находятся объекты (menu items and action buttons) с доступом фулл контрол. Необходимо предоставить пользователю доступ View на menu items, при этом ограничить доступ к кнопкам. В рамках группы пользователя я делаю это руками, дизэблю все что не надо - не вопрос. Но когда к основной группе добавляется RLS группа, то благодаря ей у пользователя появлется доступ ко многим объектам, которые заблокированы в основной группе. Очень не хочется лазить по всем RLS группам и искать где-что активно, что бы отключить.
Простейший пример: создаем новую группу, и даем V на AR>Customers, далее открываем Customers screen> Functions, очень многое из функций - Full control. Надеюсь что так более понятно. |
|
05.07.2010, 00:51 | #4 |
Administrator
|
Цитата:
Кстати, а какая версия АХ? А то в соседней (Суммарный RLS запрос в виде SQL) ветке пробегало описание разного поведения RLS в различных версиях. И еще момент. У каждого пункта меню есть свойство NeedAccessLevel, по умолчанию установленное во View. На моем жизненном пути часто встречались созданные при внедрении пункты меню, в котором значение этого свойства не меняли. Соответственно - система честно считает, что раз для отображения пункта меню хватает прав на просмотр - значит его нужно отображать. В то время как пункт меню может ссылаться на код, который данные модифицирует. А права доступа в данном случае на действия, выполняемые в коде не распространяются. Поэтому для таких пунктов меню д.б. установлено свойство NeedAccessLevel в значение не ниже Edit
__________________
Возможно сделать все. Вопрос времени |
|
05.07.2010, 13:06 | #5 |
Участник
|
Axapta 4.0
Да тут речь не идет конкретно о RLS группе, создавая любую группу со всеми неактивными ключами, в ней будут экраны и кнопки с FC внутри (eg. AR>Customers>Functions). |
|
05.07.2010, 13:44 | #6 |
Administrator
|
Цитата:
В режиме Главное меню тоже самое. Ставлю доступ View на форму Клиенты (Customers). Появилось поддерево. В нем появилась папка Функции (Functions). В ней есть пункты меню такие как "Изменение открытых операций" (пункт меню CustOpenTransReverse). Все они у меня запрещенные "кирпичом". Какие я действия пропустил в своем тестовом сценарии?
__________________
Возможно сделать все. Вопрос времени |
|
06.07.2010, 08:42 | #7 |
Участник
|
Хмм, да вроде все так же, возможно действительно имеет место быть какая то начальная конфигурация, которая дает такой косяк...
На будущее я нашел для себя решение, может кому пригодится: создал группу, ручками почистил все доступы которые нашел и экспортнул ее в файл. При создании любой новой группу в дальнейшем буду импортировать в нее этот шаблон, что бы убить все доступы. К сожалению для уже существующих групп это уже не подходит. |
|
06.07.2010, 08:54 | #8 |
Administrator
|
Цитата:
1. \System Documentation\Tables\AccessRightsList 2. \Data Dictionary\Tables\SysSecurityFormTable Убедитесь, что в этих таблицах отсутствуют записи для несуществующих групп пользователей. При удалении групп пользователей настройки прав не удаляются. Как следствие - создание ранее удаленной группы автоматически ее "наделяет" правами
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Berty Wooster (1). |
06.07.2010, 09:52 | #9 |
Участник
|
Наделяет правами - но они же должны отображаться в дереве?
Насчет экспорта / импорта пустого шаблона - а просто нажать кнопку "Полное отключение доступа" в вашем случае не помогает?
__________________
Ivanhoe as is.. |
|
Теги |
ax4.0, rls, как правильно, права доступа, права доступа на уровне записей (rls) |
|
|