|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
Добрый день, уважаемые форумчане ! В Apex новичок.Посмотрел на форуме, погуглил, почитал "Oracle.APEX.4.0.Cookbook",но решения пока найти не могу. Может смотрю не туда. Подскажите, где копать, если не трудно. 1. Oracle Database 10g Express Edition Release 10.2.0.1.0 - Product 2. APEX VERSION 4.1.0.00.32 В базе данных делаю следующее: 1. Создаю пользователя DB_USER: Код: plsql 1. 2. 3. 4. 5.
2. В схеме "DB_USER" создаю таблицу TEST: Код: plsql 1. 2. 3. 4. 5.
3. Создаю роль TEST_ROLE: create role TEST_ROLE; grant select, insert, update, delete on TEST to TEST_ROLE; 4. Создаю пользователя и даю ему эту роль: Код: plsql 1. 2. 3. 4. 5.
Далее делаю простое приложение: 1. Application Type: "Database" 2. Schema "DB_USER" 3. Authentication Scheme: "Database Account" 4. Создаю страничку типа Tabular Form на основе таблички TEST с полями ID и AUTHOR. 5. В базе данных делаю функцию Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
6. Меняю атрибуты столбца AUTHOR: Column Attributes: AUTHOR -> Tabular Form Attributes Default Type = "PL/SQL Expression or Function" Default = "app_user_name(:APP_USER)" 7. Теперь, если я на залогинился в приложение под пользоателем TEST и добавил строчку в Tabular Form, то в поле AUTHOR автоматически подставится имя пользователя, т.е. "TEST" и после нажатия кнопки "Submit" данные сохранятся в базе. Вопрос такой: У меня в базе будет много пользователей, но я хочу сделать так, чтобы пользователь на страничке мог редактировать только "свои" записи (согласно значению поля AUTHOR), а "чужие" мог только просматривать и если пользователь пытается редактировать "чужую" запись,то ему выводилось соответсвующее сообщение об ошибке. Возможно ли так сделать ? Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2012, 15:02 |
|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
Apex-beginner, 1. В tabular forms это сделать сложно, можно сделать Form on a table (из 2 страниц), где ссылку Edit вычислять c использованием decode (не в column attributes). Либо поделить на регион с редактированием и обычный регион (standart region), где выфильтровывать нужные записи. Если нужно всё-таки tabular forms смотрите apex item api. 2. TEST_ROLE в данном случае не нужна, т.к. все запросы выполняются под левым пользователем (кот. настраивали при установке), роли соотвенно не применяются. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2012, 16:59 |
|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
Большое спасибо, попробую. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2012, 17:04 |
|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
SvDevstandar d region Тьфу ты, имел ввиду classic report ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2012, 17:31 |
|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
Есть решение в триггере на таблицу TEST использовать функцию APEX_CUSTOM_AUTH.GET_USER, которая вернет пользователя APEX-а А дальше более-менее все понятно... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.01.2012, 17:32 |
|
Ограничить "доступ" на запись в Tabular Form
|
|||
---|---|---|---|
#18+
Apex-beginnerЕсть решение в триггере на таблицу TEST использовать функцию APEX_CUSTOM_AUTH.GET_USER, которая вернет пользователя APEX-а А дальше более-менее все понятно... Если нужно только сообщение об ошибке в 4.1 появилась возможность делать сложные validations на столбцы, при создании выбрать тип tabular forms, имя столбца там прописывается :COLUMN_ALIAS вместо APEX_CUSTOM_AUTH.GET_USER, можно короче, v('USER') или в триггере nvl( v('USER'), user ) ... |
|||
:
Нравится:
Не нравится:
|
|||
14.01.2012, 00:47 |
|
|
start [/forum/topic.php?fid=50&fpage=63&tid=1876263]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 133ms |
0 / 0 |