Subversion Repositories DevTools

Rev

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

Rev 119 Rev 129
Line 1... Line 1...
1
<%
1
<%
2
'===================================================================
2
'===================================================================
3
'						Access Control General
3
'                  Access Control General
4
'===================================================================
4
'===================================================================
5
%>
5
%>
6
<%
6
<%
7
'------------ VARIABLE DEFINITION -------------
7
'------------ VARIABLE DEFINITION -------------
8
'------------ CONSTANTS DECLARATION -----------
8
'------------ CONSTANTS DECLARATION -----------
9
'------------ VARIABLE INIT -------------------
9
'------------ VARIABLE INIT -------------------
10
objAccessControl.objOraSession = OraSession	' Create database link for orasession
10
objAccessControl.objOraSession = OraSession   ' Create database link for orasession
11
objAccessControl.objOraDatabase = OraDatabase	' Create database link for oradatabase
11
objAccessControl.objOraDatabase = OraDatabase   ' Create database link for oradatabase
12
'----------------------------------------------
12
'----------------------------------------------
13
%>
13
%>
14
<%
14
<%
15
'-----------------------------------------------------------------------------------------------------------------------------
15
'-----------------------------------------------------------------------------------------------------------------------------
16
Sub ApplicationRunlevelCheck()
16
Sub ApplicationRunlevelCheck()
17
	
17
 
18
	'--- Application Developer Override ---
18
   '--- Application Developer Override ---
19
	If objAccessControl.UserId = 0 OR objAccessControl.IsVisible ( "onApplicationOffline" ) Then
19
   If objAccessControl.UserId = 0 OR objAccessControl.IsVisible ( "onApplicationOffline" ) Then
20
		Exit Sub
20
      Exit Sub
21
	End If
21
   End If
22
	'---------------------------------------
22
   '---------------------------------------
23
	
23
 
24
	'-- Check if application is running --
24
   '-- Check if application is running --
25
	If NOT objAccessControl.IsApplicationRunning Then
25
   If NOT objAccessControl.IsApplicationRunning Then
26
		If NOT isPopupWindow Then
26
      If NOT isPopupWindow Then
27
			Call OpenInWindow ( "Login.asp?message=3&rfile="& scriptName & objPMod.ComposeURLWithout("rfile") )
27
         Call OpenInWindow ( "Login.asp?message=3&rfile="& scriptName & objPMod.ComposeURLWithout("rfile") )
28
		Else
28
      Else
29
			Call OpenInParentWindow ( "Login.asp?message=3&"& objPMod.ComposeURL() )
29
         Call OpenInParentWindow ( "Login.asp?message=3&"& objPMod.ComposeURL() )
30
			Call CloseWindow()
30
         Call CloseWindow()
31
		End If
31
      End If
32
	End If
32
   End If
33
	
33
 
34
End Sub
34
End Sub
35
'-----------------------------------------------------------------------------------------------------------------------------
35
'-----------------------------------------------------------------------------------------------------------------------------
36
Sub ApplicationAccessCheck ()
36
Sub ApplicationAccessCheck ()
37
	
37
 
38
	'--- Built In Administrator Override ---
38
   '--- Built In Administrator Override ---
39
	If objAccessControl.UserId = 0 Then
39
   If objAccessControl.UserId = 0 Then
40
		Exit Sub
40
      Exit Sub
41
	End If
41
   End If
42
	'---------------------------------------
42
   '---------------------------------------
43
	
43
 
44
	
44
 
45
	'-- Check User access to this application ---
45
   '-- Check User access to this application ---
46
	If NOT objAccessControl.UserApplication ( APPLICATION_ID )  Then 
46
   If NOT objAccessControl.UserApplication ( APPLICATION_ID )  Then
47
		If NOT isPopupWindow Then
47
      If NOT isPopupWindow Then
48
			Call OpenInWindow ( "Login.asp?message=1&rfile="& scriptName & objPMod.ComposeURLWithout("rfile") )
48
         Call OpenInWindow ( "Login.asp?message=1&rfile="& scriptName & objPMod.ComposeURLWithout("rfile") )
49
		Else
49
      Else
50
			Call OpenInParentWindow ( "Login.asp?message=1&"& objPMod.ComposeURL() )
50
         Call OpenInParentWindow ( "Login.asp?message=1&"& objPMod.ComposeURL() )
