Rev 2 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed
<%'===================================================================' Access Control General'===================================================================%><%'------------ VARIABLE DEFINITION -------------Dim rsAccessControl'------------ CONSTANTS DECLARATION -----------'------------ VARIABLE INIT -------------------objAccessControl.objOraSession = OraSession ' Create database link for orasessionobjAccessControl.objOraDatabase = OraDatabase ' Create database link for oradatabase'----------------------------------------------%><%'-----------------------------------------------------------------------------------------------------------------------------Sub LoginCheck ()If NOT objAccessControl.UserLogedIn ThenobjPMod.PersistInQryString ( aPersistList ) ' Get all persistant parametersIf NOT isPopupWindow ThenCall OpenInWindow ( "Login.asp?rfile="& SCRIPT_NAME & objPMod.ComposeURLWithout("rfile") )ElseCall OpenInParentWindow ( "Login.asp?"& objPMod.ComposeURL() )Call CloseWindow()End IfEnd IfEnd Sub'-----------------------------------------------------------------------------------------------------------------------------Sub ApplicationAccessCheck ()'--- Built In Administrator Override ---If objAccessControl.UserId = 0 ThenExit SubEnd If'---------------------------------------If NOT objAccessControl.UserApplication ( APPLICATION_ID ) ThenIf NOT isPopupWindow ThenCall OpenInWindow ( "Login.asp?message=1&rfile="& SCRIPT_NAME & objPMod.ComposeURLWithout("rfile") )ElseCall OpenInParentWindow ( "Login.asp?message=1&"& objPMod.ComposeURL() )Call CloseWindow()End IfEnd IfEnd 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 shownFunction canShowControl (cname)canShowControl = objAccessControl.IsDataVisible ("PROJECTS", -1, cname)End Function'-------------------------------------------------' Function: canActionControl' Description: Determine if the named control action can be performedFunction 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 idOraDatabase.Parameters.Add "USER_ID", objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "APP_ID", APPLICATION_ID, ORAPARM_INPUT, ORATYPE_NUMBEROraDatabase.Parameters.Add "PAGE_NAME", SCRIPT_NAME, ORAPARM_INPUT, ORATYPE_VARCHAR2' Load Static PermissionsSet rsAccessControl = OraDatabase.DbCreateDynaset( GetQuery ("AccessControlStaticPermissions.sql") , ORADYN_DEFAULT )If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) ThenobjAccessControl.LoadStaticPermissions rsAccessControl.GetRows()End IfrsAccessControl.Close' Load Data PermissionsSet rsAccessControl = OraDatabase.DbCreateDynaset( GetQuery ("AccessControlDataPermissions.sql") , ORADYN_DEFAULT )If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) ThenobjAccessControl.LoadDataPermissions rsAccessControl.GetRows()End IfrsAccessControl.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.CloseOraDatabase.Parameters.Remove "USER_ID"OraDatabase.Parameters.Remove "APP_ID"OraDatabase.Parameters.Remove "PAGE_NAME"%><%'------------ RUN AFTER CONTROL RENDER --------'----------------------------------------------%>