Comment puis-je permettre aux utilisateurs de créer des dossiers, mais pas des dossiers de suppression?

sharepoint.stackexchange https://sharepoint.stackexchange.com/questions/5706

  •  16-10-2019
  •  | 
  •  

Question

Comment puis-je permettre aux utilisateurs de créer des dossiers, mais les dossiers ne supprimera pas dans SharePoint 2007?

Était-ce utile?

La solution

Créer un recepteur de l'événement en utilisant le code suivant, puis fixer le récepteur d'événements à vos bibliothèques de documents.

private bool CanDeleteFolder(SPWeb web)
{
    //  check to see if the user is in the owners group
    SPUser user = web.CurrentUser;

    if (!user.IsSiteAdmin)
    {
        return false;
    }
    else
    {
        //admins can delete folder
        return true;
    }
}

public override void ItemDeleting(SPItemEventProperties properties)
{
    try
    {
        if (properties.AfterProperties["ContentType"].ToString() == "Folder")
        {
            using (SPWeb web = properties.OpenWeb())
            {
                if (!CanDeleteFolder(web))
                {
                    properties.Cancel = true;
                    properties.ErrorMessage = "Cannot add folder at this location. Please select a sub folder";
                    properties.Status = SPEventReceiverStatus.CancelWithError;
                }
            }
        }
    }
    catch { }
}

Autres conseils

Ou créer un niveau d'autorisation personnalisé qui ne permet pas l'option de suppression et d'appliquer ce niveau d'autorisation à la bibliothèque pour les utilisateurs souhaités. Ils seront en mesure d'ajouter / modifier des éléments, mais pas supprimer. Un récepteur d'événements semble exagéré pour un simple changement des permissions.

On pourrait utiliser un récepteur d'événement personnalisé pour piéger OnDeleting pour voir si l'élément en cours suppression est un dossier, et Annuler le cas échéant, présenter un message d'erreur tout en faisant.

Licencié sous: CC-BY-SA avec attribution
Non affilié à sharepoint.stackexchange
scroll top