Question

J'aids à maintenir et à nettoyer le code sur un site Web / application basé sur SharePoint 2010.J'ai trouvé du code qui gère les autorisations pivotées sur la base du code.N'y a-t-il pas d'une manière idiomatique SharePoint de faire cela qui utilise des impératifs plus faciles ou déclaratifs comme des attributs ou quelque chose comme ça?

SPWeb cWeb = site.AllWebs["SiteName"];
SPGroup siteManagerGroup = cWeb.Groups["Site Manager Group"];
if (siteManagerGroup.ContainsCurrentUser)
{
    // Allow some action
}
else
{
   // Do not allow some action
}

Était-ce utile?

La solution

Ne comprends pas tout à fait où votre dépassement, mais je vais avoir une partie;)

Je présume que vous avez le code ci-dessus répété partout?

Vous pouvez placer le code dans une classe de son propre?Dans un nouveau projet, faites-le dans une méthode qui retourne true ou false.

Ensuite, vous pouvez obtenir la DLL de ce projet et l'ajouter comme une référence dans tout projet dont cela en aurait besoin.

Si le projet s'appelait Checkgroup, je pourrais alors faire:

If (checkgroups.checkGroup.check("SiteName","Site Manager Group",site) == true)
{

}
else
{

}

SO n'importe où vous avez ce code, vous pouvez le remplacer par ce qui précède et que cela appelle la méthode ci-dessous.Ce serait global que le projet ci-dessous serait dans le GAC et accédant à tout autre projet nécessitant cette méthode!Le projet doit également être fortement désigné d'être dans le GAC!

Méthode publique appelée:

namespace checkgroups
{
    public class checkGroup
    {
      public bool check(string sitename,string groupname,SPSite site)
      {
         using(SPWeb cWeb = site.AllWebs[sitename])
         {
           SPGroup siteManagerGroup = cWeb.Groups[groupname];
           if (siteManagerGroup.ContainsCurrentUser)
           {
              return true;
           }
           else
           {
              return false;
           }
         }
         return false;
      }
    }
}

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