web-dev-qa-db-fra.com

Sharepoint - comment définir le niveau d'autorisation pour ajouter un élément mais pas voir?

Je souhaite autoriser un certain groupe d'utilisateurs à ajouter des éléments à une liste, mais je ne peux pas afficher tous les éléments. C’est pour que je puisse configurer un flux de travail avec certaines parties de celui-ci privées. Je pensais que ce serait possible en définissant un nouveau niveau de permission dans:

http: //servername/_layouts/addrole.aspx (page "Ajouter un niveau d'autorisation")

Cependant, lorsque vous sélectionnez l'autorisation de liste "ajouter des éléments", l'option "Afficher les éléments" est automatiquement cochée.

Quelqu'un connaît une solution à cela?

12
Stuart

En tant qu'option intermédiaire, vous pouvez configurer la liste pour afficher uniquement les éléments à leur propriétaire ( Paramètres> Paramètres avancés , puis définissez les options pour Accès en lecture/Modifier l'accès comme "Seulement leurs propres". n'empêchera pas une personne de voir tous les éléments ajoutés par elle, mais rien ne sera visible en dehors de cette autorisation (autre que par un propriétaire de liste).

10
Ceesaxp

L'option Afficher les éléments est une autorisation dépendante pour Ajouter des éléments. Vous n'êtes donc pas sûr d'ajouter des autorisations de ce type dans SharePoint, consultez la page suivante: ( http://office.Microsoft.com/en-us/ technologie sharepoint/HA101001491033.aspx )

Vous pouvez avoir une solution de contournement consistant à créer 2 listes et à ajouter le code dans l'événement item added de la première liste pour ajouter un élément à une autre liste et le supprimer de la première liste, sans savoir si c'est une bonne solution. . .

4
Jomit
$spweb=Get-SPWeb -Identity "<site url>";
$spRoleDefinition = New-Object Microsoft.SharePoint.SPRoleDefinition;
$spRoleDefinition.Name = "Submit only";
$spRoleDefinition.Description = "Can submit/add forms/files/items into library or list but cannot  view/edit them.";
$spRoleDefinition.BasePermissions = "AddListItems, ViewPages, ViewFormPages, Open";
$spweb.RoleDefinitions.Add($spRoleDefinition);

Source: http://sajiviswam.wordpress.com/2011/12/09/add-only-permission-level-in-sharepoint-2010/

2
ehaze

Utilisez une étape d'emprunt d'identité dans le flux de travail.

1
newbie

J'ai eu un problème similaire, où je ne voulais pas que les utilisateurs anonymes voient le contenu de la liste.

La même solution pourrait fonctionner pour cela.

Dans le concepteur SharePoint (pour une raison quelconque, impossible de modifier une page sur le Web), ouvrez la page DispForm.aspx et, dans les propriétés de la WebPart, ajoutez un public cible (si personne ne veut voir la Webpart masquée) NE SUPPRIMEZ PAS LE WEBPART - cela casse votre liste totalement!

Peut faire la même chose avec AllItems.aspx

J'espère que cela t'aides.

1
user183073

Par défaut, avec SharePoint Designer, je ne peux que penser à utiliser un flux de travail pour déplacer des éléments d'une liste déroulante publique vers une liste sécurisée.

Un utilisateur peut voir et télécharger des éléments dans la liste déroulante publique, mais un flux de travail démarre immédiatement et ne fait que déplacer le contenu vers une autre liste identique sécurisée. Vous pouvez décider si vous devez autoriser ou non l’écrasement du contenu.

Une solution de contournement, mais sans la programmation, tout est SharePoint. (Mon entreprise ne me laisse pas encore écrire le code)

0
MrChrister

