Subversion Repositories DevTools

Rev

Rev 129 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 129 Rev 5061
Line 3... Line 3...
3
'                  Access Control General
3
'                  Access Control General
4
'===================================================================
4
'===================================================================
5
%>
5
%>
6
<%
6
<%
7
'------------ VARIABLE DEFINITION -------------
7
'------------ VARIABLE DEFINITION -------------
-
 
8
Dim bCanModifyProject                           ' Calculate once
8
'------------ CONSTANTS DECLARATION -----------
9
'------------ CONSTANTS DECLARATION -----------
9
'------------ VARIABLE INIT -------------------
10
'------------ VARIABLE INIT -------------------
10
objAccessControl.objOraSession = OraSession   ' Create database link for orasession
11
objAccessControl.objOraSession = OraSession     ' Create database link for orasession
11
objAccessControl.objOraDatabase = OraDatabase   ' Create database link for oradatabase
12
objAccessControl.objOraDatabase = OraDatabase   ' Create database link for oradatabase
-
 
13
bCanModifyProject = false                       ' Calculated later
12
'----------------------------------------------
14
'----------------------------------------------
13
%>
15
%>
14
<%
16
<%
15
'-----------------------------------------------------------------------------------------------------------------------------
17
'-----------------------------------------------------------------------------------------------------------------------------
16
Sub ApplicationRunlevelCheck()
18
Sub ApplicationRunlevelCheck()
17
 
19
 
18
   '--- Application Developer Override ---
20
   '--- Application Developer Override ---
19
   If objAccessControl.UserId = 0 OR objAccessControl.IsVisible ( "onApplicationOffline" ) Then
21
   If objAccessControl.UserId = 0 OR canShowControl ( "onApplicationOffline" ) Then
20
      Exit Sub
22
      Exit Sub
21
   End If
23
   End If
22
   '---------------------------------------
24
   '---------------------------------------
23
 
25
 
24
   '-- Check if application is running --
26
   '-- Check if application is running --
Line 59... Line 61...
59
 
61
 
60
   ' Exit if not logged in
62
   ' Exit if not logged in
61
   If NOT oAccessControl.UserLogedIn Then Exit Sub
63
   If NOT oAccessControl.UserLogedIn Then Exit Sub
62
 
64
 
63
   'Try getting object from session
65
   'Try getting object from session
-
 
66
   '    DevSystem - will not cache permissions in the Session Object
-
 
67
   '
64
   If IsArray(Session(enumUSER_STATIC_PERMISSIONS)) Then
68
   If NOT oAccessControl.isDevSystem() AND IsArray(Session(enumUSER_STATIC_PERMISSIONS)) Then
65
      Call oAccessControl.LoadStaticPermissions ( Session(enumUSER_STATIC_PERMISSIONS) )
69
      Call oAccessControl.LoadStaticPermissions ( Session(enumUSER_STATIC_PERMISSIONS) )
66
      Call oAccessControl.LoadDataPermissions ( Session(enumUSER_DATA_PERMISSIONS) )
70
      Call oAccessControl.LoadDataPermissions ( Session(enumUSER_DATA_PERMISSIONS) )
67
      Exit Sub
71
      Exit Sub
68
   End If
72
   End If
69
 
73
 
70
   OraDatabase.Parameters.Add "USER_ID",       oAccessControl.UserId,    ORAPARM_INPUT, ORATYPE_NUMBER
74
   OraDatabase.Parameters.Add "USER_ID",      oAccessControl.UserId,    ORAPARM_INPUT, ORATYPE_NUMBER
71
   OraDatabase.Parameters.Add "APP_ID",       APPLICATION_ID,       ORAPARM_INPUT, ORATYPE_NUMBER
75
   OraDatabase.Parameters.Add "APP_ID",       APPLICATION_ID,           ORAPARM_INPUT, ORATYPE_NUMBER
72
   OraDatabase.Parameters.Add "RECORD_SET",   NULL, ORAPARM_OUTPUT,    ORATYPE_CURSOR
76
   OraDatabase.Parameters.Add "RECORD_SET",   NULL, ORAPARM_OUTPUT,     ORATYPE_CURSOR
