Subversion Repositories DevTools

Rev

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

Rev Author Line No. Line
6770 dpurdie 1
<%@LANGUAGE="VBSCRIPT"%>
2
<%
3
'=====================================================
4
'   _json_Replication.asp
5
'   Ajax support Package Replication Operations
6
'
7
'=====================================================
8
%>
9
<%
10
Option explicit
11
' Essential to get UTF through all the hoops. ie: VÄSTTRAFIK (VTK)
12
Response.ContentType = "text/html"
13
Response.AddHeader "Content-Type", "text/html;charset=UTF-8"
14
Response.CodePage = 65001
15
Response.CharSet = "UTF-8"
16
%>
17
<!--#include file="common/conf.asp"-->
18
<!--#include file="common/globals.asp"-->
19
<!--#include file="common/qstr.asp"-->
20
<!--#include file="common/common_subs.asp"-->
21
<% '------------ ACCESS CONTROL ------------------ %>
22
<!--#include file="_access_control_login_optional.asp"-->
23
<!--#include file="_access_control_general.asp"-->
24
<SCRIPT LANGUAGE="VBScript" RUNAT=SERVER SRC="class/classaspJSON.vbs"></SCRIPT> 
25
<%
26
'------------ Variable Definition -------------
27
Dim parOpr
28
Dim result
29
Dim SqlQry
30
Dim rsQry
31
 
32
parOpr = QStrPar("Opr")
33
 
34
' Init the output JSON class
35
'   Operations can add data
36
'   Default data will be added at the end
37
Dim oJSON
38
Set oJSON = New aspJSON
39
Dim newitem
40
 
41
Function canModify
42
    canModify = canActionInProject()
43
    If NOT canModify Then
44
        result = -4
45
        oJSON.data("error") = 1
46
        oJSON.data("emsgSummary") = "Permission denied"
47
        oJSON.data("emsgDetails") = oJSON.data("emsgSummary")
48
    End If
49
End Function
50
 
51
'
52
'   Prefill error indications
53
'   
54
result = -1
55
oJSON.data("emsgSummary") = "JSON Operation:" & parOpr
56
oJSON.data("emsgDetails") = "Internal Problem. Error not reported" 
57
 
58
'   
59
'   Perform the body of the operations within a Sub and use
60
'   On Error Resule Next to catch errors that accur in the code
61
'
62
On Error Resume Next
63
 
64
If (parOpr = "EnableProject") Then
65
    If canModify() Then EnableProject
66
ElseIf (parOpr = "RemoveProject") Then
67
    If canModify() Then RemoveProject
68
ElseIf (parOpr = "AddProject") Then
69
    If canModify() Then AddProject
70
ElseIf (parOpr = "EnableRelease") Then
71
    If canModify() Then EnableRelease
72
ElseIf (parOpr = "RemoveRelease") Then
73
    If canModify() Then RemoveRelease
74
ElseIf (parOpr = "AddRelease") Then
75
    If canModify() Then AddRelease
76
 
77
Else
78
    oJSON.data("error") = 1
79
    oJSON.data("emsgSummary") = "Unknown JSON Operation"
80
    oJSON.data("emsgDetails") = "JSON operation is not supported: " & parOpr
81
End If
82
 
83
 
84
' SQL error detection and reporting
85
If objEH.LastOraFailed Then
86
    oJSON.data("error") = 1
87
    result = -1
88
 
89
    oJSON.data("emsgSummary") = objEH.MessageSummary
90
    oJSON.data("emsgDetails") = objEH.MessageDetails
91
    oJSON.data("SqlQry") = SqlQry
92
'
93
'   Detect program errors
94
ElseIf Err.number <> 0 Then
95
    result = -3
96
    oJSON.data("error") = 2
97
    oJSON.data("errnum") = Err.number
98
    oJSON.data("errtxt") = Err.description
99
    oJSON.data("errsrc") = Err.source
100
    oJSON.data("emsgSummary") = "Internal VBScript Error:"
101
    oJSON.data("emsgDetails") = Err.number &  ":" & Err.description