Je suis complètement d'accord avec 'Ceesaaxp'. Sous Paramètres avancés , pour la liste, définissez Accès en lecture sur Seulement pour eux-mêmes . J'ai créé un processus de gestion des connaissances, selon lequel j'ai créé deux listes, une pour les articles de connaissances en attente et une pour les articles approuvés. J'ai modifié la page "Nouveau formulaire" de la liste En attente et désactivé un menu déroulant à l'aide de JavaScript, qui était utilisé comme statut de l'article. Ce menu déroulant est alors définitivement défini sur «En attente». J'ai également créé un nouveau niveau d'autorisation qui permet aux utilisateurs d'ajouter des éléments uniquement. J'ai ensuite créé un flux de travail qui déplace l'article dans la liste Approuvé lorsque la liste déroulante d'état est définie sur «Approuvé».

J'ai ensuite modifié les paramètres de lecture seule dans les paramètres avancés de la liste en attente pour n'utiliser que les leurs, de sorte que tous les articles de connaissances soient approuvés avant leur publication.

0
JD-Daz

Je travaillais juste sur une solution rapide pour cela, faisant des recherches quand j'ai trouvé ce message. Outre le flux de travaux SPD, ne fonctionnera pas avec des utilisateurs anonymes, je pensais créer un formulaire HTML infopath qui l'envoie à une bibliothèque de formulaires. Vous pouvez avoir une bibliothèque de formulaires en tant que site pour démarrer le formulaire, puis stocker les résultats dans une autre bibliothèque de formulaires. Étant donné que vous pouvez configurer la bibliothèque de formulaires pour accepter les courriers électroniques de quiconque, vous pouvez empêcher les personnes de lire, mais elles peuvent toujours les modifier.

Je n'ai pas essayé, mais si je rencontre des problèmes, je posterai des commentaires.

0
Will Dieterich

Je pense que l'utilisation de la permission avancée n'est pas accessible car elle ne peut empêcher celui qui la soumet de la voir, sinon c'est une bonne solution! Le flux de travail devrait, je pense, pouvoir faire le travail. Assurez-vous simplement que lorsqu'un élément téléchargé est chargé, le flux de travail est déclenché. Ensuite, si vous pouvez créer un flux de travail pouvant définir une autorisation spécifique pour l'élément, vous devez tout faire. Si votre main n'est pas sale avec le processus de construction, accédez à l'adresse 3w.sharepointboost.com lorsque vous avez une sorte de solution plug-and-play appelée Autorisation d'affichage des colonnes. 

0

@Jomit. Votre solution de contournement peut fonctionner, mais elle pose le problème des conditions de course. Les utilisateurs peuvent toujours avoir une chance de voir d'autres éléments. Cela peut être un non-non en fonction de vos règles.

Les listes standard de SharePoint proposent cette option sous Paramètres/Paramètres avancés/Autorisations au niveau élément. Cependant, pour une raison quelconque, cette option manque dans l'interface graphique pour Document et Bibliothèques de formulaires .

Une solution possible consiste à écrire un programme simple pour effectuer ces modifications à l'aide du modèle d'objet SharePoint. Http://msdn.Microsoft.com/en-us/library/Microsoft.sharepoint.splist.writesecurity. aspx

// Sample code for setting writing and reading security on a form library
class Program
            {
                static void Main(string[] args)
                {
                    using (SPSite site = new SPSite(args[0]))
                    {
                        using (SPWeb web = site.OpenWeb())
                        {
                            SPList list = web.Lists[args[1]];
                            list.WriteSecurity = 2;
                            list.ReadSecurity = 2;
                            list.Update();
                        }
                    }
                }
            }
0
Alex Nolasco

Vous n'avez pas vraiment spécifié le type de liste que vous utilisez, mais si vous regardez dans les paramètres de la liste sous "Paramètres avancés", vous trouverez probablement une section "Autorisations de niveau élément". Cela vous permettra de choisir de limiter les utilisateurs à lire (ou éditer) uniquement les éléments qu'ils ont soumis. Cela va au-delà des autres ACL définies dans la liste ou de ses éléments.

0
Sam Yates