In Today's Post / Video, I Will Try To Discuss In Detail How To Use Custom Authorization For Pages In Oracle Apex.
In Oracle Apex Applications, It Is Very Important To Use Menu Access And Page Access According To User Or Group. I've Previously Posted Videos And Detailed Descriptions And SQL Codes On How To Use Custom User Authentication And Menu Access By User Group. If You Haven't Seen My Previous Videos And Posts, You Can Check Out The Videos And Posts By Clicking The Link Below. If You Encounter Any Issues Related To Custom User Authentication, Menu Access And Custom Page Access, You Must Let Us Know In The Comments, Mail, Or Message. I Will Always Try To Be By Your Side, Inshallah.
🔗 Custom User Authorization Scheme In Oracle Apex. Part-1 Video- URL-https://youtu.be/z2uEawNglJU 🔗 Custom User Authorization Scheme In Oracle Apex. Part-1 BlogPost- URL-https://cutt.ly/iPHIfxy
🔗 Custom User Authorization Scheme In Oracle Apex. Part-2 Video- URL-https://youtu.be/Y48bJ-Gh0WI 🔗 Custom User Authorization Scheme In Oracle Apex. Part-2 BlogPost- URL-https://cutt.ly/ePHG4ID
Steps To How To Use Custom Authorization For Pages In Oracle Apex?
The Full Steps For Using Custom Page Access In The Oracle Apex Application Are Discussed Below.
CREATE TABLE "APPLICATION_PAGE_ACCESS" ( "OID" NUMBER NOT NULL ENABLE, "USER_GROUP_OID" NUMBER NOT NULL ENABLE, "PAGE_ID" NUMBER NOT NULL ENABLE, "PERMISSION" NUMBER(1,0) DEFAULT 1, "APP_ID" NUMBER, "INSERT_BY" NVARCHAR2(50), "INSERT_DATE" DATE, "UPDATE_BY" NVARCHAR2(50), "UPDATE_DATE" DATE, CONSTRAINT "APPLICATION_PAGE_ACCESS_PK" PRIMARY KEY ("OID") USING INDEX ENABLE, CONSTRAINT "APPLICATION_PAGE_ACCESS_U01" UNIQUE ("USER_GROUP_OID", "PAGE_ID") USING INDEX ENABLE ) ENABLE ROW MOVEMENT /
SELECT GROUP_TITLE, OID FROM USER_GROUP ORDER BY 1
SELECT p.PAGE_NAME, p.PAGE_ID, (SELECT GROUP_TITLE FROM USER_GROUP WHERE OID = a.USER_GROUP_OID) USER_GROUP_OID, (SELECT STATUS FROM IS_ACTIVATE WHERE OID = a.PERMISSION) STATUS, a.APP_ID FROM apex_application_pages p, APPLICATION_PAGE_ACCESS a WHERE p.PAGE_ID = a.PAGE_ID AND p.application_id = :APP_ID AND ( :P9_USER_GROUP IS NULL OR a.USER_GROUP_OID = :P9_USER_GROUP)
SELECT PAGE_NAME || ' (P-' || PAGE_ID || ')' AS d, PAGE_ID AS r FROM apex_application_pages WHERE application_id = :APP_ID;
DECLARE l_selected APEX_APPLICATION_GLOBAL.VC_ARR2; BEGIN l_selected := APEX_UTIL.STRING_TO_TABLE ( :P9_PAGE); FOR i IN 1 .. l_selected.COUNT LOOP INSERT INTO APPLICATION_PAGE_ACCESS (OID, USER_GROUP_OID, PAGE_ID, PERMISSION, APP_ID) VALUES ( (SELECT NVL (MAX (oid), 0) + 1 FROM APPLICATION_PAGE_ACCESS), :P9_GROUP, l_selected (i), 1, :APP_ID); END LOOP; END;
Now We Will Save Some Pages According To The User Group With Permission.
Our Work Is Almost Finished, At This Stage We Will Create A New Authorization Schemes From The Shared Components Of The Application To Security.
DECLARE v_count NUMBER := 0; BEGIN SELECT COUNT (*) INTO v_count FROM APPLICATION_PAGE_ACCESS WHERE USER_GROUP_OID = :P0_USER_GROUP AND PAGE_ID = :APP_PAGE_ID AND PERMISSION = 1; IF v_count = 0 THEN RETURN FALSE; END IF; RETURN TRUE; END;
Pl/SQL Function Body A Global Item P0_user_group Is Used In SQL Code. Previous Videos / Posts Have Shown How To Create A Global Item And How To View User Group Values In A Global Item. If You Haven't Seen The Set Dynamic Menu According To User Group Video / Post, You Can Watch The Video / Post By Clicking On The Link Below.
🔗 Set Dynamic Menu According To User Group, Video- URL-https://youtu.be/XR5UXjcV1Cg 🔗 Set Dynamic Menu According To User Group, BlogPost- URL-https://cutt.ly/UAx2ELQ
This Is Our Last Step.
Go To The Authorization Scheme And Select The New User Page Access That We Have Created In The Select List.
In This Article, We Are Going To Discuss Oracle Apex Approval And Custom Approval. There Are Two Ways To Provide System Protection For Oracle Application Express (Apex) Applications. The Two Methods Are Authentication And Approval. The Authentication Method Has Already Been Discussed In The Previous Article, Which Was Applied On The Login Page. Authorization Is Used To Create Deep Security Controls. It Can Be Implemented In Tabs, Pages, Or Regions. Using A Combination Of Authentication And Approval Will Create An Application With Confidence Security.
🔗 Demo Application- URL- Demo Application Username - demo, Pass- demo
I hope everyone will like it. Please watch the full video, Comment on any of your problems, I will try my best to solve the problem, In-Shah Allah. Everyone's cooperation is desirable. Visit my blog site, new technology related videos, you will get different types of tutorials of Oracle Apex, and hopefully, you can use them in your daily work. Please stay tuned by subscribing to the YouTube channel, and encourages new videos to be uploaded. ================= Visit my site to get more collaborative posts about Oracle Apex and subscribe to my YouTube channel. Thanks. Comment on any of your issues, I will try my best to solve the problem, In-Shah Allah. Everyone's cooperation is desirable. Visit my blog site, new technology-related videos, you will get different types of tutorials of Oracle Apex, and hopefully, you can use them in your daily work. ============================== 🙍🏾 Md jABER HOSSEN 📲 Mobile- +8801760688286 📨 Email- jaberit786@gmail.com 🌐 FB- facebook.com/mdjaber.hossen1 Please Subscribe to My Channel Many thanks for visiting the site.
Then Enjoy.........................
Crete User Group Table
CREATE TABLE "USER_GROUP" ( "OID" NUMBER, "PID_PARENT" NUMBER, "GROUP_TITLE" NVARCHAR2(30), "GROUP_DESCRIPTION" NVARCHAR2(250), "IS_ACTIVE" NVARCHAR2(1), "Create_By" VARCHAR2(200), "Create_Date" DATE, "Update By" VARCHAR2(200), "UPDATE_DATE" DATE, CONSTRAINT "ACL_GROUP_PK" PRIMARY KEY ("OID") USING INDEX ENABLE ) ENABLE ROW MOVEMENT /
SQL Code To Insert Some Data
Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (1, 'Admin', 'Application Administrator', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (2, 'Shop_owner', 'The shop owner, দোকানের মালিক।', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (3, 'Store_manager', 'Store manager, দোকানের ম্যানেজার', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (5, 'Shop_management', 'Shop manager, দোকান পরিচালনাকারী।', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (6, 'Salesman', 'Store Product Salesman, দোকানের প্রোডাক্ট সেলসম্যান।', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (7, 'Data_entry', 'Product entry employee, সকল প্রকার ডাটা এন্ট্রির কাজ করবেন।', 1); Insert into USER_GROUP (OID, GROUP_TITLE, GROUP_DESCRIPTION, IS_ACTIVE) Values (8, 'Normal_User', 'Normal user of the application, অ্যাপ্লিকেশন নরমাল ব্যবহারকারী.', 1);
Crete Is Activate Table
CREATE TABLE "IS_ACTIVATE" ( "OID" NUMBER, "STATUS" VARCHAR2(30), CONSTRAINT "IS_ACTIVATE_PK" PRIMARY KEY ("OID") USING INDEX ENABLE ) ENABLE ROW MOVEMENT /
Insert into IS_ACTIVATE (OID, STATUS) Values (1, 'Activate'); Insert into IS_ACTIVATE (OID, STATUS) Values (2, 'Inactive');
0 Comments
Hlo Sir