Supprimer un document

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Supprimer un document

Messagepar Christian Delval » 12 Nov 2014 à 10:05

Bonjour

J'ai une base avec des documents (bien sûr). Les utilisateurs n'ont pas le droit de supprimer des documents de cette base selon la LCA.

J'aimerai que si un document a le champ MTNState égal à "$Created$", l'utilisateur puisse supprimer ce document.

Comment faire ?

Merci.

Christian
Développeur, administrateur de bases de données.
Christian Delval
Premier posts
Premier posts
 
Message(s) : 31
Inscrit(e) le : 11 Sep 2014 à 08:43

Re: Supprimer un document

Messagepar Jérôme Deniau » 12 Nov 2014 à 11:31

Créer un agent planifié

Avoir un bouton "Supprimer" pour l'utilisateur, ce bouton met un champ style ASupprimer="1" et l'agent supprime les documents ayant un champ Supprimer à"1" et s'exécute avec les droits de niveau 3 (sécurité) pour le compte de "LocalDomainServers" ou d'un compte ayant les droits de suppression.

modifier les vues pour que les vues n'affichent pas les documents ayant un champ "ASupprimer" exemple select !@Isavailable(ASupprimer)
Avatar de l’utilisateur
Jérôme Deniau
Maître-posteur
Maître-posteur
 
Message(s) : 497
Inscrit(e) le : 08 Mars 2013 à 09:52
Localisation : Rennes (Bretagne à l'Ouest de la France)

Re: Supprimer un document

Messagepar Christian Delval » 19 Nov 2014 à 11:03

Merci Jérôme !

J'ai finalement écrit ce petit script de la base et placé les utilisateurs avec le droit de supprimer des documents. L'avantage c'est qu'ils ne peuvent supprimer qu'un seul type de document les Brouillons.

Code : Tout sélectionner
Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
   Dim droppedDocuments As NotesDocumentCollection
   Dim doc As NotesDocument
   Continue = True
   If Source.Database.CurrentAccessLevel  = ACLLEVEL_MANAGER Then
      Exit Sub
   End If
   Continue = True
   Set droppedDocuments = Source.Documents
   Set doc = droppedDocuments.GetFirstDocument ()
   Do Until doc Is Nothing
      If doc.MTNState(0) <> "$created$" Then
         Continue = False
         Messagebox    Msg_MayNotDelete$ , MB_OK+48,  Msg_Motown$
         Exit Do
      End If
      Set doc = droppedDocuments.GetNextDocument (doc)
   Loop
End Sub
Développeur, administrateur de bases de données.
Christian Delval
Premier posts
Premier posts
 
Message(s) : 31
Inscrit(e) le : 11 Sep 2014 à 08:43

Re: Supprimer un document

Messagepar Dominux » 19 Nov 2014 à 14:00

Une solution sans script aurait été de mettre les utilisateurs en Auteur avec un rôle [Delete] et de placer un champ auteur avec ce rôle pour les documents avec $Created$.
Cordialement,
Olivier (www.dominux.fr et sur Twitter)
Image
Avatar de l’utilisateur
Dominux
Administrateur
Administrateur
 
Message(s) : 1201
Inscrit(e) le : 16 Déc 2004 à 10:56
Localisation : Nantes


Retour vers Développement