51
			Call CloseWindow()
51
         Call CloseWindow()
52
		End If
52
      End If
53
	End If
53
   End If
54
	
54
 
55
End Sub
55
End Sub
56
'-----------------------------------------------------------------------------------------------------------------------------
56
'-----------------------------------------------------------------------------------------------------------------------------
57
Sub LoadUserPermissions ( ByRef oAccessControl )
57
Sub LoadUserPermissions ( ByRef oAccessControl )
58
	Dim rsAccessControl
58
   Dim rsAccessControl
59
	
59
 
60
	' Exit if not logged in
60
   ' Exit if not logged in
61
	If NOT oAccessControl.UserLogedIn Then Exit Sub
61
   If NOT oAccessControl.UserLogedIn Then Exit Sub
62
	
-
 
63
	
62
 
64
	'Try getting object from session
63
   'Try getting object from session
65
	If IsArray(Session(enumUSER_STATIC_PERMISSIONS)) Then
64
   If IsArray(Session(enumUSER_STATIC_PERMISSIONS)) Then
66
		Call oAccessControl.LoadStaticPermissions ( Session(enumUSER_STATIC_PERMISSIONS) )
65
      Call oAccessControl.LoadStaticPermissions ( Session(enumUSER_STATIC_PERMISSIONS) )
67
		Call oAccessControl.LoadDataPermissions ( Session(enumUSER_DATA_PERMISSIONS) )
66
      Call oAccessControl.LoadDataPermissions ( Session(enumUSER_DATA_PERMISSIONS) )
68
		Exit Sub
67
      Exit Sub
69
	End If
68
   End If
70
	
-
 
71
	
69
 
72
	OraDatabase.Parameters.Add "USER_ID", 		oAccessControl.UserId, 	ORAPARM_INPUT, ORATYPE_NUMBER 
70
   OraDatabase.Parameters.Add "USER_ID",       oAccessControl.UserId,    ORAPARM_INPUT, ORATYPE_NUMBER
73
	OraDatabase.Parameters.Add "APP_ID", 		APPLICATION_ID, 		ORAPARM_INPUT, ORATYPE_NUMBER 
71
   OraDatabase.Parameters.Add "APP_ID",       APPLICATION_ID,       ORAPARM_INPUT, ORATYPE_NUMBER
74
	OraDatabase.Parameters.Add "RECORD_SET",	NULL, ORAPARM_OUTPUT, 	ORATYPE_CURSOR
72
   OraDatabase.Parameters.Add "RECORD_SET",   NULL, ORAPARM_OUTPUT,    ORATYPE_CURSOR
75
	
73
 
76
	
74
 
77
	' Load Static Permissions
75
   ' Load Static Permissions
78
	OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_STATIC_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
76
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_STATIC_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
79
	Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
77
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
80
	
78
 
81
	
79
 
82
	If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
80
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
83
		oAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
81
      oAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
84
		
82
 
85
		Session(enumUSER_STATIC_PERMISSIONS) = rsAccessControl.GetRows()
83
      Session(enumUSER_STATIC_PERMISSIONS) = rsAccessControl.GetRows()
86
		
84
 
87
	End If
85
   End If
88
	rsAccessControl.Close
86
   rsAccessControl.Close
89
	
-
 
90
	
87
 
91
	' Load Data Permissions
88
   ' Load Data Permissions
92
	OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_DATA_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
89
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_DATA_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
93
	Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
90
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
94
	
91
 
95
	If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
92
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
96
		oAccessControl.LoadDataPermissions rsAccessControl.GetRows()
93
      oAccessControl.LoadDataPermissions rsAccessControl.GetRows()
97
		
94
 
98
		Session(enumUSER_DATA_PERMISSIONS) = rsAccessControl.GetRows()
95
      Session(enumUSER_DATA_PERMISSIONS) = rsAccessControl.GetRows()
99
		
96
 
100
	End If
97
   End If
101
	rsAccessControl.Close
98
   rsAccessControl.Close
102
	
-
 
103
	
99
 
104
	' --- Destroy ---
100
   ' --- Destroy ---
105
	Set rsAccessControl = nothing
101
   Set rsAccessControl = nothing
106
	
102
 
107
	OraDatabase.Parameters.Remove "USER_ID"
103
   OraDatabase.Parameters.Remove "USER_ID"