102
End If
103
On error goto 0
104
'Write single value
105
oJSON.data("result") = result
106
If result = 0 Then
107
    oJSON.data.Remove("emsgSummary")
108
    oJSON.data.Remove("emsgDetails")
109
End If
110
 
111
'function Sleep(seconds)
112
'    dim oshell, cmd
113
'    set oShell = CreateObject("Wscript.Shell")
114
'    cmd = "cmd.exe /c timeout " & seconds & " /nobreak"
115
'    oShell.Run cmd,0,1
116
'End function
117
'
118
'Sleep(2)
119
 
120
 
121
' DEBUG: A Hash of the user provided requests
122
<!--oJSON.data("QueryString") = Request.QueryString       -->
123
<!--                                                      -->
124
<!--Dim requestSet : Set requestSet = oJSON.Collection()  -->
125
<!--Set oJSON.data("Request") = requestSet                -->
126
<!--Dim variableName                                      -->
127
<!--for each variableName in Request.QueryString          -->
128
<!--    requestSet.add variableName, Request(variableName)-->
129
<!--next                                                  -->
130
<!--for each variableName in Request.Form                 -->
131
<!--    requestSet.add variableName, Request(variableName)-->
132
<!--next                                                  -->
133
 
134
 
135
'Return the object
136
Response.Write oJSON.JSONoutput()
137
Set oJSON = Nothing
138
Call Destroy_All_Objects
139
%>
140
<%
141
'-------------------------------------------------
142
' Function:    EnableProject
143
' Description: Set the enabled state of a Project Replica for a specified target
144
'              server_id - Id of the BLAT replica server
145
'              user_id - user_id requesting the operation
146
'              proj_id - proj_id of the project entry to modify
147
'              new_state - New state
148
Sub EnableProject
149
 
150
    Dim  parServerId : parServerId = QStrPar("server_id")
151
    Dim  parUserId : parUserId = QStrPar("user_id")
152
    Dim  parProjId : parProjId = QStrPar("proj_id")
153
    Dim  parState  : parState = QStrPar("new_state")
154
 
155
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" AND parState <> "" Then
156
 
157
        If parState <> "Y" and parState <> "N" Then
158
            oJSON.data("emsgSummary") = "EnableProject"
159
            oJSON.data("emsgDetails") = "Invalid State"
160
            Exit Sub
161
        End If
162
 
163
        objEH.ErrorRedirect = FALSE
164
        objEH.TryORA ( OraSession )
165
        On Error Resume Next
166
 
167
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
168
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
169
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
170
        OraDatabase.Parameters.Add "STATE",             parState,       ORAPARM_INPUT, ORATYPE_NUMBER
171
 
172
        SqlQry = "UPDATE BLAT_PROJECTS SET BP_ENABLED = :STATE where BLAT_ID = :SERVER_ID and PROJ_ID = :PROJ_ID"
173
        OraDatabase.ExecuteSQL SqlQry
174
 
175
        OraDatabase.Parameters.Remove "USER_ID_LIST"
176
        OraDatabase.Parameters.Remove "PROJ_ID"
177
        OraDatabase.Parameters.Remove "SERVER_ID"
178
        OraDatabase.Parameters.Remove "STATE"
179
 
180
        objEH.CatchORA ( OraSession )
181
        result = 0
182
 
183
    Else
184
        oJSON.data("emsgSummary") = "EnableProject"
185
        oJSON.data("emsgDetails") = "Insufficient arguments"
186
    End If
187
 
188
End Sub
189
 
190
'-------------------------------------------------
191
' Function:    RemoveProject
192
' Description: Remove a Project Replica for a specified target
193
'              server_id - Id of the BLAT replica server
194
'              user_id - user_id requesting the operation
195
'              proj_id - proj_id of the project entry to modify
196
Sub RemoveProject
197
 
198
    Dim  parServerId : parServerId = QStrPar("server_id")
199
    Dim  parUserId : parUserId = QStrPar("user_id")
200
    Dim  parProjId : parProjId = QStrPar("proj_id")