73
 
-
 
74
 
77
 
75
   ' Load Static Permissions
78
   ' Load Static Permissions
76
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_STATIC_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
79
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_STATIC_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
77
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
80
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
78
 
81
 
79
 
-
 
80
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
82
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
81
      oAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
83
      oAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
82
 
84
 
83
      Session(enumUSER_STATIC_PERMISSIONS) = rsAccessControl.GetRows()
85
      Session(enumUSER_STATIC_PERMISSIONS) = rsAccessControl.GetRows()
84
 
86
 
Line 138... Line 140...
138
 
140
 
139
   ' Save last request time to session variable
141
   ' Save last request time to session variable
140
   Session( enumSESSION_LAST_REQUEST ) = CDbl(nTimeVal)
142
   Session( enumSESSION_LAST_REQUEST ) = CDbl(nTimeVal)
141
End Sub
143
End Sub
142
'-----------------------------------------------------------------------------------------------------------------------------
144
'-----------------------------------------------------------------------------------------------------------------------------
-
 
145
'-----------------------------------------------------------------------------------------------------------------------------
-
 
146
' The folling function are wrappers around the general objAccessControl access function
-
 
147
' Pages shold ONLY use these access functions and not the lowerlevel ones
-
 
148
' Caveats:
-
 
149
'   - Developer must know which access objects (controls) should be accessed in a project maner
-
 
150
'     and which should be accessed in a global manner.
-
 
151
'     Basically, use the ...InProject() variants for project based pages 
-
 
152
'-------------------------------------------------
-
 
153
' Function:     canShowControl
-
 
154
' Description:  Determine if the named control should be shown
-
 
155
Function canShowControl (cname)
-
 
156
    canShowControl =  objAccessControl.IsDataVisible ("PROJECTS", DB_PROJ_ID, cname) 
-
 
157
End Function
-
 
158
 
-
 
159
'-------------------------------------------------
-
 
160
' Function:     canActionControl
-
 
161
' Description:  Determine if the named control action can be performed
-
 
162
Function canActionControl (cname)
-
 
163
    canActionControl =  objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, cname) 
-
 
164
End Function
-
 
165
 
-
 
166
'-------------------------------------------------
-
 
167
' Function:     canShowControlInProject
-
 
168
' Description:  Determine if the named project-specific control should be shown
-
 
169
Function canShowControlInProject (cname)
-
 
170
    canShowControlInProject = bCanModifyProject AND canShowControl(cname) 
-
 
171
End Function
-
 
172
 
-
 
173
'-------------------------------------------------
-
 
174
' Function:     canActionControlInProject
-
 
175
' Description:  Determine if the named project-specific control action can be performed
-
 
176
Function canActionControlInProject (cname)
-
 
177
    canActionControlInProject = bCanModifyProject AND canActionControl(cname) 
-
 
178
End Function
-
 
179
 
-
 
180
'-------------------------------------------------
-
 
181
' Function:     canActionInProject
-
 
182
' Description:  Determine if the user can perform any action in the project
-
 
183
Function canActionInProject()
-
 
184
    canActionInProject = bCanModifyProject
-
 
185
End Function
143
%>
186
%>
144
<%
187
<%
145
'------------ RUN BEFORE CONTROL RENDER -------
188
'------------ RUN BEFORE CONTROL RENDER -------
146
 
189
 
147
 
190
 
148
'--- Load User Permissions ---
191
'--- Load User Permissions ---
149
Call LoadUserPermissions ( objAccessControl )
192
Call LoadUserPermissions ( objAccessControl )
-
 
193
bCanModifyProject = objAccessControl.IsDataActive ("PROJECTS", DB_PROJ_ID, "EditProjects")
-
 
194
'-- rmDebug = rmDebug & "{"& DB_PROJ_ID & ":" & bCanModifyProject &"}" 
150
 
195
 
151
'--- Application Run level Check ---
196
'--- Application Run level Check ---
152
Call ApplicationRunlevelCheck ()
197
Call ApplicationRunlevelCheck ()
153
 
198
 
154
 
199