Hogyan kell helyesen konfigurálni lapozott engedély oracle csúcsa

Amikor a fejlődő alkalmazások az APEX gyakran kell különböző szintű hozzáférést a felhasználók számára - például, ha a használt alkalmazás, a felhasználók a különböző részlegek, vagy ha azt szeretné, hogy jelentéseket hozhat létre, hogy a témához csak rendszergazdák.

Hitelesítés túlmutat ezt a cikket, de azt hiszem, ez már jó dolog.

Vegyük például egy alkalmazás, amelyben van két jelentést - Admin Report és a Felhasználó jelentése és polzovateli- ADMIN, USER1 és USER2.

Meg kell győződni arról, hogy ADMIN látható az összes oldalt, de nem látni user'y Admin Report.

1. meghatározása példakép

A kezdéshez meg kell dönteni, mint egy példakép fog kinézni: kis alkalmazásokat érdemes meghatározni a rendelkezésre álló oldalak közvetlenül minden felhasználó számára, de ha sok oldalt vagy a felhasználók az alkalmazás, mert sokkal kényelmesebb, hogy vezessenek be a szerepét, és két köteg „felhasználó -> szerep” és „szerepét -> oldal”, amelyet az egyes felhasználói szerepkörök és minden szerepet, konfigurálja a hozzáférést bizonyos oldalak.

Mi megy a második út, ahogy azt várjuk, hogy annak következményeként, hogy a felhasználók száma nő.

Bemutatjuk a két szerep rendszergazdák és felhasználók, valamint hozzon létre egy táblázatot USER_ROLE

és asztali ROLE_PAGE

Mint látható, a szerepe ismeretlen felhasználó hozzáférést 2. oldal.

Az oldalszámok megtalálható az Application Builder APEX APEX vagy képviseletet az adatbázisban:

select *
származó APEX_APPLICATION_PAGES
ahol alkalmazásazonosító = <номер вашего приложения>

Most levelet funkciója, amely a bemeneti felhasználói nevet és a jelentkezési oldalon visszatér egy logikai érték, hogy van-e a hozzáférést egy adott felhasználó egy adott oldalt.

Most meg kell választani, hogy hozzon létre egy rendszert az alkalmazás számára. Ehhez menj a közös alkatrészek -> User Interface attribútumok (User Interface Unit). A Biztonság részben -> engedély dönt, hogy hozzon létre egy rendszert, és kattintson az „Apply Changes”.

Most, amikor megpróbál USER1 és USER2 lásd Admin Report látni fogják az alábbiakat:

4. Állítsa a navigációs menü (Navigációs menü)

Akkor hagyja, és egy ilyen megvalósítás, de jobb, hogy elrejtse a felhasználó az oldalak menü, amely még mindig nem tud menni.

Annak érdekében, hogy a felhasználók, hogy a navigációs menü, attól függően, hogy a hozzáférési szintjét meg kell mozgatni a statikus navigációs menü alapértelmezés szerint dinamikus.

Az ötlet az, hogy egy statikus menüpontok (általában az úgynevezett "Desktop Navigációs menü), hogy mely oldalakat kapcsolódik annak tárgyakat, és használja a létrehozott példakép, azt mutatják, a felhasználó csak a bejegyzések, amelyek kapcsolatban állnak az oldalak elérhető vele.

Az általunk használt APEX képviselet (részletek) APEX_APPLICATION_LIST_ENTRIES, amelyben van olyan információ, amely oldalakat csatolnak milyen tárgyakat a navigációt. Ha nem támogatja, külön asztalnál egy másik kommunikációs szerep -> navigációs tárgy, prezentációt létrehozni, amely összeköti a szerepe és Listabejegyzések alapján kommunikációs szerepet -> Oldal:

SET DEFINE OFF;
CREATE OR CSERE EDITIONABLE VIEW ROLE_LIST_ENTRY ( "USER_ROLE". "LIST_ENTRY_ID") AS
válasszuk külön p.user_role, l.list_entry_id
a apex_application_list_entries l
csatlakozzon role_page ap l.entry_target like'f? p = APP_ID.: „|| p.page_id || ':% SESSION%' vagy entry_target nulla
ahol l.list_name = „Asztal navigációs menü”
és l.application_id = <номер вашего приложения> ;

Ha mégis válasszon a létrehozott bemutatót, akkor láthatjuk, hogy a szerepe a ADMIN álló 3 listabejegyzést és USER - csak 2:

Itt az ideje, hogy egy dinamikus navigációs menü. Ehhez Shared Components -> Navigációs menü hozzon létre egy új menü: válasszon „A semmiből”, és dinamikus, amely megjelent az SQL lekérdezés ablak be az alábbiak szerint:

válasszuk szinten. al.entry_text címkét. al.entry_target

a apex_application_list_entries al

csatlakozzon ROLE_LIST_ENTRY rl szóló al.list_entry_id = rl.list_entry_id

csatlakozzon USER_ROLE ur ur.user_role = rl.user_role és a felső (ur.user_name) = felső (: APP_USER)

al.LIST_NAME = „Asztal navigációs menü”

és al.application_id = <номер вашего приложения>

kezdeni al.list_entry_parent_id null

csatlakoztassa előzetes al.list_entry_id = al.list_entry_parent_id

érdekében testvérek által al.display_sequence

Most ki kell választania a dinamikus navigáció Étlapunkon felület. Ehhez ismét megy a Shared Components -> User Interface attribútumokat. A felhasználói felület, kattintson a Szerkesztés ikonra az aktuális felület, és bejutni a felhasználói felület Részletek. Navigációs menü lapon válassza ki a menüt teremtett minket, és kattintson az „Apply Changes”

A USER1 és USER2 amikor belép az alkalmazás nem lesz látható a navigációs menü Audit Jelentés:

További cikkek a témában APEX:

Belép social network