24.03.2006, 11:57 | #1 |
Участник
|
Права доступа к таблице DataArea
Люди, подскажите где в настройке прав доступа найти таблицу DataArea?
|
|
24.03.2006, 12:23 | #2 |
Участник
|
Нашли: Администрирование\Открытие доступа к домену
|
|
29.04.2009, 07:39 | #3 |
MCTS
|
Создал Домен, в который входят 2 компании. Какие минимальные права необходимы, чтобы при выборе списка компаний можно было выбрать только эти компании? Сделал следующим образом, создал новую группу пользователей. Вошел в настройку прав, выбрал эту группу, выбрал вышеуказанный домен, переключился на настройку прав, полностью отключил доступ и дал права на просмотр только на Выбор компании. Когда вхожу под пользователем данной группы в списке компаний ничего нет, хотя вроде как должен видеть 2 компании. При включении доступа Администрирование\Открытие доступа к домену начинают отображаться все компании.
|
|
29.04.2009, 09:03 | #4 |
Аманд
|
http://www.amand.ru/modules/wordpress/archives/47
Статья по AX 3.0, но идеология не изменилась. Если будет время - поправлю картинки для ax 4.0 |
|
29.04.2009, 09:28 | #5 |
MCTS
|
Значит раз таблица dataArea не относится ни к какой компании, то определить доступ к ней с помощью доменов не получится. Тогда подскажите хотя бы, как сделать так, чтобы пользователь видел все компании, но при этом не включать ключ доступа Администрирование\Открытие доступа к домену. Вроде все перепробовал, но либо светится одна DAT (при настройке в домене Admin), либо вообще ничего (при настройке прав в другом домене). Почему не работает ключ доступа Выбор компании ?
|
|
29.04.2009, 10:27 | #6 |
Administrator
|
Потому что "гладиолус" Сильно не ковырялся лично - но коллеги после долгих попыток добиться этого просто модифицировали форму выбора компаний, скрывая в ней компании, которые не разрешено показывать
__________________
Возможно сделать все. Вопрос времени |
|
|
За это сообщение автора поблагодарили: Logger (2), Eldar9x (1). |
29.04.2009, 10:45 | #7 |
MCTS
|
Ладно, раз не работает, то хрен с ним. Тогда как добиться отображения всех компаний в выборе? Включать Администрирование\Открытие доступа к домену? Или есть другой какой-то способ/ключ.
|
|
29.04.2009, 10:53 | #8 |
Модератор
|
Цитата:
Какие минимальные права необходимы, чтобы при выборе списка компаний можно было выбрать только эти компании?
На SysDataAreaSelect повешен SecurityKey (какой - не так важно, лишь бы не пустой, чтобы можно было доступом рулить, в нашем случае - AdminMisc) Создана группа для переключения между компаниями, у нее единственная запись для этого домена в AccessRightsList - SysDataAreaSelect) Минималистичнее вроде уже некуда
__________________
-ТСЯ или -ТЬСЯ ? |
|
|
За это сообщение автора поблагодарили: Logger (2). |
29.04.2009, 11:20 | #9 |
Administrator
|
Цитата:
Сообщение от Vadik
Как сделано у нас (DAX 4.0):
На SysDataAreaSelect повешен SecurityKey (какой - не так важно, лишь бы не пустой, чтобы можно было доступом рулить, в нашем случае - AdminMisc) Создана группа для переключения между компаниями, у нее единственная запись для этого домена в AccessRightsList - SysDataAreaSelect) Минималистичнее вроде уже некуда
__________________
Возможно сделать все. Вопрос времени |
|
29.04.2009, 11:51 | #10 |
Участник
|
Цитата:
Если не включено открытие доступа к домену, то для того чтобы компания была в списке доступных для пользователя, для него должно быть хоть что-нибудь открыто в этой компании. Если же для него в компании все закрыто - нет никакого доступа - то и в списке она не появляется. Правда есть неприятное исключение из этого правила - оно не действует на компании с русскими буквами в коде - почему непонятно. Т.е. компании с русскими буквами в коде, могут по непонятным причинам скрываться при формировании списка для выбора. Я так и не смог с этим разобраться - почему так получается. Ставил логирование запросов к БД - запрос уходит корректный без дополнительных фильтров. Функция \Classes\xDataArea\checkAccessible возвращает что компания доступна пользователю, а в списке на форме SysDataAreaSelect она скрывается - почему непонятно. Для себя я решил, что если компании называются латинскими буквами или цифрами то описанное правило всегда работает. Так что лучше не использовать русские буквы в названии. P.S. Я бы на самом деле в кодах компании использовал только цифры, потому что помимо указанного глюка еще есть куча мест в коде при формировании прямых запросов к БД, которые могут глючить для базы данных Оракл, так как не учитывают при формировании запроса приведение к нужному регистру полей при наложении условий фильтрации. Для цифровых кодов этот глюк не будет сказываться. Правда для этой темы это уже оффтопик Последний раз редактировалось Logger; 29.04.2009 в 12:21. |
|
|
За это сообщение автора поблагодарили: sukhanchik (2), aidsua (1). |
29.04.2009, 11:52 | #11 |
Участник
|
|
|
|
За это сообщение автора поблагодарили: Eldar9x (1). |
29.04.2009, 12:03 | #12 |
MCTS
|
Цитата:
Это Вы рулите так в принципе доступом к выбору всех компаний. Речь-то шла о том (как я понял), чтобы из 5 компаний (к примеру) пользователь имел право переходить только к трем.
|
|
29.04.2009, 12:13 | #13 |
MCTS
|
Цитата:
Если не включено открытие доступа к домену, то для того чтобы компания была в списке доступных для пользователя, для него должно быть хоть что-нибудь открыто в этой компании. Если же для него в компании все закрыто - нет никакого доступа - то и в списке она не появляется.
Правда есть неприятное исключение из этого правила - оно не действует на компании с русскими буквами в названии - почему непонятно. Т.е. компании с русскими буквами в коде, могут по непонятным причинам скрываться при формировании списка для выбора. |
|
29.04.2009, 12:37 | #14 |
MCTS
|
...кто-нибудь переименовывал идентификатор компании в базе внешними средствами?
|
|
29.04.2009, 12:49 | #15 |
Участник
|
А переименование первичного ключа не пробовали использовать?
|
|
29.04.2009, 12:57 | #16 |
MCTS
|
|
|
29.04.2009, 13:12 | #17 |
Участник
|
А оно входит
X++: static void Job487(Args _args) { ; // info(fieldid2Name(TableNum(salesTable), New DictTable(tableNum(salesTable)).primaryKeyField())); info(fieldid2Name(TableNum(DataArea), New DictTable(tableNum(DataArea)).primaryKeyField())); } |
|
29.04.2009, 14:07 | #18 |
MCTS
|
Попробовал, renamePrimaryKey не работает для DataAreaId. Например, в складах, поле так и не изменилось.
|
|
29.04.2009, 14:40 | #19 |
Administrator
|
В 4-ке есть такая фишка как дублирование компаний. Это конечно не самый лучший вариант - но по кр мере штатный (старую компанию потом можно будет и удалить)
__________________
Возможно сделать все. Вопрос времени |
|
20.05.2009, 00:49 | #20 |
Модератор
|
Цитата:
Цитата:
Vadik, у меня так не получилось
Настраивалась/тестировалась эта схема "с колес" на спецпользователе, у которого в этот момент никаких прав кроме SYSDATAAREASELECT не было (ИЧСХ схема работала, т.е. список компаний фильтровался). В этом виде и ушло в продакшен (т.е. с момента постановки задачи в виде "а разве у нас этого еще нет?" до реализации менее часа), где и проработало неделю, после чего всплыла тема на форуме. Начал пересматривать настройку - НЕ РАБОТАЕТ! Как только у пользователя появляются в компании/домене какие-то права - компания автоматически появляется в списке SYSDATAAREASELECT. Специфика такова, что все права настраиваются в домене Admin (обеими руками за идеологичиски выдержанные цветные картинки с доменами, но реальность такова - структура секьюрных групп одна и та же во всех компаниях, число групп переваливает за сотню, компаний много, как обычных, так и виртуальных, и для поддержки этого монстра с использованием доменов потребовалось бы несколько выделенных security officer-ов) В итоге а) быстро была допилена SYSDATAAREASELECT на предмет наличия доступа в компанию, если надо - могу выложить б) были созданы фиктивные домены, единственная запись в ACCESSRIGHTSLIST для них - SYSDATAAREASELECT
__________________
-ТСЯ или -ТЬСЯ ? |
|