Změna nastavení práv na položku v knihovně

Nejdříve načtu položku, kterou chci nastavovat. Např. následujícím způsobem.

SPListItem item = web.Lists["MojeKnihovna"].GetItemById(1);
SPFile nFile = item.File;


Zruším dědění práv.

nFile.Item.BreakRoleInheritance(true);


Smažu stávající práva.

SPRoleAssignmentCollection SPRoleAssColn = nFile.Item.RoleAssignments;
for (int i = SPRoleAssColn.Count - 1; i >= 0; i--)
{
  SPRoleAssColn.Remove(i);
}


Načtu typ role.

SPRoleDefinition role = nFile.Item.Web.Site.RootWeb.RoleDefinitions.GetByType(SPRoleType.Contributor);


Nastavím práva na skupinu.

SPGroup group = item.Web.SiteGroups[loginName];
SPRoleAssignment ra = new SPRoleAssignment((SPPrincipal)group);
ra.RoleDefinitionBindings.Add(role);
item.RoleAssignments.Add(ra);


Nastavím práva na osobu.

SPRoleAssignment ra = new SPRoleAssignment(loginName, null, null, null);
ra.RoleDefinitionBindings.Add(role);
item.RoleAssignments.Add(ra);
Comments are closed

O blogu

Tento blog je místem, kde sdílím své zkušenosti, části zdrojových kódů, odkazy apod. Zdroje jsou zaměřeny převážně na problematiku portálového řešení SharePoint a vývoj webů v prostředí Microsoft. Mým cílem není úplně obsahnout konkrétní řešení, ale pouze tu část, kterou potřebuji. Pokud se problematika obsáhlejší, jsou pod článkem odkazy na související informace.

O autorovi

Oldřich Zátopek
Zabývám se vývojem webových aplikací internet/intranet na Microsoft technologiích. Hlavní specializace je SharePoint. LinkedIn