none
Gestion des autorisations des documents d'un site SharePoint 2010 basée sur les métadonnées RRS feed

  • Question

  • Bonjour,

    Je recherche le moyen de gérer les autorisations des documents d'un nouveau site SharePoint 2010 sur la base des métadonnées des documents.

    Chaque document possède une métadonnée de sa place boursière (PARIS, NY, TOKYO,....  25 places au total) et une seconde portant le type de document (contrat, assurance, PV, avenant, .... une centaine de type au total). Je souhaite définir des groupes d'utilisateurs avec les autorisations d'accès de leur périmètre : Ex : Groupe Asie1 peut accéder aux documents de TOKYO et HONG KONG de type contrat ou avenant uniquement. Groupe Paris2 peut accéder aux documents de PARIS mais que de type PV ou avenant,...

    Comment peut-on réaliser cela dans SharePoint 2010 sans positionner les autorisations document par document ce qui risque de poser un problème je jour où l'on souhaite faire une modification des habilitation d'un groupe et qu'il y a 100 mille documents dans la bases ?

    Merci pour vos conseils !

    lundi 17 mars 2014 10:55

Réponses

  • Bonjour

    voilà comment j'imaginerais la chose : 

    Effectivement pour gérer les permissions dans ce cas il faut "casser" l’héritage sur chaque document et donc positionner des droits uniques. Dès qu'il y a plus de 2 documents, il faut scripter/coder un système de maintenance automatique, sinon ça deviens ingérable.

    Donc la 1ere étape consisterai à mettre en place une liste custom permettant de stocker les "règles" de mapping entre la méta donnée (place boursiere) et le nom du groupe de droit à positionner en face. ça sera mieux que de le "hard coder" das la feature

    La 2nd étape consiste à ecrire un code C# prenant en entrée un item de liste (le document avec sa metadonnée) et qui va récupérer la valeur de la méta, chercher ds la liste de règles le droits, casser l'heritage des permissions si besoin, et mettre à jour les permissions. Tout cela est faisable avec le modèle objet de SharePoint ('coté serveur)

    La 3ieme étape consiste à ecrire un Event Receiver de liste à "l’écoute" des ajout et modification des documents (mode asynchrone : ItemAdded et ItemUpdated) et qui va pour chaque éléments appeler le code ecrit à l'étape 2. Cela permettra d'avoir une maintenance "automatique" des permissions au fil de l'eau

    La 4ieme étape sera d’écrire une feature de scope Web par exemple avec un FeatureReceiver associé. Cela pemettra à l'activation de la feature de parcourir l'ensemble des documents existants et de mettre à jour leurs permissions tjrs en utilisation le code de l'étape 2. L'idée ici est de disposer d'un outil d'initialisatiojn des permissions mais aussi de "remise à zéro des permissions" en cas de modification des règles (pour réapplikquer les nouvelles règles partout)

    Dans votre cas, c'est à mon sens le seul moyen efficace de maintenir les permissions , le code !

    Sans code il vous faudra réorganiser votre structure et faire en sorte par exemple de faire un sous site pour chaque place boursière et que les utilisateurs positionnent les documents dans ces différents sous sites en fonction de à qu'elle place boursière ils sont rattachés.  Ainsi les permissions seraient positionnées sur les sous site (manuellement) et donc rien à faire sur les documents.



    Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel

    dimanche 30 mars 2014 08:07