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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 13.10.2004, 20:19   #1  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
? Разграничение прав доступа на складские операции
Добрый день!
Подскажите пожалуйста как можно ограничить права доступа кладовщиков в переносах только на свой склад.
Ситуация такая: кладовщик должен иметь возможность создавать и разносить переносы со своего склада на другие, и наоборот, а проводить Регистрацию/Комплектацию только по своему складу. (надо чтобы без ведома кладовщика никто не мог оформить приход или расход товара по его складу)
Старый 13.10.2004, 23:22   #2  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
1 уровень: rls
2 уровень: программировать проверки. validateWrite для этого и создан
других вариантов, к сожалению, нет.
Старый 14.10.2004, 14:20   #3  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
Спасибо за ответ!
1-й метод не подходит, т.к. rls во первых не запрещает писать, а во вторых видеть как раз надо все.
есть правда еще вариан закрывать везде на формах соответствующие кнопки программно - но это вообще непонятный объем работы.

Спасибо, похоже вариант с перекрытием validateWrite в моем случае самый подходящий
Старый 14.10.2004, 14:23   #4  
Pan is offline
Pan
Участник
 
4 / 10 (1) +
Регистрация: 09.12.2003
А ограничить доступ на уровне записей не пробывали?
__________________
Юля
Старый 14.10.2004, 14:32   #5  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
Спасибо за совет, но:
ограничить доступ на уровне записей не подходит по нескольким причинам:
- ограничение доступа на уровне записей не запрещает писать вообще,
- видеть надо все, здесь ограничения не нужны.
Старый 14.10.2004, 15:14   #6  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Re: Спасибо за ответ!
Цитата:
Изначально опубликовано mav
1-й метод не подходит...
Это не "1й метод", это "1й уровень".
Для "быстрого" решения достаточно применить 1й уровень.
Для "полного" надо бы применять оба уровня.
В зависимости от того, сколько уровней реализуется, будут оцениваться затраты времени, сил и денег.
Старый 14.10.2004, 15:18   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Hamster
в классе InventUpd_Registered в методе updateNow или updateRegister* делать проверку на кладовщика / склад.
Опять же. Существует несколько уровней решения.
Я бы начал с validateWrite на таблице InventTrans.
Все равно все складские проводки так или иначе попадают туда.
Затраты программистов будут меньше.

Но пользователи получат сообщение об ошибке очень поздно.
Им будет не очень удобно.
Но зато решение будет быстрым.

После того, как будет запущено и отлажено быстрое решение (если останутся силы, время и деньги) можно будет улучшать эргономику, создавая validateWrite на других таблицах/классах.
Старый 14.10.2004, 16:18   #8  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
а для того, чтобы этот самый validateWrite проверялся, его вызов надо еще повставлять куда-то?
Старый 14.10.2004, 17:00   #9  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Автоматом вызывается не таблице, если не был принудительно перекрыт на форме (дурной тон), или не был вызван doUpdate (совсем уж отвратительный тон).

Я еще перекрывал lookup (что бы не видели лишнего) и validate на контроле (что бы вводили только значения из списка, предоставляемого lookup). Но это позволит решить трабл только на форма. Если же подправить VW на таблице - тогда глобально.

С Уважением,
Георгий
Старый 14.10.2004, 17:11   #10  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
А лучше всего и lookup (для удобства юзера) и validateWrite (на всякий случай).
__________________
Isn't it nice when things just work?
Старый 14.10.2004, 17:15   #11  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
странно.
перекрыл этот validateWrite на таблице InventTrans.

тыкаюсь в разных формах проводить регистрации/комплектациии.
validateWrite не срабатывает
(функционал стандартный, никто ничего не менял еще)
в чем может быть причина?
Старый 14.10.2004, 17:20   #12  
macklakov is offline
macklakov
NavAx
Аватар для macklakov
 
