hi All,
We are facing an issue with Task API during migration from 7.1.2 to 7.1.3
We understand that previously (7.1.2) a user could view/open/update a task even when the assignedToList does not contain a role that a user is in - as long as the user has the corresponding functional access privileges.
However since 7.1.3, this is no longer the case and the user must be in a role in the assignedToList to view/update the task.
We have not seen related release notes for this change (just noticed the behavior change in testing).
1) Can you please point me to the release notes?
2) Is there a flag to apply the 7.1.2 behavior in 7.1.3?
In any case we have made code changes as shown below, so that when we perform some task reassignments- we now alter the assignedToList (role) to the roles of the target user as well as setting the acceptedByList (user) to the target user.
This is necessary due to the above mentioned change in 7.1.3.
public void reassignToOtherRoles(){
List<String> assignedToList = new ArrayList<String>();
UserModel userModel = new UserModel();
// refresh MWS Task
this.getCustomTask().refresh();
// unaccept the task from the current assigned user.
this.getCustomTask().unacceptTask();
// set target user in the acceptedByList
this.getCustomTask().getTaskInfo().setAcceptedByList(<targetUser>);
// get role names of the target user and update assignedToList
assignedToList.add("Role 1");
assignedToList.add("Role 2");
// change assignedToList of Task Info with new list.
this.getCustomTask().getTaskInfo().setAssignedToList(assignedToList.toArray(new String[]{}));
// set some other paramters in Task Data.
this.getCustomTask().getTaskData().setComments("Assigned by user:"+userModel);
this.getCustomTask().getTaskData().setParameter2("Value2");
// apply changes.
try{
this.getCustomTask().applyChangesNoAccept();
}catch(Exception e){
// handle exception
System.out.println("User performed Reassign operation across the roles - Exception Suppressed");
System.out.println("Error details::"+e);
}
}
However this introduced a new problem where the task API we use to do these changes (applyChangesNoAccept) seems to perform 2 task related activities inside the method,
1st to apply the changes (updateTask), the 2nd to refresh the task (refresh).
However the 2nd call to refresh the task throws an exception (PortalAccessException: You don’t have permissions to view this task) because now the current user may not be in a role in the new assignedToList.
3) Apart from catching and ignoring this exception is there another way to handle this scenario?
Kind regards,
Raja sekhar Kintali