Meilleur auteur de réponses
SharePoint 2013 : Gestion des droits d'affichage sur un element de liste

Question
-
Bonjour à tous,
Voici ma question: Je possède une liste sharepoint de produit. Chaque produit fait partie d'un rayon. Je souhaiterais que les chefs de rayon ne voient que les lignes des produits appartenant à leur rayon. Et je souhaite que le responsable de magasin puisse voir tous les produits de la liste quel que soit le rayon.
Est il possible de faire cela? Peut etre que je n'utilise pas le bon vocabulaire, mais je n'ai rien trouvé à ce sujet. Si ce n'est pas possible quel serait la meilleure solution pour obtenir cela?
Merci d'avance.
P.S: Je n'ai pas de problème pour passer par du dev, mais est ce possible?- Modifié Julio bourbon lundi 6 janvier 2014 15:45
- Déplacé Gokan OzcifciMVP mardi 7 janvier 2014 13:21 DEV
Réponses
-
Bonjour
si j'ai bien compris votre demande ce n'est pas possible en natif. SharePoint ne gère pas des permissions en fonction de valeurs de champs.
par contre par code c'est jouable :
- sur votre liste de produit vous 'branchez' un "Event Handler", classe C# qui va etre invoquée par SharePoint à chaque fois qu'une création/modification est faite sur un des produits
- là en fonction de la valeur sur la colonne "rayon" associé au produit vous pouvez par code modifier directement les permissions de l'item pour que les bons groupes/personnes aient accès à ce produit
J'ai déjà fait la même chose sur une gestion de congés et ça marchais plutôt bien :
le congé est visible par le collab, son manager (on va le chercher dans l'AD) , ses RH.
Un point important et de mettre en place des traces précise de l'execution de ce "workflow" car en cas de plantage il faut détecter rapidement les elements qui n'ont pu etre sécurisé rapidement...
Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel
- Proposé comme réponse lionel limozin lundi 6 janvier 2014 17:46
- Marqué comme réponse Julio bourbon mardi 7 janvier 2014 10:53
Toutes les réponses
-
Bonjour
si j'ai bien compris votre demande ce n'est pas possible en natif. SharePoint ne gère pas des permissions en fonction de valeurs de champs.
par contre par code c'est jouable :
- sur votre liste de produit vous 'branchez' un "Event Handler", classe C# qui va etre invoquée par SharePoint à chaque fois qu'une création/modification est faite sur un des produits
- là en fonction de la valeur sur la colonne "rayon" associé au produit vous pouvez par code modifier directement les permissions de l'item pour que les bons groupes/personnes aient accès à ce produit
J'ai déjà fait la même chose sur une gestion de congés et ça marchais plutôt bien :
le congé est visible par le collab, son manager (on va le chercher dans l'AD) , ses RH.
Un point important et de mettre en place des traces précise de l'execution de ce "workflow" car en cas de plantage il faut détecter rapidement les elements qui n'ont pu etre sécurisé rapidement...
Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel
- Proposé comme réponse lionel limozin lundi 6 janvier 2014 17:46
- Marqué comme réponse Julio bourbon mardi 7 janvier 2014 10:53
-
Bonjour,
Vous avez complètement compris ma demande et votre réponse répond parfaitement à mon besoin. J'ai juste encore une petite question:
Comment modifier les droits de l'item? SI vous avez quelques exemples ou un lien je suis preneur.
Merci beaucoup pour votre aide.
-
Bonjour
Malheureusement je n'ai pas mon code de gestion des congés sous la main.
sur un SPListItem (dans l'event handler vous aurez une ref dessus) vous avez un propiété RoleAssignements. C'est par là que ça ce passe. Il faut au préalable aussi "casser" l'heritage des permissions avec la methode BreakRoleInheritance sur l'item.
C'est assez "pénible" comme modèle à appréhender (SPRoleDefinitionBindings, SPRoleAssignements, SPPrincipal..) mais une fois qu'on l'a fait une fois ça roule...
des exemples :
http://stackoverflow.com/questions/4934168/how-to-give-an-spgroup-permissions-for-an-spitem
bon courage
Blog Sharepoint : www.paslatek.net Twitter : @LimozinLionel
-
-
-