201
 
202
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" Then
203
 
204
        objEH.ErrorRedirect = FALSE
205
        objEH.TryORA ( OraSession )
206
        On Error Resume Next
207
 
208
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
209
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
210
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
211
 
212
        SqlQry = "DELETE FROM BLAT_PROJECTS where BLAT_ID = :SERVER_ID and PROJ_ID = :PROJ_ID"
213
        OraDatabase.ExecuteSQL SqlQry
214
 
215
        OraDatabase.Parameters.Remove "USER_ID_LIST"
216
        OraDatabase.Parameters.Remove "PROJ_ID"
217
        OraDatabase.Parameters.Remove "SERVER_ID"
218
 
219
        objEH.CatchORA ( OraSession )
220
        result = 0
221
 
222
    Else
223
        oJSON.data("emsgSummary") = "EnableProject"
224
        oJSON.data("emsgDetails") = "Insufficient arguments"
225
    End If
226
 
227
End Sub
228
 
229
'-------------------------------------------------
230
' Function:    AddProject
231
' Description: Add a Project Replica for a specified target
232
'              server_id - Id of the BLAT replica server
233
'              user_id - user_id requesting the operation
234
'              proj_id - proj_id of the project entry to modify
235
Sub AddProject
236
 
237
    Dim  parServerId : parServerId = QStrPar("server_id")
238
    Dim  parUserId : parUserId = QStrPar("user_id")
239
    Dim  parProjId : parProjId = QStrPar("proj_id")
240
 
241
    If parServerId <> "" AND parUserId<> "" AND parProjId <> "" Then
242
 
243
        objEH.ErrorRedirect = FALSE
244
        objEH.TryORA ( OraSession )
245
        On Error Resume Next
246
 
247
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
248
        OraDatabase.Parameters.Add "PROJ_ID",           parProjId,      ORAPARM_INPUT, ORATYPE_NUMBER
249
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
250
 
251
        SqlQry = "INSERT INTO BLAT_PROJECTS (BLAT_ID,proj_id) VALUES( :SERVER_ID, :PROJ_ID)"
252
        OraDatabase.ExecuteSQL SqlQry
253
 
254
        OraDatabase.Parameters.Remove "USER_ID_LIST"
255
        OraDatabase.Parameters.Remove "PROJ_ID"
256
        OraDatabase.Parameters.Remove "SERVER_ID"
257
 
258
        objEH.CatchORA ( OraSession )
259
        result = 0
260
 
261
    Else
262
        oJSON.data("emsgSummary") = "EnableProject"
263
        oJSON.data("emsgDetails") = "Insufficient arguments"
264
    End If
265
 
266
End Sub
267
 
268
'-------------------------------------------------
269
' Function:    EnableRelease
270
' Description: Set the enabled state of a Release Replica for a specified target
271
'              server_id - Id of the BLAT replica server
272
'              user_id - user_id requesting the operation
273
'              rtag_id - rtag_id of the release entry to modify
274
'              new_state - New state
275
Sub EnableRelease
276
 
277
    Dim  parServerId : parServerId = QStrPar("server_id")
278
    Dim  parUserId : parUserId = QStrPar("user_id")
279
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
280
    Dim  parState  : parState = QStrPar("new_state")
281
 
282
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" AND parState <> "" Then
283
 
284
        If parState <> "Y" and parState <> "N" Then
285
            oJSON.data("emsgSummary") = "EnableProject"
286
            oJSON.data("emsgDetails") = "Invalid State"
287
            Exit Sub
288
        End If
289
 
290
        objEH.ErrorRedirect = FALSE
291
        objEH.TryORA ( OraSession )
292
        On Error Resume Next
293
 
294
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
295
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
296
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
297
        OraDatabase.Parameters.Add "STATE",             parState,       ORAPARM_INPUT, ORATYPE_NUMBER
298
 
299
        SqlQry = "UPDATE BLAT_RELEASES SET BR_ENABLED = :STATE where BLAT_ID = :SERVER_ID and RTAG_ID = :RTAG_ID"
