簡體   English   中英

如何使會員用戶成為Ektron中的會員組管理員?

[英]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中沒有成員資格組的“管理員”概念。 有一個社區組,這可能是您在考慮的問題。 如果是這樣,這里是文檔:

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

但是,如果您確實想通知成員資格組成員,則需要注意以下幾點。

首先,您將需要一個使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM