AddResourceRole and RemoveResourceRole delegates
The AddResourceRole and RemoveResourceRole delegate respectively adds and removes the user as the member with the role to the resource. Matched/removed member is returned with output variable.
Field name | Mandatory | Description |
---|---|---|
resourceId | Y | Id of the resource for the member. |
roleId | Y | Identify the member role - either id or name must be set, setting both will cause id to be used. |
roleName | ||
userId | Y | Identify the member user - either id or name must be set, setting both will cause id to be used. |
userName | ||
resultVariableName | N | The name of the variable that the result will be set in, if not given the result will be set in the variable named "output". |
The delegate is deprecated. Replace your service task containing this delegate with a script task, for example:
- Add resource role:
<scriptTask id="scripttask1" name="Assign owner" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.responsibility.AddResponsibilityRequest def userName = execution.getVariable("startUser") def ownerUserId = userApi.getUserByUsername(userName).getId(); responsibilityApi.addResponsibility(AddResponsibilityRequest.builder() .resourceId(item.id) .resourceType(item.type) .roleId(string2Uuid(roleId)) .ownerId(ownerUserId) .build()) ]]></script> </scriptTask>
- Remove resource role:
<scriptTask id="scripttask1" name="Remove current Owner role" scriptFormat="groovy" activiti:autoStoreVariables="false"> <script><![CDATA[ import com.collibra.dgc.core.api.dto.instance.responsibility.FindResponsibilitiesRequest def ownerUserId = userApi.getUserByUsername(ownerName).getId(); def ownerRoleId = users.getRoleId("Owner"); def responsibilities = responsibilityApi.findResponsibilities(FindResponsibilitiesRequest.builder() .resourceIds(Collections.singletonList(domain.id)) .ownerIds(Collections.singletonList(ownerUserId)) .roleIds(Collections.singletonList(ownerRoleId)) .build()) .getResults() responsibilityApi.removeResponsibilities(new ArrayList(responsibilities.collect{ it.getId() })); ]]></script> </scriptTask>