Search This Blog

Wednesday, December 10, 2014

Create a subsite programatically and add SPGroups


SPSecurity.RunWithElevatedPrivileges(delegate()
{
using (SPSite osite = new SPSite(siteCollectionUrl))
{
using (SPWeb oweb = osite.OpenWeb())
{
SPWeb site = null;
site = oweb.Webs.Add(Weburl, projectname, projectdescription, EnglishLocaleId, sitetemplate, true, false);
site.Navigation.UseShared = true;
site.Update();
isSitecreated = true;
if (isSitecreated)
{
site.AllowUnsafeUpdates = true;
site.SiteGroups.Add(site.Name + "-Owners", site.CurrentUser, site.CurrentUser, "");
site.SiteGroups.Add(site.Name + "-Visitors", site.CurrentUser, site.CurrentUser, "");
site.SiteGroups.Add(site.Name + "-Members", site.CurrentUser, site.CurrentUser, "");
SPGroup gOwners = site.SiteGroups[site.Name + "-Owners"];
SPRoleAssignment assignmentOwner = new SPRoleAssignment(gOwners);
assignmentOwner.RoleDefinitionBindings.Add(site.RoleDefinitions["Full Control"]);
site.RoleAssignments.Add(assignmentOwner);

SPGroup gVisitors = site.SiteGroups[site.Name + "-Visitors"];
SPRoleAssignment assignmentVisitors = new SPRoleAssignment(gVisitors);
assignmentVisitors.RoleDefinitionBindings.Add(site.ParentWeb.RoleDefinitions["Read"]);
site.RoleAssignments.Add(assignmentVisitors);
//Add users for visitors group
//gVisitors.AddUser();


SPRoleDefinition roleDefinition = site.ParentWeb.RoleDefinitions.GetByType(SPRoleType.Contributor);
SPGroup gMembers = site.SiteGroups[site.Name + "-Members"];
SPRoleAssignment assignmentMembers = new SPRoleAssignment(gMembers);
assignmentMembers.RoleDefinitionBindings.Add(roleDefinition);
site.RoleAssignments.Add(assignmentMembers);

 site.AllowUnsafeUpdates = false;
}
 else
{
  isSitecreated = false;
 }
}
}
});

 This will help you to create site and groups programatically

No comments:

Post a Comment

Restricting Custom People Picker to only one Sharepoint group programatically

Refer the following script files in your page,     <!-- For People Picker -->     <script type="text/javascript" src...