Page 1 sur 2

Sécuriser et filtrer un groupe

MessagePublié: 20 Nov 2003 à 09:01
par Gene76
Hello, nous devons sécuriser un groupe dans le CA en permettant uniquement à certaines personnes (Direction..) ou groupe d'utiliser cet autre groupe en messagerie.Est-ce possible en Domino 6 ? cette option existe-t-elle ??merci

Re: Sécuriser et filtrer un groupe

MessagePublié: 20 Jan 2004 à 16:52
par Yteewt
Tu va dans le PAB (CA) tu fait un clique droit sur le groupe a securisé tu choisi "Propriete du document" tu va sur l'onglet avec la clé et la tu decoche "tous le utilisateur ayant au moins l'accès lecteur" et en dessous tu coches toutes le personnes qui doivent avoir accès en visu a ce groupe.tu a le bonnome bleu pour ajouter des personne ou groupe sur la droite de l'ecran

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 10:14
par oguruma
oui c'est juste...mais ces personnes connaissent l'ortographe complet du groupe et que ce dernier est saisi manuellement, le message est envoyé sans aucune restriction. J'ai été confronté à ce pb en V5 et j'ai été amené à développé un LS pour "brider" l'envoi de message à certains groupes. En gros la méthode1/ il faut modifier la structure du NAB, masque Groupe2/ ajouter la liste des personnes autorisées à écrire à ce groupe3/ intervenir dans l'agent chargé d'envoyé le message et y insérer une procédure qui va tester le contenu du champ SendTo, détecté si les destinataires sont des groupes et vérifier si ce groupe comportent des restriction. J'avais convenu : si le champ utilisateurs autorisé était vide alors aucun blocage ; dans la négative je vérifiais que l'utilisateur était bien présent dans cette liste. petite restriction : afin de rester simple dans le groupe d'utilisateurs, on ne mettait que des noms d'utilisateurs ou voir un seul niveau de groupes (pas de groupe de groupe afin)je poste le code dans les réponses suivantes afin de ne trop charger ce message

Le code... Agent Initial

MessagePublié: 21 Jan 2004 à 10:22
par oguruma
Attention : ceci a été développé pour un client V4 - serveur V5 - structure de mail46le mail46.ntf a été mis en cascade avec un modèle d'entreprise personnaliséagent : $FNRFEnvoyer@If(@Trim(@Environment("FNRFControlSendTo"))="NOK";@Return(@False);@True);PromptValue := @If(DefaultMailSaveOptions = "2"; @Prompt([YESNOCANCEL];"Enregistrer à l\'envoi"; "Voulez-vous enregistrer une copie de ce mémo ?"); DefaultMailSaveOptions);SaveOptions := @If(PromptValue = -1; @Return(SaveOptions); @Text(PromptValue));FIELD tmpAction := @If(DefaultMailSaveOptions = "1"; "Mailing"; @DeleteField);FIELD MailOptions := @DeleteField;@If(@Command([MailSend]); ""; @Return(0));FIELD tmpAction := @If(SaveOptions = "1"; "SendAndFile"; "Send");@If(@PostedCommand([FileSave]); ""; @Return(0));@PostedCommand([FileCloseWindow]);@All;@All

Envoyer classer

MessagePublié: 21 Jan 2004 à 10:24
par oguruma
@If(@Trim(@Environment("FNRFControlSendTo"))="NOK";@Return(@False);@True);FIELD tmpAction := @If(DefaultMailSaveOptions = "1"; "Mailing"; @DeleteField);FIELD MailOptions := @DeleteField;@If(@Command([MailSend]); @True; @Return(0));FIELD tmpAction := "SendAndFile";@If(@PostedCommand([FileSave]); @True; @Return(0));@If(@PostedCommand([Folder]); @True; @Return(@False));@PostedCommand([FileCloseWindow])

Envoyer classer corbeille

MessagePublié: 21 Jan 2004 à 10:24
par oguruma
$FNRFEnvoyerClasserCorbeille@If(@Trim(@Environment("FNRFControlSendTo"))="NOK";@Return(@False);@True);FIELD tmpAction := @If(DefaultMailSaveOptions = "1"; "Mailing"; @DeleteField);FIELD MailOptions := @DeleteField;@If(@Command([MailSend]); @True; @Return(0));FIELD tmpAction := "SendAndFile";@If(@PostedCommand([FileSave]); @True; @Return(0));@Command( [Folder] ; "($Trash)"; "1");@PostedCommand([FileCloseWindow])

ControlSendTo

MessagePublié: 21 Jan 2004 à 10:27
par oguruma
$FNRFControlSendToOption PublicUse "FNRFControlSendToLib"Sub Initialize Call ControlSendTo Print "Contrôle des destinataires effectué"End Sub

Lib ControlSendToLib

