Files
mip/Documentation/pldoc/mip_security.body.html
hardya 2920f4d016 Scheme Changes:
Replaced Access_Controls with APEX_AUTHORISATION
Created POSTCODES, ERROR_LOGS and SYSTEM_CONFIGURATION.
Added missing columns to ENQUIRIES, REGULATORS, etc.
Added views V_PROFILE_RT_CODE_FOR_ENRO.vw, V_PARTY_RELATIONSHIPS.vw, V_LATEST_RT_CODE_FOR_ENRO.vw.

Modules:

Added cout_err.pck, cout_system_configuration.pck.

Data:

Added Data/Demo files
Added Data/Seed files for postcodes, regions and DatabaseItemToFunctionalSpecificationReference.csv

Documentation:

Added Documentation/pldoc for plsqldoc-generated files.
Added Documentation/SupportingDocumentation/Regions to hold region definition information.

git-svn-id: http://locode01.ad.dom/svn/WEBMIP/trunk@2890 248e525c-4dfb-0310-94bc-949c084e9493
2007-11-27 11:48:13 +00:00

540 lines
15 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<LINK REL="STYLESHEET" TYPE="text/css" HREF="plsqldoc.css">
<TITLE>Package body mip_security</TITLE>
<META name="object" content="PACKAGE BODY">
<META name="name" content="mip_security">
<META name="description" content="">
</HEAD>
<BODY>
<TABLE WIDTH="100%"><TR>
<TD><P ALIGN="LEFT"><STRONG><SMALL></SMALL></STRONG></TD>
<TD><P ALIGN="RIGHT"><STRONG><SMALL><A HREF="index.html">index</A></SMALL></STRONG></TD>
</TR></TABLE>
<TABLE CLASS="MAIN_TABLE"><TR><TD CLASS="DESC_TEXT">
<P CLASS="MAIN_TITLE">Package body mip_security</P>
<BR>
</TD></TR></TABLE>
<HR>
<A NAME="Program units"></A>
<TABLE CLASS="SUB_TABLE"><TR><TD CLASS="SUB_TITLE">
Program units
</TD></TR></TABLE>
<TABLE CLASS="SUB_TABLE">
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#get_user_status">get_user_status</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#login">login</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Logs the user into the system and registers with APEX.
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#get_hash">get_hash</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Produce a 'password hash' from the given username and password
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#authenticate_user">authenticate_user</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Authenticates the given username and password
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#valid_user2">valid_user2</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Authenticates the given p_username and p_password
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#valid_user">valid_user</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Authenticates the given username and password
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#authorization">authorization</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Checks for authorization to access the given component
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#page_authorization">page_authorization</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Checks for <A HREF=#authorization>authorization</A> to access the given page
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#component_authorization">component_authorization</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Checks for <A HREF=#authorization>authorization</A> to access the given component
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#region_authorization">region_authorization</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Checks for <A HREF=#authorization>authorization</A> to access the given page
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#user_screen">user_screen</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#admin_screen">admin_screen</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#new_password">new_password</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="TYPE_ITEM">
<A HREF="#redirect_on_expired_account">redirect_on_expired_account</A>&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="get_user_status"></A>
<P CLASS="TYPE_TITLE">
get_user_status
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION get_user_status(p_username IN VARCHAR2) RETURN VARCHAR2
</PRE>
<HR>
<A NAME="login"></A>
<P CLASS="TYPE_TITLE">
login
</P>
<PRE CLASS="DECL_TEXT">
PROCEDURE login(p_uname IN VARCHAR2
,p_password IN VARCHAR2
,p_session_id IN VARCHAR2
,p_flow_page IN VARCHAR2)
</PRE>
<P CLASS="DESC_TEXT">
Logs the user into the system and registers with APEX.<br>
&nbsp;<br>
if the user account is 'OPEN', log them in and flow to the requested page if the user account is 'EXPIRED', log them in and flow to the 'Change Password'&nbsp; page if the user account is 'LOCKED', log the user out and flow to the 'Locked' page<br>
<BR>
</P>
<HR>
<A NAME="get_hash"></A>
<P CLASS="TYPE_TITLE">
get_hash
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION get_hash(p_username IN VARCHAR2
,p_password IN VARCHAR2) RETURN VARCHAR2
</PRE>
<P CLASS="DESC_TEXT">
Produce a 'password hash' from the given username and password<br>
&nbsp;<br>
Uses the dbms_obfuscation_toolkit to produce the hash.<br>
<BR>
</P>
<HR>
<A NAME="authenticate_user"></A>
<P CLASS="TYPE_TITLE">
authenticate_user
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION authenticate_user(p_username IN VARCHAR2
,p_password IN VARCHAR2) RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Authenticates the given username and password<br>
<BR>
</P>
<A NAME="Returns"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Returns
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
TRUE for authenticated username and password combination<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Replaces"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Replaces
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
<A HREF=#valid_user>valid_user</A>, <A HREF=#valid_user2>valid_user2</A>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="valid_user2"></A>
<P CLASS="TYPE_TITLE">
valid_user2
</P>
<PRE CLASS="DECL_TEXT">
PROCEDURE valid_user2(p_username IN VARCHAR2
,p_password IN VARCHAR2)
</PRE>
<P CLASS="DESC_TEXT">
Authenticates the given p_username and p_password<br>
&nbsp;<br>
Checks the <A HREF="passwords.html">passwords</A> table for a hash value matching that produced from the given p_username and p_password.<br>
<BR>
</P>
<A NAME="Raises"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Raises
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
-20000&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
when unable to authenticate<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Obsolete"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Obsolete
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Replaced by <A HREF=#authenticate_user>authenticate_user</A>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="valid_user"></A>
<P CLASS="TYPE_TITLE">
valid_user
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION valid_user(p_username IN VARCHAR2
,p_password IN VARCHAR2) RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Authenticates the given username and password<br>
<BR>
</P>
<A NAME="Obsolete"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Obsolete
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
Replaced by <A HREF=#authenticate_user>authenticate_user</A>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="authorization"></A>
<P CLASS="TYPE_TITLE">
authorization
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION authorization(p_app_user IN VARCHAR2
,p_component_name IN apex_authorization.component_name%TYPE
,p_component_type IN apex_authorization.component_type%TYPE
,p_privilege IN apex_authorization.privilege%TYPE DEFAULT 'A')
RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Checks for authorization to access the given component<br>
&nbsp;<br>
&nbsp;<br>
Checks the roles assigned to the given p_app_user to see whether they are authorized to access the given component.<br>
&nbsp;<br>
If configuration item APEX_AUTHORIZATION_DEFAULT_MODE = PUBLIC, all components are considered to be accessible to all unless specifically listed in the apex_authorization table. Otherwise, the requested access must be listed in the apex_authorization table.<br>
<BR>
</P>
<A NAME="Parameters"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Parameters
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_app_user&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
username<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_component_name&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
name of the component to be accessed<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_component_type&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
the type of component to be accessed<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_privilege&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
the access privilege being sought<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Returns"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Returns
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
TRUE if the given p_app_user is authorized<br>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="page_authorization"></A>
<P CLASS="TYPE_TITLE">
page_authorization
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION page_authorization(p_app_user IN VARCHAR2
,p_page_id IN NUMBER
,p_privilege IN apex_authorization.privilege%TYPE DEFAULT 'A')
RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Checks for <A HREF=#authorization>authorization</A> to access the given page<br>
&nbsp;<br>
Calls the <A HREF=#authorization>authorization</A> function to perform the check<br>
<BR>
</P>
<A NAME="Parameters"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Parameters
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_app_user&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
username<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_page_id&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
page number to be accessed<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_privilege&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
the access privilege being sought<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Returns"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Returns
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
TRUE if the given p_app_user is authorized<br>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="component_authorization"></A>
<P CLASS="TYPE_TITLE">
component_authorization
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION component_authorization(p_app_user IN VARCHAR2
,p_component_name IN apex_authorization.component_name%TYPE
,p_privilege IN apex_authorization.privilege%TYPE DEFAULT 'A')
RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Checks for <A HREF=#authorization>authorization</A> to access the given component<br>
&nbsp;<br>
Calls the <A HREF=#authorization>authorization</A> function to perform the check<br>
<BR>
</P>
<A NAME="Parameters"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Parameters
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_app_user&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
username<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_component_name&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
name of the component to be accessed<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_privilege&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
the access privilege being sought<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Returns"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Returns
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
TRUE if the given p_app_user is authorized<br>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="region_authorization"></A>
<P CLASS="TYPE_TITLE">
region_authorization
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION region_authorization(p_app_user IN VARCHAR2
,p_component_name IN apex_authorization.component_name%TYPE
,p_privilege IN apex_authorization.privilege%TYPE DEFAULT 'A')
RETURN BOOLEAN
</PRE>
<P CLASS="DESC_TEXT">
Checks for <A HREF=#authorization>authorization</A> to access the given page<br>
&nbsp;<br>
Calls the <A HREF=#authorization>authorization</A> function to perform the check<br>
<BR>
</P>
<A NAME="Parameters"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Parameters
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_app_user&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
username<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_component_name&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
name of the region to be accessed<br>
</TD></TR>
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
p_privilege&nbsp;&nbsp;
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
the access privilege being sought<br>
</TD></TR>
</TABLE>
<BR>
<A NAME="Returns"></A>
<TABLE CLASS="LIST_TABLE"><TR><TD CLASS="LIST_TITLE">
Returns
</TD></TR></TABLE>
<TABLE CLASS="LIST_TABLE">
<TR><TD VALIGN="TOP" CLASS="LIST_ITEM" WIDTH=1%>
</TD><TD CLASS="DESC_TEXT" WIDTH=95%>
TRUE if the given p_app_user is authorized<br>
</TD></TR>
</TABLE>
<BR>
<HR>
<A NAME="user_screen"></A>
<P CLASS="TYPE_TITLE">
user_screen
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION user_screen(p_username IN VARCHAR2) RETURN BOOLEAN
</PRE>
<HR>
<A NAME="admin_screen"></A>
<P CLASS="TYPE_TITLE">
admin_screen
</P>
<PRE CLASS="DECL_TEXT">
FUNCTION admin_screen(p_username IN VARCHAR2) RETURN BOOLEAN
</PRE>
<HR>
<A NAME="new_password"></A>
<P CLASS="TYPE_TITLE">
new_password
</P>
<PRE CLASS="DECL_TEXT">
PROCEDURE new_password(p_username IN VARCHAR2
,p_password IN VARCHAR2)
</PRE>
<HR>
<A NAME="redirect_on_expired_account"></A>
<P CLASS="TYPE_TITLE">
redirect_on_expired_account
</P>
<PRE CLASS="DECL_TEXT">
PROCEDURE redirect_on_expired_account(p_username IN VARCHAR2)
</PRE>
<P>&nbsp;</P>
<P>&nbsp;</P>
</BODY>
</HTML>