public void UpdateProcessPermissions(string userName) { // Create instance of the Permissions and ProcSetPermissions class Permissions permissions = new Permissions(); ProcSetPermissions procPermissions = new ProcSetPermissions(); // Set the required permission properties procPermissions.ProcSetID = 1; procPermissions.UserName = userName; procPermissions.Admin = true; procPermissions.Start = true; procPermissions.View = false; procPermissions.ViewPart = false; procPermissions.ServerEvent = false; // Add the ProcSetPermissions object to the Permissions object permissions.Add(procPermissions); // Multiple permissions can also be added // for other process sets ProcSetPermissions procPerms2 = new ProcSetPermissions(); procPerms2.ProcSetID = 2; procPerms2.UserName = userName; procPerms2.Admin = true; procPerms2.Start = true; procPerms2.View = false; procPerms2.ViewPart = false; procPerms2.ServerEvent = false; permissions.Add(procPerms2); // Update the permissions bool updated = ManagementServer.UpdateUserPermissions(userName, permissions); }
//sample that shows how to set workflow permissions //in this sample, we are giving a dummy user account rights to a dummy process public void SetWorkflowPermissions() { //establish the connection WorkflowManagementServer K2Mgmt = new WorkflowManagementServer(); K2Mgmt.CreateConnection(); K2Mgmt.Connection.Open("connectionstring"); //get the proc set ID of the workflow whose permissions we need to set SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter filter = new SourceCode.Workflow.Management.Criteria.ProcessCriteriaFilter(); Processes procs = null; filter.AddRegularFilter(ProcessFields.ProcessFullName, Comparison.Equals, "processFullName"); procs = K2Mgmt.GetProcesses(filter); int procSetId = procs[0].ProcSetID; //now that we have the proc set ID, we can apply permissions //build up a collection of permissions to apply to the workflow Permissions permissions = new Permissions(); //create a ProcSetPermission object - this object will be added to the Permissions collection ProcSetPermissions procPermissions = new ProcSetPermissions(); procPermissions.ProcSetID = procSetId; procPermissions.UserName = @"domain\username"; //could also be ProcPermissions.GroupName for a group procPermissions.Admin = true; procPermissions.Start = true; procPermissions.View = true; procPermissions.ViewPart = false; procPermissions.ServerEvent = false; //add the permission to the permissions collection permissions.Add(procPermissions); procPermissions = null; //now we can apply the updated set of permissions to the process K2Mgmt.UpdateProcPermissions(procSetId, permissions); //several other methods are also available, listed below. Check product documentation for more information //K2Mgmt.UpdateGroupPermissions(); //K2Mgmt.UpdateOrAddProcUserPermissions(); //K2Mgmt.UpdateProcGroupPermissions(); //K2Mgmt.UpdateProcUserPermissions(); //close the connection K2Mgmt.Connection.Close(); }
protected override void ProcessRecord() { try { var procSetPermissions = new ProcSetPermissions() { Admin = Admin, Start = Start, View = View, ViewPart = ViewParticipate, ServerEvent = ServerEvent }; var permissions = new Permissions(); if (IdentityType.ToLower() == "user") { procSetPermissions.UserName = FQN; permissions.Add(procSetPermissions); if (!procSetPermissions.Admin && !procSetPermissions.Start && (!procSetPermissions.View && !procSetPermissions.ViewPart) && !procSetPermissions.ServerEvent) { this.wfMan.UpdateProcPermissions(this.ProcSetId, permissions, true); } else { this.wfMan.UpdateOrAddProcUserPermissions(this.ProcSetId, permissions); } } else { procSetPermissions.GroupName = FQN; permissions.Add(procSetPermissions); if (!procSetPermissions.Admin && !procSetPermissions.Start && (!procSetPermissions.View && !procSetPermissions.ViewPart) && !procSetPermissions.ServerEvent) { this.wfMan.UpdateProcPermissions(this.ProcSetId, permissions, true); } else { this.wfMan.UpdateProcGroupPermissions(this.ProcSetId, permissions); } } } catch (Exception ex) { ErrorHelper.Write(ex); } }