MessagePublié: 21 Jan 2004 à 10:28
par oguruma
Synopsis de base de documents Lotus Notes - créé à 10:03:10 le 21/01/2004Informations de bibliothèque de codesNom : FNRFControlSendToLibDernière modification : 27/02/2003 12:22:49Code LotusScript :Option PublicConst VIMGROUPS ="($VIMGroups)"Const NAB="Names.NSF"Dim Ws As NotesUIWorkSpaceDim Session As NotesSessionDim Db As NotesDatabaseDim Note As NotesDocumentDim UIDoc As NotesUIDocumentDim DbAddressBook As NotesDatabaseDim SendField (1 To 3) As StringDim Zone (1 To 3) As StringDim ItemSendTo As NotesItemDim ViewVIMGroups As NotesViewDim DocVIMGroups As NotesDocumentDim DocAccessGroups As NotesDocumentDim CommonUser As StringDim UserName As StringSub InitializeEnd SubSub ControlSendTo Dim OkSendTo (1 To 3) As Integer Dim FieldOK As Integer Dim I As Integer REM Init de l'environnement Call InitArraySendTo Call GetVIMObject REM pour forcer le optimizedAddress Call uidoc.refresh REM Analyse des champs SendTo, CopyTo, BlindCopyTo For I=1 To 3 Print "Analyse des destinataires du message" If Note.HasItem(SendField(I)) Then Set ItemSendTo=Note.GetFirstItem(SendField(I)) If Trim$(ItemSendTo.Text)<>"" Then REM On Analyse les destinataires du message OkSendTo(I)=ProcessField(I) REM Vrai : les destinataires sont autorisés REM Faux : un des destinataires n'est pas autorisé Else REM dans ce cas la zone est correcte OkSendTo(I)=True End If End If Next I REM Pour envoyer le message les trois zones doivent être correctes FieldOK= OkSendTo(1) And okSendTo(2) And OkSendTo(3) REM On enregistre dans le Notes.INI afin de récupérer la valeur de la variable dans l'agent If FieldOK Then REM On met 1 : on est autorisé à envoyer le message Call Session.SetEnvironmentVar( "FNRFControlSendTo", "OK",False ) Else REM On met 0 : on n'est pas autorisé à envoyer les message Call Session.SetEnvironmentVar( "FNRFControlSendTo", "NOK",False ) End IfEnd SubFunction ProcessField (C As Integer) As Integer Dim Ret As Integer Dim K As Integer Dim Dest As Variant Dim NewDest As String Dest=ItemSendTo.Values Ret=True For K=0 To Ubound(Dest) Print "Vérification en cours pour ";Dest(K) REM Il faut vérifier si c'est un groupe If IsGroup(Dest(K)) Then REM Il faut vérifier si présence d'une liste de personnes autorisées à utiliser ce groupe If HaveControlAccessList() Then REM L'utilisateur est-il dans cette liste If Not Autorized () Then Messagebox Zone(C) & " - Vous n'êtes pas autorisé à écrire au groupe " & Dest(K),48,"Envoyer - " & ItemSendTo.Name Ret=False Dest(K)="" End If End If End If' If Dest(k)<>"" Then ' NewDest=NewDest+Dest(k)+","' End If Next K ' Call UIDoc.FieldSetText( ItemSendTo.Name, NewDest) Fin: ProcessField=RetEnd FunctionFunction Autorized () As Integer Dim Ret As Integer Dim N As NotesName Dim Nc As String Ret=False Forall M In DocVIMGroups.FNRFAccessControl Set N=New NotesName(M) Nc=N.Common If Nc = CommonUser Then Ret=True Exit Forall Else REM C'est sans doute un groupe, on vérifie si l'utilisateur y figure If IsMemberGroup(M) Then Ret=True Exit Forall End If End If End Forall Autorized=RetEnd FunctionFunction IsGroup (Grp As Variant) As Integer Dim N As NotesName Set N=New NotesName(Grp) Set DocVIMGroups=ViewVIMGroups.GetDocumentByKey(N.Common) If DocVIMGroups Is Nothing Then IsGroup=False Else IsGroup=True End IfEnd FunctionSub InitArraySendTo SendField(1)="SendTo" SendField(2)="CopyTo" SendField(3)="BlindCopyTo" Zone(1)="Champ Pour :" Zone(2)="Champ CC :" Zone(3)="Champ CCC :"End SubSub GetVIMObject Set Ws=New NotesUIWorkSpace Set Session=New NotesSession Set Db=Session.CurrentDatabase Set UIDoc=Ws.CurrentDocument Set Note=UIDoc.Document Set DbAddressBook=New NotesDatabase(Db.Server,NAB) Set ViewVIMGroups=DbAddressBook.GetView(VIMGROUPS) CommonUser=Session.CommonUserName UserName=Session.UserNameEnd SubFunction HaveControlAccessList( ) As Integer If DocVIMGroups.HasItem("FNRFAccessControl") Then Set ItemFNRF=DocVIMGroups.GetFirstItem("FNRFAccessControl") If ItemFNRF.Text="" Then HaveControlAccessList=False Else HaveControlAccessList=True End If Else HaveControlAccessList=False End IfEnd FunctionFunction IsMemberGroup(M As String) As Integer Dim Ret As Integer Dim DocGrp As NotesDocument Dim ItemGrp As NotesItem Set DocGrp=ViewVIMGroups.GetDocumentByKey(M) REM ici on verifie si l'utilisateur fait parti des personnes autorisées dans un groupe spécifique If DocGrp Is Nothing Then Ret=False Else Set ItemGrp=DocGrp.GetFirstItem("Members") If ItemGrp Is Nothing Then Ret=False Else If ItemGrp.Contains(UserName) Then Ret=True Else Ret=False End If End If End If IsMemberGroup=RetEnd Function

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 14:42
par oguruma
oubli :en V5 intervenir sur l'action partagée Envoyer dont le code estMEMO_SEND:="1024";FIELD ActionInProgress:=MEMO_SEND;@If(@Command([FileSave]);@Command([FileCloseWindow]);@Return(""))

