Subversion Repositories DevTools

Rev

Rev 5506 | Rev 5925 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 5506 Rev 5902
Line 21... Line 21...
21
<%
21
<%
22
'------------ ACCESS CONTROL ------------------
22
'------------ ACCESS CONTROL ------------------
23
%>
23
%>
24
<!--#include file="_access_control_login.asp"-->
24
<!--#include file="_access_control_login.asp"-->
25
<!--#include file="_access_control_general.asp"-->
25
<!--#include file="_access_control_general.asp"-->
26
<!--#include file="_access_control_project.asp"-->
-
 
27
<%
26
<%
28
'------------ Variable Definition -------------
27
'------------ Variable Definition -------------
29
Dim ProblemsString
28
Dim ProblemsString
30
Dim OverideWarnings
29
Dim OverideWarnings
-
 
30
Dim bCanDelete
31
'------------ Constants Declaration -----------
31
'------------ Constants Declaration -----------
32
'------------ Variable Init -------------------
32
'------------ Variable Init -------------------
33
ProblemsString = NULL
33
ProblemsString = NULL
-
 
34
bCanDelete = FALSE
34
 
35
 
35
OverideWarnings = "N"
36
OverideWarnings = "N"
36
If InStr( 1, Request("btn"), "YES", 1 ) > 0 Then OverideWarnings = "Y"
37
If InStr( 1, Request("btn"), "YES", 1 ) > 0 Then OverideWarnings = "Y"
37
 
-
 
38
'----------------------------------------------
38
'----------------------------------------------
39
%>
39
%>
40
<%
40
<%
41
Sub DestroyPackage ( nPvId, cOverrideWarnings, outProblemsString )
41
Sub DestroyPackage ( nPvId, cOverrideWarnings, outProblemsString )
42
 
42
 
Line 60... Line 60...
60
 
60
 
61
   OraDatabase.Parameters.Remove "PV_ID"
61
   OraDatabase.Parameters.Remove "PV_ID"
62
   OraDatabase.Parameters.Remove "OVERRIDE_WARNINGS"
62
   OraDatabase.Parameters.Remove "OVERRIDE_WARNINGS"
63
   OraDatabase.Parameters.Remove "PROBLEM_STRING"
63
   OraDatabase.Parameters.Remove "PROBLEM_STRING"
64
End Sub
64
End Sub
-
 
65
 
-
 
66
'-------------------------------------------------
-
 
67
' Function:    CanDestroyPackage
-
 
68
' Description: Determine if the user can Destroy the specified Package
-
 
69
'              Match code in _version_browser
-
 
70
'
-
 
71
Function CanDestroyPackage(SSpv_id)
-
 
72
    Dim sqlStr, rsTemp
-
 
73
    CanDestroyPackage = FALSE
-
 
74
 
-
 
75
    sqlStr =    " SELECT PV.PV_ID," &_
-
 
76
                "   PV.PKG_VERSION," &_
-
 
77
                "   PV.DLOCKED," &_
-
 
78
                "   PV.MODIFIED_STAMP," &_
-
 
79
                "   pv.CREATOR_ID," &_
-
 
80
                "   pv.OWNER_ID," &_
-
 
81
                "   NVL2(rc.rtag_id,1,0) as inuse," &_
-
 
82
                "   trunc(SYSDATE - pv.CREATED_STAMP + 0.5) as age" &_
-
 
83
                " FROM PACKAGE_VERSIONS PV," &_
-
 
84
                "      RELEASE_CONTENT rc" &_
-
 
85
            	" WHERE pv.PV_ID = :PV_ID" &_
-
 
86
                "   AND pv.pv_id = rc.pv_id(+)"
-
 
87
 
-
 
88
   OraDatabase.Parameters.Add "PV_ID", SSpv_id,   ORAPARM_INPUT, ORATYPE_NUMBER
-
 
89
   set rsTemp = OraDatabase.DbCreateDynaset( sqlStr, cint(0))
-
 
90
   If rsTemp.RecordCount <> 0 Then
