在 sharepoint 中创建组时,我们有一个选项“将会员请求发送到以下电子邮件地址”
它用于向 SPGroup 发送成员资格请求。
但是我们如何以编程方式设置电子邮件地址
在 sharepoint 中创建组时,我们有一个选项“将会员请求发送到以下电子邮件地址”
它用于向 SPGroup 发送成员资格请求。
但是我们如何以编程方式设置电子邮件地址
我试图在功能激活事件中完成同样的事情。我已经找到了如何创建组以及如何在对象模型中访问这些设置。您可以在下面使用我的示例。问题是,尽管调用了 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 = "username@domain.com";
if (!String.IsNullOrEmpty(user.Email))
emailForRequests = user.Email;
collGroups["MySPGroupName"].RequestToJoinLeaveEmailSetting = emailForRequests;
collGroups["MySPGroupName"].Update();
}
}
}
如果使用 SP 2013,则可以使用 PowerShell 使用以下代码:
$membersGroup = $siteCollection.SiteGroups["$groupName"]
$membersGroup.RequestToJoinLeaveEmailSetting = "someone@mail.com"
$membersGroup.Update()