Code de l'action dans le masque

MessagePublié: 21 Jan 2004 à 14:53
par oguruma
autre oubli (de taille)REM "Contrôle des destinataires";@Command([ToolsRunMacro];"($FNRFControlSendTo)");REM "envoi du courrier";@Command([ToolsRunMacro];"($FNRFEnvoyer)")$FNRFControlSendTo renseigne une variable dans le NOTES.INI à OK ou NOK afin d'autoriser l'envoi de maille contenu de cette variable est ensuite testé dans "l'agent initial"remarque : en v5 il faut placer ce code dans l'action partagée et revoir les enchaînements de macros mais.. y a rien de compliqué si tu es développeurbon si tu as des soucis... je peux t'aider

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 14:56
par lemm
Salut.J'aurais procédé différement...Ce fameux groupe n'aurait sûrement pas été dans le Carnet d'Adresses public mais dans un Carnet Perso (quitte à ce qu'il soit sur le serveur et répliqué en local pour être paramétré dans la liste des carnets dans les préférences utilisateurs). Comme ça je suis sûr que seuls ce qui sont concernés peuvent l'avoir (avec la LCA qui va bien au niveau de ce carnet annexe).Ou encore mais là c'est à confirmer (?) : si on met ce carnet dans la liste descarnet disponibles pour tout le monde (notes.ini du serveur) est-ce que via la LCA ce carnet est malgré tout disponible si on n'y à pas accès (qd on fait adresser et qu'on cherche à le sélectionner) ...Qu'en pensez-vous ??

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 15:09
par oguruma
ça mérite d'être testé...c'est aussi autant propriétaire que ma solutionje suis passé par cette solution car ça concerné tout les groupes du NAB (et CDC du client... donc on respecte !)la gestion, le contrôle des accès, les personnes autorisées devaient être centralisés

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 15:15
par oguruma
inconvénient : ça nécessite des intervention sur la station de l'utilisateur ou un truc du même genre, on perd l'aspect centralisation sur le plan administration et il y a le pb de la réplique sur poste utilisateurs... certains ne sont pas tjrs doués même si met des automatismes... donc c'est appel helpdesk etc...mais ta solution n'est pas idiote avec respect (je la garde de côté si j'ai besoin un jour dans l'urgence)

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 15:29
par lemm
En fait j'ai expérimenté grandeur nature...J'ai dû mettre en place un annuaire de certains contacts qui devait rester confidentiel pour l'ensemble des uitlisateurs.Donc, j'ai créé un annuaire sur le serveur (modèle:carnet d'Adresses Perso - pas besoin de plus, mais faut le relooker un minimum) et autant de répliques sur les postes en local (pour l'ajout dans les préférences utilisataurs) pour être séléctionnables uniquement par les utilisateurs référencés dans la LCA.mais c'est vrai qu'il faut gérer : une personne est chargée des maj surla base sur le serveur (celui qui comprend le mieux :)) ) et les autres doivent se mettre à jour de temps en temps en répliquant leur base en local.c'est vrai qu'ils sont tous pratiquement dans le même bureau...et puis celui qui voit qu'il n'a pas sa base à jour peut demander à ses collègues comment on fait (il cherche même à retenir pour pas passer pour un con la fois d'après :))) )Celà dit, si qqun à déja essayé le fait de mettre un carnet d'adresses annexe sur le serveur et de voir si la LCA "cale" ceux qui n'y ont pas accès...

Re: Sécuriser et filtrer un groupe

MessagePublié: 21 Jan 2004 à 22:26
par oguruma
Ouiai : (il cherche même à retenir pour pas passer pour un con la fois d'après :))) )==> j'ai connu les mêmes !trève de balivernes : je vais qd poster ma soluce pour le cas qqun serait intéressé à titre pédagogique