108
	OraDatabase.Parameters.Remove "APP_ID"
104
   OraDatabase.Parameters.Remove "APP_ID"
109
	OraDatabase.Parameters.Remove "RECORD_SET"
105
   OraDatabase.Parameters.Remove "RECORD_SET"
110
End Sub
106
End Sub
111
'-----------------------------------------------------------------------------------------------------------------------------
107
'-----------------------------------------------------------------------------------------------------------------------------
112
Sub UpdateLoginSession ()
108
Sub UpdateLoginSession ()
113
	Dim nTimeVal
109
   Dim nTimeVal
114
	
-
 
115
	
110
 
116
	' Exit if not logged in
111
   ' Exit if not logged in
117
	If NOT objAccessControl.UserLogedIn Then Exit Sub
112
   If NOT objAccessControl.UserLogedIn Then Exit Sub
118
	
-
 
119
	
113
 
120
	' Get time value
114
   ' Get time value
121
	nTimeVal = CDbl(TIMER_VALUE)
115
   nTimeVal = CDbl(TIMER_VALUE)
122
	
-
 
123
	
-
 
124
	
116
 
125
	' Allow update only once per minute
117
   ' Allow update only once per minute
126
	If Session( enumSESSION_LAST_REQUEST ) <> "" Then
118
   If Session( enumSESSION_LAST_REQUEST ) <> "" Then
127
		If CDbl( Session( enumSESSION_LAST_REQUEST ) ) = nTimeVal Then Exit Sub
119
      If CDbl( Session( enumSESSION_LAST_REQUEST ) ) = nTimeVal Then Exit Sub
128
	End If
120
   End If
129
	
-
 
130
	
-
 
131
	
121
 
132
	' Update database with last request
122
   ' Update database with last request
133
	OraDatabase.Parameters.Add "USER_ID", 	objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER 
123
   OraDatabase.Parameters.Add "USER_ID",    objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
134
	OraDatabase.Parameters.Add "TIME_VAL", 	nTimeVal, ORAPARM_INPUT, ORATYPE_NUMBER 
124
   OraDatabase.Parameters.Add "TIME_VAL",   nTimeVal,                ORAPARM_INPUT, ORATYPE_NUMBER
135
	
125
 
-
 
126
   objEH.TryORA ( OraSession )
136
	OraSession.BeginTrans
127
   On Error Resume Next
137
	
128
 
138
	OraDatabase.ExecuteSQL _
129
   OraDatabase.ExecuteSQL _
139
	" UPDATE USERS SET"&_
130
   " UPDATE USERS SET"&_
140
	" LAST_REQUEST = :TIME_VAL"&_
131
   " LAST_REQUEST = :TIME_VAL"&_
141
	" WHERE USER_ID = :USER_ID"
132
   " WHERE USER_ID = :USER_ID"
142
	
133
 
143
	OraSession.CommitTrans
134
   objEH.CatchORA ( OraSession )
144
	
135
 
145
	OraDatabase.Parameters.Remove "USER_ID"
136
   OraDatabase.Parameters.Remove "USER_ID"
146
	OraDatabase.Parameters.Remove "TIME_VAL"
137
   OraDatabase.Parameters.Remove "TIME_VAL"
147
	
-
 
148
	
-
 
149
	
138
 
150
	' Save last request time to session variable
139
   ' Save last request time to session variable
151
	Session( enumSESSION_LAST_REQUEST ) = CDbl(nTimeVal)
140
   Session( enumSESSION_LAST_REQUEST ) = CDbl(nTimeVal)
152
	
-
 
153
	
-
 
154
End Sub
141
End Sub
155
'-----------------------------------------------------------------------------------------------------------------------------
142
'-----------------------------------------------------------------------------------------------------------------------------
156
%>
143
%>
157
<%
144
<%
158
'------------ RUN BEFORE CONTROL RENDER -------
145
'------------ RUN BEFORE CONTROL RENDER -------
Line 171... Line 158...
171
'----------------------------------------------
158
'----------------------------------------------
172
%>
159
%>
173
<%
160
<%
174
'------------ RUN AFTER CONTROL RENDER --------
161
'------------ RUN AFTER CONTROL RENDER --------
175
'----------------------------------------------
162
'----------------------------------------------
176
%>
-
 
177
163
%>
-
 
164