与Ektron 9合作。
我有一种情况,Ektron有N个会员组。我想联想 一个会员用户到每个会员组,即如果我有4个组,那么每个组应该有4个管理员,一个管理员。
业务场景是我需要在新的会员用户注册Ektron时向相应的群组管理员发送电子邮件。
有没有办法在Ektron中实现这一目标?
提前致谢。
答案 0 :(得分:2)
没有" Admin"的概念。 Ektron的会员组织。有一个社区小组,可能是您正在考虑的内容。万一就是这里的文档:
但是,如果您确实想要通知会员组成员,那么您需要做一些事情。
首先,你需要一个使用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);