Allow Changing the User in an Active/Future Approval Step

Description

Enable the ability to change assigned users in User-type approval steps when the current user has not yet submitted their decision

Background

This feature is intended to prevent bottlenecks in the approval process when the originally assigned user is inactive or unable to respond in time.

Requirements

User Change Capability:

  • For steps of type User, add the ability to change the assigned user

  • Available for active and future steps only

  • Only allowed if the current user has not yet submitted their decision

  • Only the creator of the approval (user who started the approval) should be allowed to make this changewed to make this change


Configuration

Global Settings

Add new toggle in Global Settings → General:

┌─────────────────────────────────────────────────────────────┐│  General Settings                                           │├─────────────────────────────────────────────────────────────┤│                                                             ││  ☑ Enable dynamic user steps              ← NEW            ││  ☐ Enable dynamic user field steps                          ││                                                             │└─────────────────────────────────────────────────────────────┘

Setting

Default

Description

Enable dynamic user steps

✅ Enabled

Allows changing users in active/future approval steps

Step Definition Settings

For User step type, add new checkbox option:

┌─────────────────────────────────────────────────────────────┐│  User Step                                │├─────────────────────────────────────────────────────────────┤│                                                             ││                                                             ││  Comment requirements                             ││                                                             ││  ☑ Dynamically update users when the step is active        ││    or future                                    ← NEW       ││                                                             │└─────────────────────────────────────────────────────────────┘

Setting

Behavior

✅ Checked

Approval creator can change assigned users for this step

❌ Unchecked

Users cannot be changed after approval is started

Visibility rule:

  • If "Enable dynamic user steps" is disabled globally → checkbox is hidden in step definition

  • If enabled globally → checkbox is visible and configurable per step


Notifications

When to Send

  • Active step: Send notification when user is changed

  • Future step: No notification required

Recipients

Recipient

Notification

Previous user

Inform about removal from step

Newly assigned user

Inform about assignment to step

Notification Content

  • Information about the change (who changed, which step)

  • Link to the approval

  • Context about the approval (issue key, approval name)

Notification templates should be customizable.

Email Notifications

Notification Rules

Step Status

Notify Previous User

Notify New User

Active

✅ Yes

✅ Yes

Future

❌ No

❌ No

UI Implementation - Reference Approval View

User Icon Interaction

When dynamic update is enabled for the approval, display edit capability on user icons:

Hover Behavior:

  • On hover over user icon → show pencil icon (✏️) in bottom-right corner

  • Tooltip: "Change user"

  • Only visible for active and future steps

  • Only visible when dynamic update is enabled for the step

Change User Modal

┌─────────────────────────────────────────────────────────────┐│  Change User                                           [✕]  │├─────────────────────────────────────────────────────────────┤│                                                             ││  Step: Review Document (Step 2)                             ││                                                             ││  Current user: John Doe                                     ││                                                             ││  New user:                                                  ││  ┌─────────────────────────────────────────────────────┐   ││  │ Select user...                                    ▼ │   ││  └─────────────────────────────────────────────────────┘   ││                                                             ││  ⚠️ The current user will be notified about this change.   ││     (shown only for active step)                            ││                                                             ││                              [Cancel]  [Change User]        │└─────────────────────────────────────────────────────────────┘

The backend endpoint that allows changing the user for a selected step will validate whether the step is active, whether the user has already cast a vote, and whether the current user is the creator of the approval. If any of these conditions are not met, the endpoint should return a message informing the user that the step data cannot be modified.

After a successful update, the popup should be closed and the approval should be refreshed.