Используйте Web Money - это очень удобно

вторник, 23 октября 2007 г.

Создание узла и управление правами.

Первое создаем подузел
SPSite site = new SPSite((String)url);
SPWeb web = site.OpenWeb();
SPWebTemplate webTemplate = site.GetCustomWebTemplates(1049)[WEB_TEMPLATE_NAME];
web.Webs.Add((String)webUrlName, (String) webName, "", 1049, webTemplate, true, false);
web.Update();
Второе создаем или используем разрешения:
SPWeb newWeb = web.Webs[ (String) webUrlName];
SPRoleDefinition readersRD = readersPermission(newWeb);
SPRoleDefinition readerC = web.RoleDefinitions[GLOBAL_ROLE_READER];
...
private static SPRoleDefinition readersPermission(SPWeb newWeb)
{
SPRoleDefinition readersRD;
readersRD = new SPRoleDefinition();
readersRD.Name = LOCAL_GROUPS_READERS;
readersRD.BasePermissions =
SPBasePermissions.ViewVersions | SPBasePermissions.ViewPages | SPBasePermissions.ViewListItems | SPBasePermissions.ViewFormPages
| SPBasePermissions.UseRemoteAPIs | SPBasePermissions.UseClientIntegration | SPBasePermissions.OpenItems | SPBasePermissions.Open
| SPBasePermissions.CreateAlerts | SPBasePermissions.BrowseUserInfo;
readersRD.Description = DCB.CM.Common.CM_LOCAL_GROUPS_READERS;
newWeb.RoleDefinitions.Add(readersRD);
readersRD = newWeb.RoleDefinitions[readersRD.Name];
readersRD.Update();
return readersRD;
}
Назначаем разрешения:

private static void setPermissionsToAdmins(SPWeb web1, SPWeb newWeb, SPRoleDefinition managersRD, SPRoleDefinition readersRD, SPRoleDefinition adminsRD, SPRoleDefinition readerC)
{
SPGroup adminsG = newWeb.SiteGroups[GLOBAL_GROUPS_ADMINS];
{
SPRoleAssignment ra = new SPRoleAssignment(adminsG);
ra.RoleDefinitionBindings.Add(adminsRD);
newWeb.RoleAssignments.Add(ra);
}
{
SPUser sysUser = web.SiteUsers.GetByID(1073741823);
SPRoleAssignment ra = new SPRoleAssignment(sysUser);
ra.RoleDefinitionBindings.Add(managersRD);
ra.RoleDefinitionBindings.Add(adminsRD);
newWeb.RoleAssignments.Add(ra);
}
newWeb.Update();
}
для списков тоже самое.
Будет время дополню новой инфой.

Комментариев нет: