Первое создаем подузел
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();
       }
для списков тоже самое.
Будет время дополню новой инфой.
вторник, 23 октября 2007 г.
Подписаться на:
Комментарии к сообщению (Atom)
 
 
Комментариев нет:
Отправить комментарий