Subversion Repositories DevTools

Rev

Details | Last modification | View Log | RSS feed

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