Subversion Repositories DevTools

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
119 ghuddy 1
<%
2
'===================================================================
129 ghuddy 3
'                  Access Control General
119 ghuddy 4
'===================================================================
5
%>
6
<%
7
'------------ VARIABLE DEFINITION -------------
8
'------------ CONSTANTS DECLARATION -----------
9
'------------ VARIABLE INIT -------------------
129 ghuddy 10
objAccessControl.objOraSession = OraSession   ' Create database link for orasession
11
objAccessControl.objOraDatabase = OraDatabase   ' Create database link for oradatabase
119 ghuddy 12
'----------------------------------------------
13
%>
14
<%
15
'-----------------------------------------------------------------------------------------------------------------------------
16
Sub ApplicationRunlevelCheck()
129 ghuddy 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
 
119 ghuddy 34
End Sub
35
'-----------------------------------------------------------------------------------------------------------------------------
36
Sub ApplicationAccessCheck ()
129 ghuddy 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
 
119 ghuddy 55
End Sub
56
'-----------------------------------------------------------------------------------------------------------------------------
57
Sub LoadUserPermissions ( ByRef oAccessControl )
129 ghuddy 58
   Dim rsAccessControl
59
 
60
   ' Exit if not logged in
61
   If NOT oAccessControl.UserLogedIn Then Exit Sub
62
 
63
   'Try getting object from session
64
   If IsArray(Session(enumUSER_STATIC_PERMISSIONS)) Then
65
      Call oAccessControl.LoadStaticPermissions ( Session(enumUSER_STATIC_PERMISSIONS) )
66
      Call oAccessControl.LoadDataPermissions ( Session(enumUSER_DATA_PERMISSIONS) )
67
      Exit Sub
68
   End If
69
 
70
   OraDatabase.Parameters.Add "USER_ID",       oAccessControl.UserId,    ORAPARM_INPUT, ORATYPE_NUMBER
71
   OraDatabase.Parameters.Add "APP_ID",       APPLICATION_ID,       ORAPARM_INPUT, ORATYPE_NUMBER
72
   OraDatabase.Parameters.Add "RECORD_SET",   NULL, ORAPARM_OUTPUT,    ORATYPE_CURSOR
73
 
74
 
75
   ' Load Static Permissions
76
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_STATIC_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
77
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
78
 
79
 
80
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
81
      oAccessControl.LoadStaticPermissions rsAccessControl.GetRows()
82
 
83
      Session(enumUSER_STATIC_PERMISSIONS) = rsAccessControl.GetRows()
84
 
85
   End If
86
   rsAccessControl.Close
87
 
88
   ' Load Data Permissions
89
   OraDatabase.ExecuteSQL "BEGIN  PK_SECURITY.GET_USER_DATA_PERMISSIONS ( :USER_ID, :APP_ID, :RECORD_SET );  END;"
90
   Set rsAccessControl = OraDatabase.Parameters("RECORD_SET").Value
91
 
92
   If ((NOT rsAccessControl.BOF) AND (NOT rsAccessControl.EOF)) Then
93
      oAccessControl.LoadDataPermissions rsAccessControl.GetRows()
94
 
95
      Session(enumUSER_DATA_PERMISSIONS) = rsAccessControl.GetRows()
96
 
97
   End If
98
   rsAccessControl.Close
99
 
100
   ' --- Destroy ---
101
   Set rsAccessControl = nothing
102
 
103
   OraDatabase.Parameters.Remove "USER_ID"
104
   OraDatabase.Parameters.Remove "APP_ID"
105
   OraDatabase.Parameters.Remove "RECORD_SET"
119 ghuddy 106
End Sub
107
'-----------------------------------------------------------------------------------------------------------------------------
108
Sub UpdateLoginSession ()
129 ghuddy 109
   Dim nTimeVal
110
 
111
   ' Exit if not logged in
112
   If NOT objAccessControl.UserLogedIn Then Exit Sub
113
 
114
   ' Get time value
115
   nTimeVal = CDbl(TIMER_VALUE)
116
 
117
   ' Allow update only once per minute
118
   If Session( enumSESSION_LAST_REQUEST ) <> "" Then
119
      If CDbl( Session( enumSESSION_LAST_REQUEST ) ) = nTimeVal Then Exit Sub
120
   End If
121
 
122
   ' Update database with last request
123
   OraDatabase.Parameters.Add "USER_ID",    objAccessControl.UserId, ORAPARM_INPUT, ORATYPE_NUMBER
124
   OraDatabase.Parameters.Add "TIME_VAL",   nTimeVal,                ORAPARM_INPUT, ORATYPE_NUMBER
125
 
126
   objEH.TryORA ( OraSession )
127
   On Error Resume Next
128
 
129
   OraDatabase.ExecuteSQL _
130
   " UPDATE USERS SET"&_
131
   " LAST_REQUEST = :TIME_VAL"&_
132
   " WHERE USER_ID = :USER_ID"
133
 
134
   objEH.CatchORA ( OraSession )
135
 
136
   OraDatabase.Parameters.Remove "USER_ID"
137
   OraDatabase.Parameters.Remove "TIME_VAL"
138
 
139
   ' Save last request time to session variable
140
   Session( enumSESSION_LAST_REQUEST ) = CDbl(nTimeVal)
119 ghuddy 141
End Sub
142
'-----------------------------------------------------------------------------------------------------------------------------
143
%>
144
<%
145
'------------ RUN BEFORE CONTROL RENDER -------
146
 
147
 
148
'--- Load User Permissions ---
149
Call LoadUserPermissions ( objAccessControl )
150
 
151
'--- Application Run level Check ---
152
Call ApplicationRunlevelCheck ()
153
 
154
 
155
'--- Update Login Session ---
156
Call UpdateLoginSession ()
157
 
158
'----------------------------------------------
159
%>
160
<%
161
'------------ RUN AFTER CONTROL RENDER --------
162
'----------------------------------------------
129 ghuddy 163
%>