loading...

27/07/2023

Apex Code

=============================================================================
https://www.youtube.com/watch?v=P_iYWgzaRek

1. Create An App with default settings

–> Step1: We Need a table Login.
->Run in SQL Commands

CREATE TABLE “LOGIN”

( “LOGIN_PK” NUMBER(7,0) NOT NULL ENABLE,

“ENTITY_OWNER_FK” NUMBER(7,0) NOT NULL ENABLE,

“ENTITY_FK” NUMBER(2,0) NOT NULL ENABLE,

“USERNAME” VARCHAR2(20) NOT NULL ENABLE,

“PASSWORD” VARCHAR2(20) NOT NULL ENABLE,

“EMAIL” VARCHAR2(50),

CONSTRAINT “LOGIN_PK” PRIMARY KEY (“LOGIN_PK”) ENABLE,

CONSTRAINT “LOGIN_UK1” UNIQUE (“ENTITY_OWNER_FK”, “ENTITY_FK”) ENABLE,

CONSTRAINT “LOGIN_UK2” UNIQUE (“USERNAME”) ENABLE

)

/

–> Step2: We Need a table ENTITY_TYPE.

->Run in SQL Commands

CREATE TABLE “ENTITY_TYPE”

( “ENTITY_PK” NUMBER(2,0) NOT NULL ENABLE,

“ENTITY_TYPE” VARCHAR2(15) NOT NULL ENABLE,

CONSTRAINT “ENTITY_TYPE_PK” PRIMARY KEY (“ENTITY_PK”) ENABLE

)

-> Run SQL Commands

ALTER TABLE “LOGIN” ADD CONSTRAINT “LOGIN_ENTITY_TYPE_FK1” FOREIGN KEY (“ENTITY_FK”)

REFERENCES “ENTITY_TYPE” (“ENTITY_PK”) ENABLE

———> Insert Data——
Entity Type: Entity PK/Entity Type: 1,Admin 2,User
Login: 1,1,1,zafar,zafar,za@im

–> Step3: Now we will create a package which will be used for Authentication.
-> SQL Wokshop -> Object Browser -> Create Packages “+” -> Specification:

create or replace PACKAGE “DV_PKG” AS

FUNCTION login_redirect_fun(uname IN VARCHAR2) RETURN varchar2;

FUNCTION login_valid_fun(p_username IN VARCHAR2,p_password IN VARCHAR2) RETURN boolean;

END DV_PKG;

—————- PACKAGE BODY:————————-SELECT DECODE(ENTITY_FK,1,’100′ change “100” to page number
-> SQL Wokshop -> Object Browser -> Select Packages -> Body

create or replace PACKAGE BODY “DV_PKG” AS

FUNCTION login_redirect_fun(UNAME IN VARCHAR2) RETURN VARCHAR2 AS

V_PAGE_ID VARCHAR2(45);

BEGIN

SELECT DECODE(ENTITY_FK,1,’100′,2,’200′,3,’300′,4,’400′) INTO V_PAGE_ID FROM LOGIN WHERE lower(username)=lower(UNAME);

RETURN ‘:’||V_PAGE_ID;

Exception when no_data_found then

return ‘:5’;

END login_redirect_fun;

FUNCTION login_valid_fun(p_username IN VARCHAR2,p_password IN VARCHAR2) RETURN boolean AS

V_PAGE_ID VARCHAR2(45);

count1 number:=0;

count2 number:=0;

BEGIN

if p_username is not null AND p_password is not null then

select 1 into count1

from login

where LOWER(username)= LOWER(p_username) and LOWER(password) = LOWER(p_password);

if count1=1 then

return true;

end if;

else

return false;

end if;

Exception when no_data_found then

return false;

END login_valid_fun;

END DV_PKG;

–> Step4: Now go to Shared Component->Authentication Scheme and Create New Authentication Scheme

Name: Custom_Authentication_DV
Scheme Type: Custom
Authentication Function Name: ifdr.dv_pkg.login_valid_fun or ifdr.lms_pkg.login_valid_fun
Goto : Login
Post-LogoutURL: URL:f?ps&App_ID.9999

–> Step5: Now go to Login Page -> Processing and replace the existing code with following code.

wwv_flow_custom_auth_std.login(
P_UNAME => :P9999_USERNAME,
P_PASSWORD => :P9999_PASSWORD,
P_SESSION_ID => APEX_APPLICATION.get_session_id,
P_FLOW_PAGE => :APP_ID||ifdr.dv_pkg.login_redirect_fun(:P9999_USERNAME)
);

========== Beautiful Login Page ===========

 


.t-PageBody–login form#wwvFlowForm{
background:url(#APP_IMAGES#1704529.jpg);
background-repeat:no-repeat;
background-Size:cover;
}


Span.t-Login-logo{
background-image : url( #APP_IMAGES#Logo-IEELcolor_2D.jpg);
background-Size :cover;
width :150px;
height :120px;

}


.t-Login-region{
position:relative;
width:400px;
–height:300px;
margin:0Auto;
background:rgba(130,130,130,.3);
padding:20px 22px;
border:1px solid;
border-top-color:#fbce4a;
border-left-color:#fbce4a;
border-bottom-color:#fbce4a;
border-right-color:#fbce4a;
border-radius:5%;
}


.t-Login-containerBody {
flex-grow: 0;
BACKGROUND-COLOR: #2E2E2E;
flex-shrink: 0;
flex-basis: auto;
display: flex;
flex-direction: column;
margin-top: auto;
margin-bottom: px;
align-items: center;
}

.t-LoginPage–split .t-Login-container {
background-color: #2E2E2E;
//box-shadow: 0 0 0px -4px rgba(0,0,0,.2), 0 0 0 1px rgb(0 0 0 / 4.0);
}

 

body .t-Login-title {
color:#fbce4a;
}

 

.t-Form-checkboxLabel, .t-Form-inputContainer .checkbox_group label, .t-Form-inputContainer .radio_group label, .t-Form-label, .t-Form-radioLabel {
color:#fbce4a;
}

 

.t-Login-region .t-Login-body .apex-item-text {
font-size: 16px;
padding: 4px 36px;
height: 40px;
border-radius: 15px;
}


.a-Button–hot, .t-Button–hot:not(.t-Button–simple), body .ui-button.ui-button–hot, body .ui-state-default.ui-priority-primary {

border-radius: 20px;
}

a-Button–hot:hover, .a-Button–hot:not(:active):focus, .t-Button–hot:not(.t-Button–simple):hover, .t-Button–hot:not(.t-Button–simple):not(:active):focus, body .ui-button.ui-button–hot:hover, body .ui-button.ui-button–hot:not(:active):focus, body .ui-state-default.ui-priority-primary:hover, body .ui-state-default.ui-priority-primary:not(:active):focus {
background-color:#6d5714f2;
}
.a-Icon {
color: yellow;
}

Posted in Apex, Code, Linux, OracleTaggs: