2010-12-14 150 views

回答

0

我試圖完成的功能被激活時同樣的事情。我已經找到了如何創建組以及如何在對象模型中訪問這些設置。你可以使用我的例子下面。問題是,儘管調用了SPGroup.Update(),但我對SPGroup的這些布爾屬性所做的更改並未執行。 SPGroup創建的仍然使用默認設置(關閉會員請求)。

public override void FeatureActivated(SPFeatureReceiverProperties properties) 
    { 

     SPSite site = (SPSite)properties.Feature.Parent; 
     { 
      using (SPWeb web = site.RootWeb) 
      { 
       SPGroupCollection collGroups = web.SiteGroups; 
       SPUser user = web.EnsureUser("DOMAIN\\username"); 

       collGroups.Add("MySPGroupName", user, user, "MySPGroupDescription"); 
       if (!web.AssociatedGroups.Contains(collGroups["MySPGroupName"])) 
       { 
        web.AssociatedGroups.Add(collGroups["MySPGroupName"]); 
       } 
       SPRoleAssignment assignment = new SPRoleAssignment(collGroups["MySPGroupName"]); 
       SPRoleDefinition def = web.RoleDefinitions.GetByType(SPRoleType.Contributor); 
       assignment.RoleDefinitionBindings.Add(def); 
       web.RoleAssignments.Add(assignment); 
       web.Update(); 
       collGroups["MySPGroupName"].AllowMembersEditMembership = true; 
       collGroups["MySPGroupName"].AllowRequestToJoinLeave = true; 
       collGroups["MySPGroupName"].OnlyAllowMembersViewMembership = false; 
       string emailForRequests = "[email protected]"; 
       if (!String.IsNullOrEmpty(user.Email)) 
        emailForRequests = user.Email; 
       collGroups["MySPGroupName"].RequestToJoinLeaveEmailSetting = emailForRequests; 
       collGroups["MySPGroupName"].Update(); 
      } 
     } 

    } 
0

如果使用SP 2013,使用PowerShell中您可以使用下面的代碼:

$membersGroup = $siteCollection.SiteGroups["$groupName"] 
$membersGroup.RequestToJoinLeaveEmailSetting = "[email protected]" 
$membersGroup.Update() 
相關問題