Page 1 sur 2

Déterminer les documents auxquels a accès un user donné ?

MessagePublié: 22 Oct 2007 à 12:46
par YoGi
Bonjour,

On réfléchit à mettre en place un système d'abonnement sur une appli Domino dont les documents contiennent des restrictions en lecture et/ou en écriture très variables.

Le problème qui se pose est le suivant : comment connaître, pour un utilisateur de l'appli donné, les documents auxquels il a accès ? L'idée étant de boucler sur tous les utilisateurs de l'appli (un ou 2 groupes clairement identifiés) et de leur envoyer un mail personnalisé avec des liens vers les documents auxquels ils ont accès.

La difficulté est que dans les champs lecteur, il peut y avoir des noms, mais aussi des groupes, ou des groupes imbriqués.

Alors il y a bien la méthode bête et méchante qui consisterait à s'assurer que le nom de l'utilisateur est présent dans ces champs et, s'il s'agit de groupes, de le recherche dedans récursivement, mais ça me semble un peu violent pour un besoin qui finalement est assez commun et que beaudoup ont du rencontrer.

Une autre solution (que je préfèrerait) serait de créer une session en tant que l'utilisateur (en Java, par DIIOP, avec NotesFactory.createSession()), malheureusement cela requiert de connaitre son mot de passe internet (ou d'avoir un token LTPA, mais la problématique reste la même)).

Enfin, une troisième piste est le "Run agent on behalf of", le seul soucis est que cette valeur n'est pas - que je sache - "programmatiquement" modifiable ; en cas de changement par programmation, à l'exécution un msg d'erreur est retourné comme quoi cette valeur a été altérée, etc.. Je n'ai pas essayé de le faire via DXL (je vais m'y mettre de ce pas), mais je doute que ça marche mieux.

Bref, je ne sais pas trop quoi penser de tout ça.

Si vous avez des pistes et/ou des conseils, je suis preneur !

Merci d'avance.

MessagePublié: 22 Oct 2007 à 12:51
par Stephane Maillard
Salut,

Une idée passer par API's et regarder les users autorisé (tu sais la petite coche de l'avant dernier onglet)

MessagePublié: 22 Oct 2007 à 12:55
par YoGi
Merci stéphane,

tu parles de ça (cf image) ? Parce que si oui, je ne vois pas ce que je peux faire avec.

quant à l'API C, je ne connais pas du tout donc ce n'est pas trop une solution envisageable pour moi :?

MessagePublié: 22 Oct 2007 à 13:03
par Stephane Maillard
Re,

Oui c'était à ça que je pensais, dans le coeur même du masque ou autre tu as un champs système ou il y à les users/groups autorisé.

MessagePublié: 22 Oct 2007 à 13:04
par Michael DELIQUE
salut

petit question pourquoi tu écris pas directement aux groupes ? il faut que le nom de l'utilisateur soit en claire dans le mail ?

MessagePublié: 22 Oct 2007 à 13:10
par YoGi
Michael DELIQUE a écrit:petit question pourquoi tu écris pas directement aux groupes ? il faut que le nom de l'utilisateur soit en claire dans le mail ?


pas nécessairement, mais si tu veux, les droits sont tellement variés dans chaque document que chaque utilisateur a une vision différente des nouvelles publications.
et il est hors de question d'envoyer un mail "commun" où des gens auraient des liens qui les amèneraient à un "vous n'êtes pas habilités à consulter la ressource demandée".
donc ça oblige à traiter les personnes individuellement.

MessagePublié: 22 Oct 2007 à 13:11
par YoGi
Stéphane Maillard a écrit:Re,

Oui c'était à ça que je pensais, dans le coeur même du masque ou autre tu as un champs système ou il y à les users/groups autorisé.


Je ne te suis vraiment pas là Stéphane.
Désolé de faire mon assisté, mais tu peux m'en dire un peu plus ?

MessagePublié: 22 Oct 2007 à 13:35
par amahi
J ai a peu pres la meme problematique que toi.
J ai reussi a organisé mes utilisateurs en profils (maximum une quinzaine de groupes dans les gros projets).
A chaque depot de documents je creer un "log" qui donne les infos concernant le document et nottament le profil utilisateur adequat.
Ensuite je genere a partir de ces documents de log une notification pour chacun des profils. A savoir que j interdit l imbrication des groupes dans l application pour eviter de faire trop de noeud.


Si j ai bien compris ce que tu veu faire, ce serait de simuler un pull des users .
Le seul truc que je pourrait dire pour aller dans ton sens c est bon courage ^^.
Si via DXL tu peut creer des agents privés c est peut etre jouable, mais tu va te retrouvé avec un floppé d agents!

MessagePublié: 22 Oct 2007 à 15:34
par YoGi
bon, ce qui me rassure c'est qu'apparemment ce n'est pas un problème si simple que ça, et que je ne suis pas passé à coté d'une évidence :)

sinon on peut modifier la valeur du "run on behalf of" par DXL en supprimant et recréant l'agent (faille de sécurité ? peut-être), donc suffit de faire ça d'ouvrir des vues et d'envoyer des mails en boucle, et ça devrait le faire. mes premiers tests sont en tout cas concluants.

merci pour le coup de main.

MessagePublié: 22 Oct 2007 à 16:14
par amahi
Si ce n est pas trop top secret, tu pourrais en faire un tips. Je t avoue que mon système est loin d'etre parfait (il arrive que des users recoivent 2 mails de notifications car il se retrouvent dans 2 profils differents).

MessagePublié: 22 Oct 2007 à 16:33
par YoGi
Là je n'ai pas un truc qui marche à proprement parler, j'ai juste validé le concept. Tout en sachant que ça repose sur une configuration serveur particulière (en outre, tous les users de l'annuaire doivent pouvoir exécuter des agents).
Cela dit, ce n'est peut-être pas moi qui vais le développer... Et les bouts de code que j'ai à droite à gauche n'ont pas trop d'intérêt.
Si j'ai quelque chose de plubiable je le ferai :)

MessagePublié: 22 Oct 2007 à 19:16
par roubech
Salut YoGi,

juste une idée comme ça, j'ai pas encore eu l'occasion de regarder comment fonctionne la génération de flux RSS dans les nouveaux template comme le blog de la V7
mais plutôt que de pousser la liste aux utilisateurs, tu ne pourrais pas leur fournir un flux RSS auquel ils s'abonneraient. dans ce cas, c'est leur compte utilisateur qui se connecte ...
(ca me fait penser à la base headline.nsf qu'on avait avant qu'on invente le RSS)

Thierry

MessagePublié: 22 Oct 2007 à 22:54
par YoGi
Ouais non c'est pas trop possible, pour des raisons d'authentification plus qu'autres choses. Et aussi parce qu'Outlook ne lit pas les RSS, à ma connaissance.

MessagePublié: 23 Oct 2007 à 16:24
par YoGi
Juste pour vous tenir au jus.
J'ai implémenté une bonne partie du truc.
Jusqu'à présent, ça marche très bien :)

Difficile d'en faire un tips en l'état car le code est un peu éparpillé et très lié à l'application, mais si y'a un bout qui vous intéresse particulièrement, faites moi signe.

MessagePublié: 23 Oct 2007 à 16:52
par amahi
Disons que modifier un element de structure via DXL m interesse plus particulirement alors ;-)