hiding the task toolbar (reassign task, save changes, etc.)

There is a known Appian defect: when an admin user reassigns a task to a non-admin user, that non-admin user is able to reassign to ANYONE. I am trying to find the best way to avoid this in PROD because we don't want non-admin users to be reassigning. I thought a way would be to hide the task bar on the left where the Reassign Task link shows up. Is there any way to remove this task bar WITHOUT removing the Save Changes functionality? On the user interface task, I saw an option under Forms that says Hide task toolbar but it did not work. Why? What other options do I have?

OriginalPostID-235796

  Discussion posts and replies are publicly visible

  • Matthew we're looking at using the Reassign with Privileges plugin to solve Erick's problem. But I'm also interested in your second option. How do we pass in the assignee as a as a variable who's privileges are always unable to reassign? Isn't the point of the issue that the new assignee inherits the elevated privileges of the current assignee? So it doesn't matter what the new assignee's privileges are. Unless you're suggesting that we run the smart service as a user who doesn't have privileges?
  • Just make a variable (type user or even type text) that is the assignee, pv!assignee. Have the task "submit" (i.e. flow out) and then be assigned again to the pv!assignee, but at the outflow, have an XOR check for reassignment, and then that XOR should direct to a script task or something to designate the new assignee as the value of pv!assignee.

    I made a small visual below. The key is that the process variable (pv!assignee) is the same assignee, but the contents have changed (user A to user B). Let me know if you still have questions.

  • Gotchya thanks Matthew. We're going to pursue the plugin because we are looking to reassign tasks across many process models and don't want to edit each model.
  • Makes a lot of sense. If the plugin doesnt work, creating a subprocess to handle the logic could mitigate the rework, but there would indeed still be some.
  • @Matthew How would we use this method if we are using "Task Smart Services" plugin to reassign task from a report. Our end goal is remove all privileges from users, they should not be able to reassign task to anyone not even initial pool of assignees.
  •  We have come across this issue today. 

    Reassign Task in 'Task Smart Services' reassigns a task with all possible privileges. This isn't a candidate for a solution.

    'Reassign with privileges' is the one that could help you here as this sets the privileges during the reassignment. But this does not block all privileges and still, the user can 'Reject' the task in this case.
    Underlying API:
    setPrivilege() in Assignment.Assignee which actually sets the privilege on the task(based on the constants in Assignment) has only 3 configurable privileges available namely Reject, Reassign within the assignees pool, Reassign to anyone and there isn't a constant that blocks all privileges. (I think we can try by getting the privilege(using getPrivilege()) value of a task that has no privileges at all and use the same value in setprivilege() while setting the privileges)

    Let me know if you need an alternate and complete solution which will block the privileges on a task in any given case.