par oguruma » 19 Jan 2004 à 14:17
ci-dessous le source d'une application worflow que j'ai développé, voici comment tester les rôles et sortir si besoin.a adapter selon ton applije pense avoir été assez complet sur le sujet, y a plus qu'à...Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant) Dim doc As NotesDocument Dim modif As Variant Dim NN As NotesName Dim Item As NotesItem Set doc=source.document REM If PossedeRole("[Admin]") Then Exit Sub If Not IsNewDoc Then Set NN=New NotesName(Doc.Emetteur(0)) REM Si le document n'est pas validé, le lecteur n'a pas le droit de le consulter If PossedeRole("[Lecteur]") Then If Doc.VAL_MM(0)<>"OUI" Then Messagebox "La procédure n'est pas validée",16,"Sécurité - Lecture interdite" Continue=False Exit Sub End If End If REM On interdit la lecture aux anciennes procédures If PossedeRole("[Lecteur]") Then If Doc.EtatVersion(0)="Ancienne" Then Messagebox "Cette procédure n'est plus active ",16,"Sécurité - Lecture interdite" Continue=False Exit Sub End If End If REM Cas quand le rédacteur(stricte) consulte une ancienne dont il n'est pas l'auteur If PossedeRole("[Redacteur]") And Not PossedeRole("[Valideur]") And Not PossedeRole("[Responsable]") Then If Doc.EtatVersion(0)="Ancienne" Or Doc.EtatVersion(0)="Non Validé" Then If NN.Common<>Session.CommonUserName Then Messagebox "Vous n'êtes pas autorisé à lire document",16,"Sécurité - Lecture interdite" Continue=False Exit Sub End If End If End If REM Seul le rédacteur est autorisé à ouvrir le document quand celui-ci n'est pas envoyé If Session.CommonUserName<>NN.Common Then REM Si etat brouillon on refuse la lecture If Doc.Draft(0)="1" Then Messagebox "Le document est en cours de rédaction par " & NN.Common & ". La consultation est impossible",16,"Sécurité - Lecture interdite" Continue=False Exit Sub End If End If REM si la procédure est confidentielle, on refuse sa consulatation If Doc.VAL_MM(0)="OUI" And Doc.CONFIDENT(0)="3" Then Set Item=Doc.GetFirstItem("Auteurs") If Not (PossedeRole("[Admin]") Or PossedeRole("[Responsable]") Or PossedeRole("[Valideur]") Or Item.Contains(Session.CommonUserName)) Then Messagebox "Cette procédure possède un niveau de confidentialité élevé, vous n'êtes pas autorisé à la consulter",16,"Sécurité" Continue=False End If End If If Mode=1 Then REM Si le document n'est pas valide, pas de PB, l'acces en modif est gere par la LCA If Doc.VAL_MM(0)="NON" Then continue=True Else If Doc.EtatVersion(0)="Nouvelle" Then continue=False Messagebox "Vous ne pouvez pas modifier ce document car il est validé et en dernière version, vous devez créer une nouvelle version !",64,"Sécurité" Else Continue=False Messagebox "Vous ne pouvez pas modifier ce document car il est validé !" ,64,"Sécurité" End If End If End If End If End Sub
Bien à vous
http://www.dominoarea.org/oguruma/
Les téléphones PORTABLES dans les TGV y en a MARRRE de ces voyageurs qui ne respectent pas les autres ! ARRET DES PORTABLES SVP - Merci
Fumeurs ! respectez les non fumeurs !!!
Fumeurs ! respectez la loi de février 2007 et les lieux publics !!! (ie. hall de gares)