Controllare Cancellazione Cartelle

 

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:

 

  • un oggetto comune a tutti i moduli che rappresenterà la cartella di testplan selezionata
  • una funzione booleana che ritornerà alla chiamante (ActionCanExecute) il risultato dei controlli. True: la cancellazione può essere effettuata; False: la cancellazione è inibita e verrà emesso un popup di informazione

 

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

 

 

Pag: <<    <    >    >>