300
        OraDatabase.ExecuteSQL SqlQry
301
 
302
        OraDatabase.Parameters.Remove "USER_ID_LIST"
303
        OraDatabase.Parameters.Remove "RTAG_ID"
304
        OraDatabase.Parameters.Remove "SERVER_ID"
305
        OraDatabase.Parameters.Remove "STATE"
306
 
307
        objEH.CatchORA ( OraSession )
308
        result = 0
309
 
310
    Else
311
        oJSON.data("emsgSummary") = "EnableProject"
312
        oJSON.data("emsgDetails") = "Insufficient arguments"
313
    End If
314
 
315
End Sub
316
'-------------------------------------------------
317
' Function:    RemoveRelease
318
' Description: Remove a Release Replica for a specified target
319
'              server_id - Id of the BLAT replica server
320
'              user_id - user_id requesting the operation
321
'              rtag_id - rtag_id of the release entry to modify
322
Sub RemoveRelease
323
 
324
    Dim  parServerId : parServerId = QStrPar("server_id")
325
    Dim  parUserId : parUserId = QStrPar("user_id")
326
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
327
 
328
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" Then
329
 
330
        objEH.ErrorRedirect = FALSE
331
        objEH.TryORA ( OraSession )
332
        On Error Resume Next
333
 
334
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
335
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
336
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
337
 
338
        SqlQry = "DELETE FROM BLAT_RELEASES where BLAT_ID = :SERVER_ID and RTAG_ID = :RTAG_ID"
339
        OraDatabase.ExecuteSQL SqlQry
340
 
341
        OraDatabase.Parameters.Remove "USER_ID_LIST"
342
        OraDatabase.Parameters.Remove "RTAG_ID"
343
        OraDatabase.Parameters.Remove "SERVER_ID"
344
 
345
        objEH.CatchORA ( OraSession )
346
        result = 0
347
 
348
    Else
349
        oJSON.data("emsgSummary") = "EnableProject"
350
        oJSON.data("emsgDetails") = "Insufficient arguments"
351
    End If
352
 
353
End Sub
354
'-------------------------------------------------
355
' Function:    AddRelease
356
' Description: Add a Release Replica for a specified target
357
'              server_id - Id of the BLAT replica server
358
'              user_id - user_id requesting the operation
359
'              rtag_id - rtag_id of the release entry to modify
360
Sub AddRelease
361
 
362
    Dim  parServerId : parServerId = QStrPar("server_id")
363
    Dim  parUserId : parUserId = QStrPar("user_id")
364
    Dim  parRtagId : parRtagId = QStrPar("rtag_id")
365
 
366
    If parServerId <> "" AND parUserId<> "" AND parRtagId <> "" Then
367
 
368
        objEH.ErrorRedirect = FALSE
369
        objEH.TryORA ( OraSession )
370
        On Error Resume Next
371
 
372
        OraDatabase.Parameters.Add "USER_ID",           parUserId,      ORAPARM_INPUT, ORATYPE_NUMBER
373
        OraDatabase.Parameters.Add "RTAG_ID",           parRtagId,      ORAPARM_INPUT, ORATYPE_NUMBER
374
        OraDatabase.Parameters.Add "SERVER_ID",         parServerId,    ORAPARM_INPUT, ORATYPE_NUMBER
375
 
376
        SqlQry = "INSERT INTO BLAT_RELEASES (BLAT_ID,rtag_id) VALUES( :SERVER_ID, :RTAG_ID)"
377
        OraDatabase.ExecuteSQL SqlQry
378
 
379
        OraDatabase.Parameters.Remove "USER_ID_LIST"
380
        OraDatabase.Parameters.Remove "RTAG_ID"
381
        OraDatabase.Parameters.Remove "SERVER_ID"
382
 
383
        objEH.CatchORA ( OraSession )
384
        result = 0
385
 
386
    Else
387
        oJSON.data("emsgSummary") = "EnableProject"
388
        oJSON.data("emsgDetails") = "Insufficient arguments"
389
    End If
390
 
391
End Sub
392
 
393
%>