Role Management

Roles are used in K2 as a container for users and groups. A role can be defined across multiple user managers. Users can come from Active Directory, Database based, Custom providers and SmartObjects.

Role must contain at least one RoleItem. Using the UserRoleManager API you can create, delete and update roles. You can resolve a role to its members and get a list of role items.

using SourceCode.Hosting.Client.BaseAPI;
using SourceCode.Security.UserRoleManager.Client;UserRoleManagerServer umClient = new UserRoleManagerServer();
SCConnectionStringBuilder cb = new SCConnectionStringBuilder();
//Build a SC Connection String
cb.Host = “localhost”;
cb.Port = 5555;
cb.Integrated = true;
cb.IsPrimaryLogin = true;//Open the connection to K2
umClient.CreateConnection();
umClient.Connection.Open(cb.ToString());

//Obtain a collection of users for this role
IUserCollection roleUsers = umClient.ResolveQueue(textBox1.Text);
foreach (IUser user in roleUsers)
{
//Write each username to the console
textBox2.Text = textBox2.Text + “\r\n” + user.UserID;
}//Close the Connection
umClient.Connection.Close();

A Role has include and exclude collections which allows you to exclude and include members for the role. When you add a RoleItem to a Role you actually add it to the Includes collection or the Excludes collection of the Role. UserItem and GroupItem objects are provided to represent users and groups of the UserManagers.

using SourceCode.Hosting.Server.Interfaces;
using SourceCode.Security.UserRoleManager.Management;UserRoleManager mgr = new UserRoleManager();

//How do I get a list of Roles already defined in K2?
string[] K2Roles = mgr.GetRoleNameList();

//add a new Role
Role role = new Role(rolename);
UserItem user = new UserItem(textBox1.Text);
role.Include.Add(user);
mgr.CreateRole(role);

A Role can be dynamic, meaning the resolution happens just-in-time. Roles can be refreshed automatically by setting a refresh interval as well.

Destination Rules in a workflow map has an advanced setting which allows Roles to be resolved to users when it is executed. This will explicitly assign tasks to relevant users instead of the Role. When a task is assigned to a Role, all included members will have access to the task.

[UPDATE]Here’s another article on this topic : http://theagussantoso.blogspot.com/2007/12/how-to-get-role-items-in-k2-blackpearl.html

Published by jeylabs

Are you ready to Transform your Enterprise? www.jeylabs.com

One thought on “Role Management

%d bloggers like this: