|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
Уважаемые коллеги, прошу Вас поделиться опытом, как грамотно организовать доступ. Имею приложение в APEX (боллее 40 страниц), есть 3 группы пользователей, нужно часть страниц показывать всем, часть одной, и т.д. Делаю так и постепенно понимаю что это не то: 1. Завожу пользователей и присваиваю им группы; 2. В объектах страниц (в разделе Conditional Display) проверяю группу пользователя get_group_user.... и как то это все коряво получатся, подскажите плиз как разграничить доступ на уровне страниц, на уровне элементов вроде понятно.. + нужно еще и закладки скрывать :( C Уважением, Алексей. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2008, 14:57 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
На сколько я понимаю, надо делать ч/з Authorization Scheme ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2008, 15:10 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
DIGITALPROНа сколько я понимаю, надо делать ч/з Authorization Scheme Угу, спасибо, разбираюсь... но там тоже нужно указывать условия отображения. Нет возможности указания пользователей имеющих доступ, груп и т.д. Может есть уже варианты обкатанные на практике. 1 страница - видят все 2 страница - видит группа 1 3 страница - видят группы 1 и 2 ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2008, 15:25 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
1.Функция должна отработать один раз и вернуть, допустим, список страниц, на которые есть доступ у группы 2. схема авторизации должна проверять есть ли номер текущей страницы в списке разрешенных для этой группы что-то такое ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2008, 15:36 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
AlexProOra DIGITALPROНа сколько я понимаю, надо делать ч/з Authorization Scheme ...1 страница - видят все 2 страница - видит группа 1 3 страница - видят группы 1 и 2 Для каждого вариант, указанного выше создаешь схему авторизации. И в зависимости от того как нужно, навешиваешь их на Tabs у конкретной страницы(Shared Components>Tabs),в разделе Authorization. То есть нужные Закладки будут видны тольте тем, кто входит в навешенную схему авторизации. У меня сделано так, но нет цели во чтобы то не стало ограничить доступ. Сделано, чтобы куча закладок не бросалась в глаза тем людям, которые ими не пользуются. Возможно надо еще и на саму страницу весить схему. ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2008, 15:43 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
AlexProOraУважаемые коллеги, прошу Вас поделиться опытом, как грамотно организовать доступ. Имею приложение в APEX (боллее 40 страниц), есть 3 группы пользователей, нужно часть страниц показывать всем, часть одной, и т.д. Делаю так и постепенно понимаю что это не то: 1. Завожу пользователей и присваиваю им группы; 2. В объектах страниц (в разделе Conditional Display) проверяю группу пользователя get_group_user.... и как то это все коряво получатся, подскажите плиз как разграничить доступ на уровне страниц, на уровне элементов вроде понятно.. + нужно еще и закладки скрывать :( C Уважением, Алексей. Базовое описание для создание управляемой схемой авторизаций по ссылке: http://djmein.blogspot.com/2007/07/custom-authentication-authorisation.html Если нужно расширить функционал и добавить просмотр по страницам в зависимости от авторизации то необходимо создать таблицу пользователей с полем для уровня авторизаций. CREATE TABLE APP_USERS ( USERNAME VARCHAR2(10), PASSWORD VARCHAR2(255), AUTH Varchar2(1) ) / gde auth naprimer budet 3 - administrator aplikacii 2 - user s vozmozhnostjami redaktirovanija 1 - user toljko prosmatrivajushij Далее (описание продолжает темы ссылки выше): В зависимости от того как организован у Вас доступ к страницам (TAB либо List либо другое). Для каждого элемента TAB ili LIST в Condition -> Condition Type -> Укажите Exists (SQL query at least returns one row) -> Expression 1 -> select '1' from apex_users where upper(username)=upper(:APP_USER) and auth='1' - Из этого описания следует, что к указаному элементу пусть то будет страница, регион страницы или другой элемент доступ будут иметь только пользователи с авторизацией '1' - (user toljko prosmatrivajushij). То же самое следует повторить и для остальных страниц, TAB и LIST. Расширить схему авторизаций можно меняя селект: select '1' from apex_users where upper(username)=upper(:APP_USER) and auth<'3' - элемент будет доступен всем пользователям 1-2 групп и 3-й группе недоступен и т.д. Затем на каждой странице нужно указать в полях элементов такие же авторизации. Например скрыть кнопки редактирования в форме для 1-й группы но для 2-3-й открытые и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.10.2008, 13:06 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
V_i_t AlexProOraУважаемые коллеги, прошу Вас поделиться опытом, как грамотно организовать доступ. Имею приложение в APEX (боллее 40 страниц), есть 3 группы пользователей, нужно часть страниц показывать всем, часть одной, и т.д. Делаю так и постепенно понимаю что это не то: 1. Завожу пользователей и присваиваю им группы; 2. В объектах страниц (в разделе Conditional Display) проверяю группу пользователя get_group_user.... и как то это все коряво получатся, подскажите плиз как разграничить доступ на уровне страниц, на уровне элементов вроде понятно.. + нужно еще и закладки скрывать :( C Уважением, Алексей. Базовое описание для создание управляемой схемой авторизаций по ссылке: http://djmein.blogspot.com/2007/07/custom-authentication-authorisation.html Если нужно расширить функционал и добавить просмотр по страницам в зависимости от авторизации то необходимо создать таблицу пользователей с полем для уровня авторизаций. CREATE TABLE APP_USERS ( USERNAME VARCHAR2(10), PASSWORD VARCHAR2(255), AUTH Varchar2(1) ) / gde auth naprimer budet 3 - administrator aplikacii 2 - user s vozmozhnostjami redaktirovanija 1 - user toljko prosmatrivajushij Далее (описание продолжает темы ссылки выше): В зависимости от того как организован у Вас доступ к страницам (TAB либо List либо другое). Для каждого элемента TAB ili LIST в Condition -> Condition Type -> Укажите Exists (SQL query at least returns one row) -> Expression 1 -> select '1' from apex_users where upper(username)=upper(:APP_USER) and auth='1' - Из этого описания следует, что к указаному элементу пусть то будет страница, регион страницы или другой элемент доступ будут иметь только пользователи с авторизацией '1' - (user toljko prosmatrivajushij). То же самое следует повторить и для остальных страниц, TAB и LIST. Расширить схему авторизаций можно меняя селект: select '1' from apex_users where upper(username)=upper(:APP_USER) and auth<'3' - элемент будет доступен всем пользователям 1-2 групп и 3-й группе недоступен и т.д. Затем на каждой странице нужно указать в полях элементов такие же авторизации. Например скрыть кнопки редактирования в форме для 1-й группы но для 2-3-й открытые и т.д. Забыл добавить что в оригинальном посте забыта одна настройка: Home>Application Builder>Application XXX>Shared Components>Authentication Schemes>Edit Authentication Scheme -> Page Session Management -> Session Not Valid Page -> Укажите здесь страницу авторизации в апликацию (где вводятся Username i Password) по умолчанию она 101. и там же в разделе Logout URL укажите wwv_flow_custom_auth_std.logout?p_this_flow=&APP_ID.&p_next_flow_page_sess=&APP_ID.:1. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2008, 10:33 |
|
Организация грамотного постраничного доступа к страницам
|
|||
---|---|---|---|
#18+
оператор "Exists (SQL query at least returns one row)" это очень шаткая штука для разграничения прав ... я лично написал функцию ,результат которой можно оценивать как уровень доступа на странице булеан потому что так апекс требует ) Код: plsql 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.
на апексовой странице в conditions выставляем Condition Type = "PL/SQL Expression" "Expression 1" = "user_role_auth (:P101_USERNAME,2)" или "Expression 1" = "user_role_auth (:P101_USERNAME,2,'Y')" например 1-Admin, 2-Power_User, 3-Viewer и ролей можно придумывать столько, сколько угодно главное чтобы они шли по нарастающей ... то есть 1-бог а 3-никто таким образом одни Regions которые можно смотреть покажутся ... а в другом случае наоборот я вот так решил проблему доступа. ) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.12.2011, 15:10 |
|
|
start [/forum/topic.php?fid=50&msg=37563202&tid=1876295]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
2ms |
others: | 289ms |
total: | 429ms |
0 / 0 |