[英]How to find if a user has a membership to a specific Global Group in a service?
[英]How to make a membership user to the admin of a membership group in Ektron?
我正在與Ektron 9一起工作。
我遇到的情況是,Ektron中有N個成員組。 我想將一個成員資格用戶關聯到每個成員資格組,即如果我有4個組,那么應該有4個admin,每個組一個管理員。
業務場景是,當新的會員用戶向Ektron注冊時,我需要觸發一封電子郵件發送給相應的組管理員。
有什么方法可以在Ektron中實現嗎?
提前致謝。
Ektron中沒有成員資格組的“管理員”概念。 有一個社區組,這可能是您在考慮的問題。 如果是這樣,這里是文檔:
但是,如果您確實想通知成員資格組成員,則需要注意以下幾點。
首先,您將需要一個使用OnAfterUserAddInGroup的UserStrategy(如果您還要通知移除,則有一個OnAfterUserDeleteFromGroup)。 那將是您啟動發送電子郵件的代碼/應用程序/的地方。 策略文件
但是,識別哪個用戶是“管理員”將很棘手。 就像我說的那樣,成員組沒有管理員。 因此,您必須想出自己的方式將其分配給某人。 您可以使用自定義角色。 在這種情況下,您將為每個成員資格組具有[GroupName]管理員角色。 每當您使用UserGroupStrategy OnAfterAddUserGroup創建組(並使用OnAfterUpdateUserGroup或OnBeforeUpdateUserGroup重命名角色)時,都可以創建這些文件。 角色文檔
然后,您可以將一個(或多個)用戶分配給該角色。 他們甚至不一定需要成為該組的成員。 它可能是會員或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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.