-
 
91
 
-
 
92
    ' User can try to delete package iff
-
 
93
    '   Have suffiecient access (unusual)
-
 
94
    '   They created it or own it
-
 
95
    '   The version is not in use by any release (allow to be in pending or WIP)
-
 
96
    '   [Not at the moment] The package was created less than xxxx days ago
-
 
97
    '   Is not locked or Approved for Autobuild
-
 
98
        If  (objAccessControl.UserId = rsTemp("CREATOR_ID")) OR (objAccessControl.UserId = rsTemp("OWNER_ID")) Then
-
 
99
            If rsTemp("inuse") = 0 Then
-
 
100
                'If rsTemp("age") < 1000 Then
-
 
101
                    If rsTemp("dlocked") <> "Y" Then
-
 
102
                        'If rsTemp("dlocked") <> "A" Then
-
 
103
                            CanDestroyPackage = true
-
 
104
                        'End If
-
 
105
                    End If
-
 
106
                'End If
-
 
107
            End If
-
 
108
        End If
-
 
109
    End If
-
 
110
   OraDatabase.Parameters.Remove "PV_ID"
-
 
111
   rsTemp.Close
-
 
112
   Set rsTemp = nothing
-
 
113
 
-
 
114
End Function
65
%>
115
%>
66
<%
116
<%
67
'-----------------------  MAIN LINE  ---------------------------
117
'-----------------------  MAIN LINE  ---------------------------
68
 
118
 
69
' Setup persistance object
119
' Setup persistance object
Line 76... Line 126...
76
Call objPMod.StoreParameter ( "FLuser_name", Request("FLuser_name") )
126
Call objPMod.StoreParameter ( "FLuser_name", Request("FLuser_name") )
77
Call objPMod.StoreParameter ( "FLpkg_version", Request("FLpkg_version") )
127
Call objPMod.StoreParameter ( "FLpkg_version", Request("FLpkg_version") )
78
Call objPMod.StoreParameter ( "FLpkg_version", Request("FLpkg_version") )
128
Call objPMod.StoreParameter ( "FLpkg_version", Request("FLpkg_version") )
79
Call objPMod.StoreParameter ( "listby", Request("listby") )
129
Call objPMod.StoreParameter ( "listby", Request("listby") )
80
 
130
 
-
 
131
'
-
 
132
'   Ensure that the user can destroy the package
-
 
133
'   The user is known to be logged in
-
 
134
'   This page is not always called in the context of a 'Release'
-
 
135
'       ie: When called from the history page displayed from the Dangling Package Versions
-
 
136
'
-
 
137
'  Allow to proceed 
-
 
138
'       If the user can perform any action in the project
-
 
139
'       OR the package looks like they created it and it not in use
-
 
140
'
-
 
141
bCanDelete = canShowControlInProject ( "DestroyPackage" )
-
 
142
If NOT bCanDelete Then
-
 
143
    bCanDelete = CanDestroyPackage(objPMod.GetParamValue("pv_id"))
-
 
144
End If
-
 
145
 
-
 
146
If NOT bCanDelete Then
-
 
147
 Call RaiseMsg(enum_MSG_ERROR, "You do not have access to delete this version of the package")
-
 
148
End If
-
 
149
 
-
 
150
 
81
If objPMod.GetParamValue("pv_id") Then
151
If objPMod.GetParamValue("pv_id") Then
82
 
152
 
83
   If (DaemonInstructionPreventsEditing(Request("rtag_id"), Request("pv_id"))) Then
153
   If (DaemonInstructionPreventsEditing(Request("rtag_id"), Request("pv_id"))) Then
84
      Call RaiseMsg(enum_MSG_ERROR, "This package version has one or more daemon instructions present.<br><br>"&_
154
      Call RaiseMsg(enum_MSG_ERROR, "This package version has one or more daemon instructions present.<br><br>"&_
85
                                    "Please delete them or allow them to be consumed before attempting to delete the package version.")
155
                                    "Please delete them or allow them to be consumed before attempting to delete the package version.")