CAML Query – Attribut Membership


Bonjour à tous,

Aujourd’hui je vais vous parler d’un attribut des CAML query, l’attribut « membership ». Cet attribut permet notamment de faire des requêtes sur les groupes de l’utilisateur courant !

Si nous regardons la documentation msdn , nous voyons qu’il y a 5 paramètres différents possibles. Cependant cette documentation n’est pas très détaillée. Le but de cet article est de détailler les différentes possibilités.

Nous allons voir ces différentes possibilités au travers de tests.

Voici les paramètres utilisé pour les tests qui vont être effectués :

Arborescence :

RootSite de type « TeamSite »

Susbsite de type « TeamSite »

Groupes et utilisateurs :

Les tests ont été effectués sur le subsite. Le site a été créé en héritant de la sécurité du parent, ensuite la sécurité a été brisée et un nouveau groupe « subtestgroup » a été créé.

  • Groupes :
    • Test Owners
    • Test Members
    • Subtestgroup
  • Utilisateurs :
    •  User 1 :
      • utilisateur courant
      • membre des groupes “Test Owners” et “subtestgroup”
    • User 2
      • droits attribués directement sur le subtestsite.

Query :

<Membership Type= » »{0} » »>

<FieldRef Name= » »AssignedTo » »/>

</Membership>

Le 0 étant remplacé par les différents paramètres.

Liste et tâches ciblées:

Liste de tâche standard. Les tâches suivantes ont été créées.

  • T1 assignée a user1
  • T2 assignée a test owners
  • T3 assignée a subtestgroup
  • T4 assignée a user2
  • T5 assignée a test members

Voila pour les paramètres, passons aux tests !

1) SPWeb.AllUsers :

Cette valeur permet de cibler les tâches assignées à des utilisateurs (et non à des groupes)

Résultat du test : T1 et T4

2 ) SPGroup :

En utilisant ce paramètre, il faut ajouter un paramètre ID avec L’ID du groupe souhaité. Ce paramètre renverra la liste des tâches assignées aux membres de ce groupe.

Le test va être effectué en utilisant les ID des groupes « tests members » (ID 7, groupe vide) et « test owners » (ID 5, contenant User 1)

Si nous changeons la query utilisée par celle-ci

<Membership Type= » »SPGroup » » ID=”7”>

<FieldRef Name= » »AssignedTo » »/>

</Membership>

Résultat du test : aucune tâches

Test avec ID 5

Résultat du test : T1

3 ) SPWeb.Groups :

Les tâches assignées au groupe de la site collection apparaitront mais pas les tâches assignées aux groupes spécifique au site

Résultat du test : T2 et T5

4 ) CurrentUserGroups :

Les taches assignées au groupe de l’utilisateur courant apparaitront mais pas les tâches assignées directement à l’utilisateur.

Résultat du test : T2 et T3

5 ) SPWeb.Users :

Les tâches assignées aux utilisateurs ayant reçu des droits sur le site directement (pas au travers d’un groupe).

Résultat du test : T4

 

Voilà !

En espérant que ça aide!

Christopher.

Cet article, publié dans SharePoint 2010, est tagué , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s