2,129 / 916 (35) +++++++
Регистрация: 03.04.2002
продемонстрируйте код, пожалуйста
__________________
Isn't it nice when things just work?
Старый 14.10.2004, 17:32   #13  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
1) Перекрывайте на validateWrite ТАБЛИЦЕ!
2) Хм... а, случаем, та нигде doInsert/Update нету?
Что-то мне такое попадалось в коде..

С Уважением,
Георгий
Старый 14.10.2004, 17:41   #14  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано macklakov
А лучше всего и lookup (для удобства юзера) и validateWrite (на всякий случай).
а вот lookup лучше не программировать (в данном случае)
lookup лучше как раз оставить RLSу.
Старый 14.10.2004, 17:43   #15  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
насчет doinsert/doUpdate.
Такие места сейчас в коде есть. Но сейчас этим методы не влияют на работу юзера. Эти методы вызываются глубоко внутри и служат целям оптимизации.

Если же вы сами используете doinsert/doUpdate... Ну... вы себе сильно осложняете жизнь. И не только в деле ограничения прав доступа. Если вы сами используете doinsert/doUpdate, то должны понимать, что все заботы о целостности базы ложатся на вас.
Старый 14.10.2004, 17:43   #16  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Я имел в виду, если не использовать RLS.
У себя я сделал именно так, что позволило отказаться от RLS. Пока - все работает.
К тому же, RLS не работает на запись, так что учтите! Все равно перекрывать vw на таблице придеться. Не то пользователь впишет руками - и проведет-таки на ненужный склад.

С Уважением,
Георгий.
Старый 14.10.2004, 17:47   #17  
Vadik is offline
Vadik
Модератор
Аватар для Vadik
Лучший по профессии 2017
Лучший по профессии 2015
 
3,631 / 1849 (69) ++++++++
Регистрация: 18.11.2002
Адрес: гражданин Москвы
2All: да побойтесь бога - validateWrite() на таблице не вызывается, если INSERT/UPDATE делается из кода. А много вы знаете форм, в которых InventTrans руками редактируется?
Старый 14.10.2004, 17:47   #18  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Изначально опубликовано mazzy
Если вы сами используете doinsert/doUpdate, то должны понимать, что все заботы о целостности базы ложатся на вас.
Да-да. И, вообще, старайтесь избегать подобного кода. А, натолкнувшись, приглядеться повнимательней. Использование без крайней необходимости - очень дурной тон.

С Уважением,
Георгий.
Старый 14.10.2004, 17:51   #19  
George Nordic is offline
George Nordic
Модератор
Аватар для George Nordic
Злыдни
 
4,479 / 1250 (50) ++++++++
Регистрация: 17.12.2003
Адрес: Moscow
Записей в блоге: 9
Цитата:
Изначально опубликовано Vadik
validateWrite() на таблице не вызывается, если INSERT/UPDATE делается из кода. А много вы знаете форм, в которых InventTrans руками редактируется?
Да, верное замечание. Тогда модифицируйте insert / update - вставляйте проверку. Хотя, повторяю doInsert/Update все равно пройдет мимо.

С Уважением,
Георгий.
Старый 14.10.2004, 17:53   #20  
mav is offline
mav
Участник
 
36 / 11 (1) +
Регистрация: 23.06.2004
Адрес: kiev
Thumbs up
вот теперь понятно, всем спасибо!
Теги
права доступа

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Разграничение прав доступа к записям таблицы mdconsult DAX: Программирование 11 26.12.2008 13:59
Расширение возможностей стандартных прав доступа Stainless DAX: Программирование 2 19.06.2008 10:36
Экспорт/Импорт прав доступа Anais DAX: Администрирование 28 11.11.2006 21:44
при построении перекрёстных ссылок выдаётся сообщение об ошибках mmmax DAX: Программирование 10 21.01.2005 12:42
Проблемы настройки прав доступа пользователям axot DAX: Администрирование 25 16.05.2002 10:47

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 19:17.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.