Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Изменение данных отображаемых в IR в зависимости от текущего пользователя / 18 сообщений из 18, страница 1 из 1
23.01.2015, 12:22
    #38861586
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
Доброго времени суток!
Столкнулся с задачей смены данных в IR в зависимости от того, какой пользователь залогинился.
Есть IR, построенный на вьюхе, вида:

ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ | СТРОКА

Возможно ли при загрузке страницы автоматически делать отбор вида:
WHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
...
Рейтинг: 0 / 0
23.01.2015, 12:28
    #38861590
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKis,
проще и логичнее прошить имя в where всех вьюх сразу.
Чем мусорить во всех запросах на клиенте.
...
Рейтинг: 0 / 0
23.01.2015, 12:30
    #38861594
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
...
Рейтинг: 0 / 0
23.01.2015, 12:40
    #38861601
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
Petro123DKis,
проще и логичнее прошить имя в where всех вьюх сразу.
Чем мусорить во всех запросах на клиенте.

У меня есть две роли: администраторы и операторы.
Пользователи, входящий в первую группу, должен видеть все записи.
Пользователи, входящие во вторую группу, должны видеть только те записи, авторами которых являются они.
Поэтому ваш вариант не подходит.
...
Рейтинг: 0 / 0
23.01.2015, 12:42
    #38861602
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKisПользователи, входящий в первую группу, должен видеть все записи.
Пользователи, входящие во вторую группу, должны видеть только те записи, авторами которых являются они.
напишите это в виде WHERE
авторПоэтому ваш вариант не подходит.
с чего вдруг?
...
Рейтинг: 0 / 0
23.01.2015, 12:47
    #38861613
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
Petro123,

Я немного не понимаю, каким образом это можно реализовать жестко вшив WHERE.
...
Рейтинг: 0 / 0
23.01.2015, 12:56
    #38861627
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKis,

Ты же сам в первом топике написал решение, пока не понимаю, что еще нужно?
...
Рейтинг: 0 / 0
23.01.2015, 12:57
    #38861629
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKis,
DKisWHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
во вьюхе
Код: sql
1.
where t.Login = :APP_USER


как-то так - псевдо-код
Приведите DDL.
...
Рейтинг: 0 / 0
23.01.2015, 12:58
    #38861632
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
Petro123DKis,
DKisWHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
во вьюхе
Код: sql
1.
where t.Login = :APP_USER


как-то так - псевдо-код
Приведите DDL.

Ну во воьюху, я бы е пихал Апексовые бинды.
При обращении к ней не из апекса она не будет работать.
А вот в приложении, самы раз такое условие.
...
Рейтинг: 0 / 0
23.01.2015, 12:58
    #38861633
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKis,
у каждого юзверя своя сессия и свой логин-переменная во вьюхе
...
Рейтинг: 0 / 0
23.01.2015, 12:59
    #38861634
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
blkangelПри обращении к ней не из апекса она не будет работать
почему?
...
Рейтинг: 0 / 0
23.01.2015, 13:02
    #38861638
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
blkangelDKis,

Ты же сам в первом топике написал решение, пока не понимаю, что еще нужно?

Пользователи из первой группы не создают записи, но должны их просматривать.
Записи создаются только пользователями из второй группы.
Т.е. имеем IR вида:
ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ | СТРОКА
user1 | stroka1
user2 | stroka2
user1 | stroka3
user1 | stroka4
user3 | stroka5


Жестко задав на вьюхе условие
WHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
пользователь admin из первой группы не увидит записей.
...
Рейтинг: 0 / 0
23.01.2015, 13:05
    #38861646
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKisblkangelDKis,

Ты же сам в первом топике написал решение, пока не понимаю, что еще нужно?

Пользователи из первой группы не создают записи, но должны их просматривать.
Записи создаются только пользователями из второй группы.
Т.е. имеем IR вида:
ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ | СТРОКА
user1 | stroka1
user2 | stroka2
user1 | stroka3
user1 | stroka4
user3 | stroka5


Жестко задав на вьюхе условие
WHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
пользователь admin из первой группы не увидит записей.

Это вопрос написания запроса :) А не апекса.
...
Рейтинг: 0 / 0
23.01.2015, 13:10
    #38861656
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
Petro123blkangelПри обращении к ней не из апекса она не будет работать
почему?
Я не пробовал создавать вьюхи с биндами, НО какой от нее толк.
Зачем БД, нужен объект, который абсолютно бесполезен без приложения. Поэтому абсолютно логичным считаю, что объект в базе данных должен быть автономным и независимым от внешних факторов. А вот в приложении этому условию, самое место.
...
Рейтинг: 0 / 0
23.01.2015, 13:19
    #38861666
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
blkangel,
ну, это просто - стандарт (RLS)
Ему тыща лет, и его используют в Оракле.
Я сам не люблю ограничивать по строкам. Лучше по колонкам.
Может потому, что не было параноиков-заказчиков).
...
Рейтинг: 0 / 0
23.01.2015, 14:30
    #38861783
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
blkangelDKisпропущено...


Пользователи из первой группы не создают записи, но должны их просматривать.
Записи создаются только пользователями из второй группы.
Т.е. имеем IR вида:
ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ | СТРОКА
user1 | stroka1
user2 | stroka2
user1 | stroka3
user1 | stroka4
user3 | stroka5


Жестко задав на вьюхе условие
WHERE ИМЯ ПОЛЬЗОВАТЕЛЯ СОЗДАВШЕГО СТРОКУ=:APP_USER
пользователь admin из первой группы не увидит записей.

Это вопрос написания запроса :) А не апекса.

А не могли бы подсказать мне, как должен выглядеть такой запрос?)
...
Рейтинг: 0 / 0
23.01.2015, 14:54
    #38861816
blkangel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
DKisblkangelпропущено...


Это вопрос написания запроса :) А не апекса.

А не могли бы подсказать мне, как должен выглядеть такой запрос?)

Я твоей структуры не знаю, но как то так.
Код: plsql
1.
2.
3.
select * from yuor_view
where create_task_user=v('APP_USER') 
or exists(select 1 from users where users_login=v('APP_USER')  and gpoup='SUPER_GROUP');
...
Рейтинг: 0 / 0
23.01.2015, 16:15
    #38861897
DKis
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Изменение данных отображаемых в IR в зависимости от текущего пользователя
blkangelDKisпропущено...


А не могли бы подсказать мне, как должен выглядеть такой запрос?)

Я твоей структуры не знаю, но как то так.
Код: plsql
1.
2.
3.
select * from yuor_view
where create_task_user=v('APP_USER') 
or exists(select 1 from users where users_login=v('APP_USER')  and gpoup='SUPER_GROUP');



Спасибо большое за решение. Сам не догадался.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Изменение данных отображаемых в IR в зависимости от текущего пользователя / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]