Subversion Repositories DevTools

Rev

Rev 2 | Blame | Last modification | View Log | RSS feed

<%
'===================================================================
'                                               Access Control General
'===================================================================
%>
<%
'------------ VARIABLE DEFINITION -------------
Dim rsAccessControl
'------------ CONSTANTS DECLARATION -----------
'------------ VARIABLE INIT -------------------
objAccessControl.objOraSession = OraSession     ' Create database link for orasession
objAccessControl.objOraDatabase = OraDatabase   ' Create database link for oradatabase
'----------------------------------------------
%>
<%
'-----------------------------------------------------------------------------------------------------------------------------
Sub LoginCheck ()
If NOT objAccessControl.UserLogedIn Then  
        objPMod.PersistInQryString ( aPersistList )             ' Get all persistant parameters
        
        If NOT isPopupWindow Then
                Call OpenInWindow ( "Login.asp?rfile="& SCRIPT_NAME & objPMod.ComposeURLWithout("rfile") )
        Else
                Call OpenInParentWindow ( "Login.asp?"& objPMod.ComposeURL() )
                Call CloseWindow()
        End If
        
End If

End Sub
'-----------------------------------------------------------------------------------------------------------------------------
Sub ApplicationAccessCheck ()
                
        '--- Built In Administrator Override ---
        If objAccessControl.UserId = 0 Then
                Exit Sub
        End If
        '---------------------------------------
        
        If NOT objAccessControl.UserApplication ( APPLICATION_ID )  Then 
                If NOT isPopupWindow Then
                        Call OpenInWindow ( "Login.asp?message=1&rfile="& SCRIPT_NAME & objPMod.ComposeURLWithout("rfile") )
                Else
                        Call OpenInParentWindow ( "Login.asp?message=1&"& objPMod.ComposeURL() )
                        Call CloseWindow()
                End If
        End If
        
End Sub
'-----------------------------------------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------------------------------------
'-----------------------------------------------------------------------------------------------------------------------------
' The folling function are wrappers around the general objAccessControl access function
' Pages shold ONLY use these access functions and not the lowerlevel ones
' Caveats:
'   - Developer must know which access objects (controls) should be accessed in a project maner
'     and which should be accessed in a global manner.
'     Basically, use the ...InProject() variants for project based pages 
'-------------------------------------------------
' Function:     canShowControl
' Description:  Determine if the named control should be shown
Function canShowControl (cname)
    canShowControl =  objAccessControl.IsDataVisible ("PROJECTS", -1, cname) 
End Function

'-------------------------------------------------
' Function:     canActionControl
' Description:  Determine if the named control action can be performed
Function canActionControl (cname)
    canActionControl =  objAccessControl.IsDataActive ("PROJECTS", -1, cname) 
End Function

%>
<%
'------------ RUN BEFORE CONTROL RENDER -------

'--- Login Check ---
Call LoginCheck ()

'--- Application Permissions ---
Call ApplicationAccessCheck()

'----------------------------------------------
%>
<%

' TODO : Update next line with log on  user id
OraDatabase.Parameters.Add "USER_ID",           objAccessControl.UserId,                                ORAPARM_INPUT, ORATYPE_NUMBER 
OraDatabase.Parameters.Add "APP_ID",            APPLICATION_ID,         ORAPARM_INPUT, ORATYPE_NUMBER 
OraDatabase.Parameters.Add "PAGE_NAME",         SCRIPT_NAME,    ORAPARM_INPUT, ORATYPE_VARCHAR2 


' Load Static Permissions
Set rsAccessControl = OraDatabase.DbCreateDynaset( GetQuery ("AccessControlStaticPermissions.sql") , ORADYN_DEFAULT )
If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
        objAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
        
End If
rsAccessControl.Close


' Load Data Permissions
Set rsAccessControl = OraDatabase.DbCreateDynaset( GetQuery ("AccessControlDataPermissions.sql") , ORADYN_DEFAULT )
If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
        objAccessControl.LoadDataPermissions rsAccessControl.GetRows()
        
End If
rsAccessControl.Close


'' Load Data Permission Variations
'Set rsAccessControl = OraDatabase.DbCreateDynaset( GetQuery ("AccessControlDataPermissionVariations.sql") , ORADYN_DEFAULT )
'If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
'       objAccessControl.LoadDataPermissionVariations rsAccessControl.GetRows()
'       
'End If
'rsAccessControl.Close


OraDatabase.Parameters.Remove "USER_ID"
OraDatabase.Parameters.Remove "APP_ID"
OraDatabase.Parameters.Remove "PAGE_NAME"
%>
<%
'------------ RUN AFTER CONTROL RENDER --------
'----------------------------------------------
%>