2014-08-28 3 views
0

Работаю с Ektron 9.Как сделать членство пользователя администратором группы участников в Ektron?

У меня есть ситуация, когда в Ektron есть группы N членов. Я хочу связать один членский член каждой членской группы, т. Е. Если у меня есть 4 группы, тогда должно быть 4 администратора, по одному администратору для каждой группы.

Бизнес-сценарий: мне нужно вызвать электронное письмо соответствующему администратору группы, когда новый пользователь членства зарегистрирован в Ektron.

Есть ли способ достичь этого в Ektron?

Заранее спасибо.

ответ

2

В «Ektron» нет понятия «Admin» группы Membership. Существует группа сообщества, которая может быть тем, о чем вы думаете. В случае, если есть, вот документация:

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

Однако, если вы действительно хотите, чтобы уведомить членства член группы, то вам необходимо иметь несколько вещей.

Во-первых, вам понадобится UserStrategy, в которой используется OnAfterUserAddInGroup (если вы также уведомляете об удалении, то есть OnAfterUserDeleteFromGroup). Это будет то, где вы начинаете код/​​приложение/все, что отправляет электронное письмо. Strategies Documentation

Чтобы определить, какой пользователь является «администратором», будет сложным. Как я уже сказал, для членов групп нет админов. Поэтому вам придется придумать свой собственный способ присвоить кому-то. Вы можете использовать пользовательские роли. В этом случае у вас будет роль администратора [GroupName] для каждой из ваших групп участников. Они могут создаваться каждый раз, когда вы создаете группу с помощью UserGroupStrategy OnAfterAddUserGroup (и переименовываете роль, используя OnAfterUpdateUserGroup или OnBeforeUpdateUserGroup). Roles Documentation

Затем вы можете назначить одного или нескольких пользователей этой роли. Они даже не обязательно должны были быть членами группы. Это может быть членство или пользователь CMS и т. Д.

Если вы устанавливаете соглашение о группе Name = Role Name + «Admin», тогда в стратегии вам просто нужно будет найти роль, которая следует за этой парадигмой для текущей группы , получить пользователей в этой роли и отправить им электронное письмо.

Это немного запутанно, но это сработает, и оно будет в основном автоматизировано.

Вот прокомментированный образец, который показывает, как инициализировать 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); 
+0

Am дело только с членской users.I получил свою точку @egandalf .Но может у пожалуйста, дайте мне знать апи, используемый в Ektron, чтобы получить пользователей в рамках конкретной пользовательской роли в ektron.Thank Вас за время, проведенное для меня. –