|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
Здравствуйте. При разработке большинства ИС встает задача разграничения прав доступа для двух (минимум) групп - Пользователь и Администратор. Администратора отличает от Пользователя следующее: - дополнительные кнопки/поля ввода в формах добавления/редактирования - дополнительные колонки в таблицах при просмотре данных - и т.д. Как принято решать данную задачу, может быть есть решение какое-нибудь на эту тему? Не городить же для каждой группы свою тучу форм и контролов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 11:44 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZlyЗдравствуйте. При разработке большинства ИС встает задача разграничения прав доступа для двух (минимум) групп - Пользователь и Администратор. Администратора отличает от Пользователя следующее: - дополнительные кнопки/поля ввода в формах добавления/редактирования - дополнительные колонки в таблицах при просмотре данных - и т.д. Как принято решать данную задачу, может быть есть решение какое-нибудь на эту тему? Не городить же для каждой группы свою тучу форм и контролов. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66.
... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 12:14 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
trdm, ну это понятно. В общем случае у пользователя по сравнению с администратором будет куча задисабленных контролов, что не есть хорошо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 12:33 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZly wrote: > Как принято решать данную задачу, может быть есть решение какое-нибудь > на эту тему? Не городить же для каждой группы свою тучу форм и контролов. Разработкой своей подсистемы безопасности, естественно. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 12:42 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
MasterZiv Разработкой своей подсистемы безопасности, естественно. Не очень понятно, что вы имели в виду. Интересует реализация именно в контексте UI. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 13:10 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
Перед открытием формы проверять права и контролы на которые они отсутствуют банально скрывать, вообще не понятно в чем вопрос!?! ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:22 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
В подобных задачах удобней отказаться от групп и ролей(обычно их много) и оперировать с правилами а'la "Создать Счет","Редактировать Счет","Подписать Счет".Я с этим боролся следующим способом: - Для разграничения прав доступа идеально подошел NetSqlAzMan.В нем каждому правилу можно разрешить/запретить доступ ролям и(или) пользователям.Группы определяются запросами из AD или внешней БД(отдел или должность из справочников).Каждый пользователь должен иметь уникальный ID,которым может быть учетка операционки или ID из справочника сотрудников. -После регистрации пользователя в системе динамически загружаются только те модули,которые ему разрешены.При инициализации модуля делается привязка команд к элементам управления(кнопка,пункт меню и тд).В зависимости от атрибутов комманд(PermissionName;Hide или Disable) элементы управления активируются/деактивируются/не показываются - В каждом бизнес-классе указываются права на выполнение SCRUD(CanEditObject,CanCreateObject,CanDeleteObject, etc) и на чтение/редактирование полей.При выполнении SCRUD осуществляется проверки на допустимость,если нет прав,то выводится сообщение - "У Вас нет доступа на выполнение операции "Такой-то"". - Для построения гридов отдельная фабрика - GridBuilder,которая создает только доступные пользователю поля - Для форм спецконтрол,который в зависимости от прав на чтение/редактирования поля бизнес-класса показывает/не показывает значение,разрешает/запрещает редактирование. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:27 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
Некоторые системы формируют контролы с "действиями" (или список действий как в Windows Explorer) динамически под соответствующий набор прав, разрешающих те или иные действия. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:32 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
OZKAПеред открытием формы проверять права и контролы на которые они отсутствуют банально скрывать, вообще не понятно в чем вопрос!?! А теперь представьте себе форму, в которой 5 из 10 текстбоксов скрыты. По-моему получится не очень красиво. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:40 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
авторА теперь представьте себе форму, в которой 5 из 10 текстбоксов скрыты. По-моему получится не очень красиво. Их можно также банально показывать в неактивном состоянии ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:48 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
SeVaавторА теперь представьте себе форму, в которой 5 из 10 текстбоксов скрыты. По-моему получится не очень красиво. Их можно также банально показывать в неактивном состоянии Тоже сомнительный вариант. Видимо Вам никогда не приходилось выслушивать фразы типа "А почему я вот в это окошечко не могу ничего написать?". Если уж Вы настаиваете на данном варианте, спрошу вот что. Есть ли какая-нибудь IDE, которая позволяет автоматом, скажем, делать форму чуть менье, если один из контролов невидим. Можно конечно велосипед написать, но как-то не очень хочется. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 14:54 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZlyТоже сомнительный вариант. Видимо Вам никогда не приходилось выслушивать фразы типа "А почему я вот в это окошечко не могу ничего написать?". 100% ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 15:03 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
как я делаю: у меня все кнопки, имена менюшек в своем стандарте... например: менюшке: M_PAYMENTS_ACTIVE M_..... cmp_PAYMENTS_ACTIVE_BUTTON_DELETE cmp_PAYMENTS_ACTIVE_BUTTON_INSERT .... и т.д. создаю таблицу соответствие роли и имена компонентов к тем нету доступа а далще в коде: при входе делается селект все записи где груп_ид=груп_ид пользователя, далще уже имя формы, findscomponent as klass komponenta visible = false ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 16:00 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
авторТоже сомнительный вариант. Видимо Вам никогда не приходилось выслушивать фразы типа "А почему я вот в это окошечко не могу ничего написать?". Если уж Вы настаиваете на данном варианте, спрошу вот что. Есть ли какая-нибудь IDE, которая позволяет автоматом, скажем, делать форму чуть менье, если один из контролов невидим. Можно конечно велосипед написать, но как-то не очень хочется. Велосипед готов.Перед изменением свойства бизнес-объекта делается валидация,если нет прав,свойство становится невалидным,в поле редактирования появляется tooltip c нужным пояснением. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 16:37 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZly пишет: > Не очень понятно, что вы имели в виду. Интересует реализация именно в > контексте UI. Ну так а UI и не меняется. Меняются только права пользователя. Можно конечно по правам вычислять, может ли конкретный пользователь открывать конкретную форму, но мы например такой ерундой не занимаемся. Ну, откроет форму, нажмёт "сохранить" -- ему скажут: "Извини, брат, нельзя тебе". Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 16:38 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZlyOZKAПеред открытием формы проверять права и контролы на которые они отсутствуют банально скрывать, вообще не понятно в чем вопрос!?! А теперь представьте себе форму, в которой 5 из 10 текстбоксов скрыты. По-моему получится не очень красиво. Это не проблема на самом деле. Грамотный проектировщик интерфейса не допустит такого. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 16:51 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
griZZZlytrdm, ну это понятно. В общем случае у пользователя по сравнению с администратором будет куча задисабленных контролов, что не есть хорошо. Это нормально. Некоторые флаги например недоступны пользователю, но влияют на его работу и он должен знать где их искать и где смотреть, что-бы не задавать лишних вопросов. ПС. А я тебе и не предлагаю эту схему, как единственно возможную. Лучше когда ты будешь иметь представление о нескольких схемах, что-бы выбрать наиболее подходящую, так что не води носом и завязывай с критикой. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:04 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
SeVaВ подобных задачах удобней отказаться от групп и ролей(обычно их много) и оперировать с правилами а'la "Создать Счет","Редактировать Счет","Подписать Счет".Я с этим боролся следующим способом: - Для разграничения прав доступа идеально подошел NetSqlAzMan.В нем каждому правилу можно разрешить/запретить доступ ролям и(или) пользователям.Группы определяются запросами из AD или внешней БД(отдел или должность из справочников).Каждый пользователь должен иметь уникальный ID,которым может быть учетка операционки или ID из справочника сотрудников. это сойдет для немногопользовательской проги, статичного не обновляемого софта или ларька, но при разрастании системы настроек и увеличении пользователей твой админ будет клять тебя матом из-за пустой траты времени на расстановку галок. Система же ролей и профилей избавит тебя от такого головняка. Проверено на практике. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:08 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
авторэто сойдет для немногопользовательской проги, статичного не обновляемого софта или ларька, но при разрастании системы настроек и увеличении пользователей твой админ будет клять тебя матом из-за пустой траты времени на расстановку галок. Система же ролей и профилей избавит тебя от такого головняка. Проверено на практике C точностью до наоборот.В последнем проекте вместо получасового маразма,как в предущей системе,достаточно добавить пользователя в справочник сотрудников и все.При необходимости можно сделать тонкие настройки.С ролями я плавал и есть с чем сравнивать. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:17 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
И кроме того,правила весьма ладно стыкуются со всеми остальными слоями ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:18 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
SeVaавторэто сойдет для немногопользовательской проги, статичного не обновляемого софта или ларька, но при разрастании системы настроек и увеличении пользователей твой админ будет клять тебя матом из-за пустой траты времени на расстановку галок. Система же ролей и профилей избавит тебя от такого головняка. Проверено на практике C точностью до наоборот.В последнем проекте вместо получасового маразма,как в предущей системе,достаточно добавить пользователя в справочник сотрудников и все.При необходимости можно сделать тонкие настройки.С ролями я плавал и есть с чем сравнивать. Сколько у тебя юзверей и какая текучка? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:22 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
SeVaавторэто сойдет для немногопользовательской проги, статичного не обновляемого софта или ларька, но при разрастании системы настроек и увеличении пользователей твой админ будет клять тебя матом из-за пустой траты времени на расстановку галок. Система же ролей и профилей избавит тебя от такого головняка. Проверено на практике C точностью до наоборот.В последнем проекте вместо получасового маразма,как в предущей системе,достаточно добавить пользователя в справочник сотрудников и все.При необходимости можно сделать тонкие настройки.С ролями я плавал и есть с чем сравнивать. А ты понимаешь, что с добавлением объекта или пользователя у тебя матрица комбинаций растет? Допустим, что у тебя порядка 50 пользователей и около 120 регулируемых объектов у каждого из которых 5 условных разрешений. Матрица одного пользователя по разрешениям: 120 * 5 = 600 "галок" при добавлении 3 без системы роле пользователей тебе прийдется проставить 600 * 3 = 1800 галок. Классно? А если к этому добавить индивидуальные профили на каждого? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 18:30 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
авторА ты понимаешь, что с добавлением объекта или пользователя у тебя матрица комбинаций растет? Допустим, что у тебя порядка 50 пользователей и около 120 регулируемых объектов у каждого из которых 5 условных разрешений. Матрица одного пользователя по разрешениям: 120 * 5 = 600 "галок" при добавлении 3 без системы роле пользователей тебе прийдется проставить 600 * 3 = 1800 галок. Классно? А если к этому добавить индивидуальные профили на каждого? :) В последнем проекте практически на каждое разрешение нужно было бы создавать свой профиль. Посему профили по-сути и есть разрешение(правило).Называть правило профилем - нелогично и путанно.Правилу можно задать разрешения на роли и(или) пользователю.Пользователь может входить в несколько групп. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 20:01 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
У нас в банальном казалось бы справочнике продукции вообще права на правку полей раздаются чуть ли не поштучно. Полей много. Все видят все поля, но править могут только то, что положено. Например отдел поставок правит только информацию, касающуюся поставок этого товара: поставщиковское название, кодировку и т.п. Конструкторской-технологический отдел отвечает за вес, размеры и прочие подобные характеристики и т.д. Шли к этому долгим путем по граблям. Причем эта схема сделана не только для продукции, а вообще для всех справочников. В базовой форме, от которой наследуются прочие формы справочников, присто при открытии делается банальная проверка наличия прав на UPDATE полей в соответствующих таблицах. Если прав нет, то компонентам выставляется r/o и меняется цвет фона, там где это применимо. Если же логика требует именно скрывать с формы поля, и это вызывает какие-то затруднения почему-то, то стоит пересмотреть проектирование UI. Логически перегруппировать поля, разнести по закладкам или вообще структурно переделать. А касательно исходного вопроса - лично мне непонятно, зачем администраторам лезть в обычные пользовательские формы? Что администратор забыл, к примеру, в форме счета? griZZZly, приведите какой-нибудь пример поконкретнее, чтоб было понятно, в чем именно проблема. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.10.2009, 21:19 |
|
Формы и контролы в учетной системе
|
|||
---|---|---|---|
#18+
SeVaавторА ты понимаешь, что с добавлением объекта или пользователя у тебя матрица комбинаций растет? Допустим, что у тебя порядка 50 пользователей и около 120 регулируемых объектов у каждого из которых 5 условных разрешений. Матрица одного пользователя по разрешениям: 120 * 5 = 600 "галок" при добавлении 3 без системы роле пользователей тебе прийдется проставить 600 * 3 = 1800 галок. Классно? А если к этому добавить индивидуальные профили на каждого? :) В последнем проекте практически на каждое разрешение нужно было бы создавать свой профиль. Посему профили по-сути и есть разрешение(правило).Называть правило профилем - нелогично и путанно.Правилу можно задать разрешения на роли и(или) пользователю.Пользователь может входить в несколько групп. Чета ты набаламутил, фиг разберешь. У себе в системе называю профилем набор правил. Профиль можно присвоить любому пользователю динамически во время работы системы. Заготовленные профили спасают от кучи оптичиваний. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.10.2009, 00:31 |
|
|
start [/forum/topic.php?fid=33&msg=36259666&tid=1548449]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
58ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
64ms |
get tp. blocked users: |
1ms |
others: | 312ms |
total: | 476ms |
0 / 0 |