如何让会员用户成为Ektron会员组的管理员?

时间:2014-08-28 14:16:15

标签: c# asp.net ektron

与Ektron 9合作。

我有一种情况,Ektron有N个会员组。我想联想 一个会员用户到每个会员组,即如果我有4个组,那么每个组应该有4个管理员,一个管理员。

业务场景是我需要在新的会员用户注册Ektron时向相应的群组管理员发送电子邮件。

有没有办法在Ektron中实现这一目标?

提前致谢。

1 个答案:

答案 0 :(得分:2)

没有" Admin"的概念。 Ektron的会员组织。有一个社区小组,可能是您正在考虑的内容。万一就是这里的文档:

http://documentation.ektron.com/cms400/v9.00/Reference/Web/EktronReferenceWeb.html#Communities/Managing_Community_Groups.htm

但是,如果您确实想要通知会员组成员,那么您需要做一些事情。

首先,你需要一个使用OnAfterUserAddInGroup的UserStrategy(如果你还要通知删除,那么就是OnAfterUserDeleteFromGroup)。这将是你启动代码/ app /发送电子邮件的地方。 Strategies Documentation

确定哪个用户是" admin"然而,这将是棘手的。正如我所说,成员组没有管理员。因此,您必须想出自己的方式将其分配给某人。您可以使用自定义角色。在这种情况下,您将拥有每个成员资格组的[GroupName] Admin角色。每次使用UserGroupStrategy OnAfterAddUserGroup创建组(并使用OnAfterUpdateUserGroup或OnBeforeUpdateUserGroup重命名角色)时,都可以创建这些组。 Roles Documentation

然后您可以为该角色分配一个(或多个)用户。他们甚至不一定需要成为该组织的成员。它可以是会员或CMS用户等。

如果您建立了一个群组名称=角色名称+"管理员"约定,然后在策略中,您只需要找到当前组的范例之后的角色,让用户担任该角色,并向他们发送电子邮件。

这有点令人费解,但它会起作用,而且大部分都是自动化的。

以下是一个注释示例,其中显示了如何初始化API,获取所有角色,检查用户是否是角色成员,添加新的自定义角色,向角色添加成员以及从角色中删除成员。

var RoleAPI = new Ektron.Cms.API.Content.Content().EkContentRef;

// Get all custom roles (careful, as the first item in my test was null)
var roles = RoleAPI.GetAllRolePermissions();
// This will eliminate returned nulls.
var names = roles.Where(r => r != null).Select(r => r).ToArray();

// Check whether a user is a member of the role.
var isAMember = RoleAPI.IsARoleMember(1002, 10);

// Add a new custom role.
RoleAPI.AddRolePermission("Membership Group Admin");

// Add a user to a role.
var member = new RoleMemberData()
{
    MemberId = 10,
    // Even membership users are type = User.
    MemberType = RoleMemberData.RoleMemberType.User
};
RoleAPI.AddRoleMember(1002, ref member);

// Remove a user from a role (using member as defined above).
RoleAPI.DropRoleMember(1002, ref member);