|
Silverlight отображение доступных функций на основе разграничения ролевого доступа
|
|||
---|---|---|---|
#18+
Доброго времени суток, друзья. Возможно название топика немного некорректно по отношению к моему вопросу, но, я не смог ничего умнее придумать в 3 часа ночи. Помогите, пожалуйста, разобраться как грамотно реализовать описанные ниже вопросы. Я не прошу давать готовый код - я постараюсь сам до этого додуматься. Мне нужно понять - какими средствами мне необходимо воспользоваться. У меня есть некое SL бизнес-приложение с настроенной логикой соединения с бд, аутентификацией и поддержкой ролевого доступа. Разумеется, у каждого метода (если это требуется) будет происходить проверка на наличие соответствующего уровня доступа (роли) на выполнение этого метода. Так же, будет некое число ролей и множество пользователей, что, в принципе более чем логично для бизнес-приложения. Далее: планируется большой набор функций, у каждой из которых будет свой список ролей, которые могут воспользоваться этой функцией. А вопрос теперь в следующем - как бы это реализовать? Мне нужно (желательно) что бы был один список - скажем "картинка"-"название функции" - и это пользователь видит как элемент списка а-ля кнопку (или наоборот - неважно). Это отобразить очень легко благодаря дата_темплейту. НО! Я не представляю как здесь связать метод, который должен вызываться при нажатии на соответствующий пункт списка. При этом, методы, которые заведомо недоступны той или иной роли пользователя - не должны отображаться в этом списке. Таким образом, примерную логику можно представить следующим образом: имеется список (List/Enumarable/etc) объектов некоего класса (назовём его навскидку Funcs). Пусть этот класс представляет собой запись вида: string/URI pic (ссылка на картинку), string nameFunc (название функции, которое видит пользователь), string[]/string allowRoles (список ролей, которые видят и могут пользоваться этой функцией) и... и тут я застрял ... Далее нужно как-то сослаться на метод, который будет вызывать эта функция. Но как это сделать? Да ещё и грамотно, а не а-бы как. P.S. для того чтобы слова не перемешивались я называю "методом" - программный метод как он есть, "функция" - указатель какого-то механиза работы программы, который видит пользователь. Вопрос 2: Так же я себе очень тяжело представляю как дать понять дата_темплейту (или не в нём это делать?), что тот или иной экземпляр класса Funcs из списка всех функций НЕ надо вообще отображать пользователю из-за его низкой роли. Тут даже идей нету, к сожалению. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 03:17 |
|
Silverlight отображение доступных функций на основе разграничения ролевого доступа
|
|||
---|---|---|---|
#18+
Всё :) разобрался! Спасибо умному дата_темплейту и делегатам! [РЕШЕНО] Решение (вдруг кому пригодится): 1. Вопрос отображения я решил логикой прямо в классе Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22.
2. А вопрос вывода в листбокс очень прост (я бы даже сказал, шаблонен): Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13.
Не очень лаконично написано - но у меня в данный момент времени нету на красоту, так что попрошу её не критиковать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 17:38 |
|
|
start [/forum/topic.php?fid=21&msg=37994229&tid=1441645]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
60ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
39ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 155ms |
0 / 0 |