Below is the java code to assign or remove user from a role , same functionality is present in bpm workspace admin.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.raylabs.bpm; | |
import java.util.HashMap; | |
import java.util.Iterator; | |
import java.util.List; | |
import java.util.Map; | |
import oracle.bpel.services.bpm.common.IBPMContext; | |
import oracle.bpel.services.workflow.client.IWorkflowServiceClientConstants; | |
import oracle.bpel.services.workflow.client.WorkflowServiceClientFactory; | |
import oracle.bpm.client.BPMServiceClientFactory; | |
import oracle.bpm.services.client.IBPMServiceClient; | |
import oracle.bpm.services.organization.IBPMOrganizationService; | |
import oracle.bpm.services.organization.model.AppRoleRefType; | |
import oracle.bpm.services.organization.model.ApplicationContext; | |
import oracle.bpm.services.organization.model.ApplicationContextTypeEnum; | |
import oracle.bpm.services.organization.model.ApplicationRoleType; | |
import oracle.bpm.services.organization.model.ApplicationRoles; | |
import oracle.bpm.services.organization.model.Organization; | |
import oracle.bpm.services.organization.model.Participant; | |
import oracle.bpm.services.organization.model.ParticipantTypeEnum; | |
public class Class1 { | |
private static String username; | |
private static String password; | |
private static String environment; | |
private static String serverPort; | |
private static String user; | |
private static String role; | |
private Class1() { | |
super(); | |
} | |
public static void main(String[] args) { | |
username = "xx"; | |
password = "xxxx"; | |
environment = "dev"; | |
serverPort = "34444"; | |
user = "xxxx"; | |
role = "APPROVER"; | |
BPMServiceClientFactory wfSvcClient = null; | |
IBPMContext bpmCtx = null; | |
IBPMServiceClient bPMServiceClient = null; | |
try { | |
final Map connectionProperty = getConnProp(); | |
wfSvcClient = | |
BPMServiceClientFactory.getInstance(connectionProperty, | |
null, null); | |
bPMServiceClient = wfSvcClient.getBPMServiceClient(); | |
IBPMOrganizationService bpmOrgSvc = | |
bPMServiceClient.getBPMOrganizationService(); | |
bpmCtx = | |
(IBPMContext)wfSvcClient.getWorkflowServiceClient().getTaskQueryService().authenticate(null, | |
null, | |
null); | |
Organization org = bpmOrgSvc.exportOrganization(bpmCtx); | |
ApplicationRoles applicationRoles = org.getApplicationRoles(); | |
List<ApplicationRoleType> roleList = | |
applicationRoles.getApplicationRole(); | |
Iterator<ApplicationRoleType> iterator = roleList.iterator(); | |
while (iterator.hasNext()) { | |
ApplicationRoleType applicationRoleType = iterator.next(); | |
if (applicationRoleType.getName().equals(role)) { | |
ApplicationContext appContext = new ApplicationContext(); | |
appContext.setApplicationType(ApplicationContextTypeEnum.ORACLE_BPM_PROCESS_ROLES_APP); | |
AppRoleRefType appRole = new AppRoleRefType(); | |
appRole.setType(ParticipantTypeEnum.USER); | |
appRole.setName(user); | |
bpmOrgSvc.grantAppRoleToPrincipal(bpmCtx, appContext, role, | |
new Participant(appRole)); | |
System.out.println("Added user " + user + " to Role " + | |
role); | |
// bpmOrgSvc.revokeAppRoleFromPrincipal(bpmCtx, appContext, role, new Participant(appRole)); | |
// System.out.println("Removed user "+user+" from Role "+role); | |
} | |
} | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} finally { | |
} | |
} | |
public static Map getConnProp() throws Exception { | |
final Map connProp = new HashMap(); | |
try { | |
connProp.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.EJB_INITIAL_CONTEXT_FACTORY, | |
"weblogic.jndi.WLInitialContextFactory"); | |
connProp.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.EJB_PROVIDER_URL, | |
"t3://" + environment + | |
"-abc.com:" + serverPort); | |
connProp.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.EJB_SECURITY_PRINCIPAL, | |
username); | |
connProp.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.EJB_SECURITY_CREDENTIALS, | |
password); | |
connProp.put(IWorkflowServiceClientConstants.CONNECTION_PROPERTY.CLIENT_TYPE, | |
WorkflowServiceClientFactory.REMOTE_CLIENT); | |
} catch (Exception e) { | |
e.printStackTrace(); | |
} | |
return connProp; | |
} | |
} |
Libraries
No comments:
Post a Comment