Requisito Utente
L'utente che NON ha il profilo Amministratore non deve poter cancellare le folder principali di Test Plan.
Soluzione Proposta
Inibire la possibilità di cancellare le folder figlie di Subject se l'utente NON è un Amministratore.
Quando l'utente è posizionato su una folder in testplan e seleziona il tasto di cancellazione viene controllato in quale parte dell'albero è posizionato e viene inibita la possibilità di cancellare la cartella se è figlia di "Subject".
_____________________________________________________________________________
Implementazione sul Prodotto
In questo caso sarà necessario, per rendere più pulito il codice, creare:
1. Dichiarazione oggetto objFold_TP a livello di Common Module
Dim objFold_TP
2. Gestione dell'oggetto.
2.1 Istanziare oggetto nell'evento MoveToSubject di TestPlan.
2.2 Distruzione oggetto negli eventi ExitModule (Common) e Test_MoveTo(Test Plan)
Sub MoveToSubject(Subject)
On Error Resume Next
set objFold_TP = Subject
On Error Goto 0
End Sub
Sub ExitModule
On Error Resume Next
if ActiveModule = "Test Plan" then set objFold_TP = Nothing
On Error Goto 0
End Sub
Sub Test_MoveTo
On Error Resume Next
set objFold_TP = Nothing
On Error Goto 0
End Sub
3. Richiamo funzione booleana quando viene selezionato il tasto di cancellazione
Function ActionCanExecute(ActionName)
On Error Resume Next
Dim Res
Res = True
if ActionName = "act_delete_folder" then
Res = Test_bolCanDeleteFolder 'Il nome della funzione booleana in TestPlan
end if
ActionCanExecute = Res
On Error Goto 0
End Function
'Funzione da inserire in Test Plan Module
Function Test_bolCanDeleteFolder
On Error Resume Next
Dim Res
Res = True
if Not(User.IsInGroup("TDAdmin")) then
'Controllo che ci sia posizionati al di sotto di Subject
if instr(objFold_TP.Path,"\") > 0 then
if Ubound(split(objFold_TP.Path,"\")) < 2 then
Res = False
end if
else
'Se l'utente è su Subject non può cancellare la cartella
Res = False
end if
end if
if Not(Res) then
msgbox "Cancellazione Folder NON Autorizzata", vbCritical + vbSystemModal, "Quality Center - Azione Inibita"
end if
Test_bolCanDeleteFolder = Res
On Error Goto 0
End Function