Skip to content

feat: add dedicated Invite User button and dialog to IAM Users UI#26

Merged
roncodes merged 3 commits intomainfrom
feat/invite-user-dialog
Apr 21, 2026
Merged

feat: add dedicated Invite User button and dialog to IAM Users UI#26
roncodes merged 3 commits intomainfrom
feat/invite-user-dialog

Conversation

@roncodes
Copy link
Copy Markdown
Member

Summary

Adds a clean, focused Invite User dialog to the IAM Users index page alongside the existing New User button. This is the frontend companion to core-api#205 which restores cross-organisation invite support.


What's New

Invite User button

A new Invite User button (✈ paper-plane icon) appears in the Users page toolbar between the refresh button and the existing New User button. It is gated behind the same iam create user permission as the New User button.

Invite User dialog

A minimal, focused modal with three fields:

Field Required Notes
Email Yes The only field strictly needed to issue an invite
Name No Required by the backend only for brand-new users
Role No Pre-assigns a role; user can change after acceptance

This is intentionally lighter than the full New User form — an invite is not a full user creation.

Smart success messaging

The backend returns invited: true when an existing user from another organisation is invited. The dialog uses this to show a contextually correct success notification:

  • Existing user"Invitation sent. The user will receive an email to join your organisation."
  • New user"Invitation sent. A pending account has been created and the user will be asked to set a password."

Files Changed

File Change
addon/components/modals/invite-user.hbs New minimal invite dialog template
addon/components/modals/invite-user.js New Glimmer component backing class
app/components/modals/invite-user.js New re-export shim (follows existing pattern)
addon/controllers/users/index.js Added inviteUser action + Invite User button in actionButtons
translations/en-us.yaml Added iam.users.index.invite-user and iam.users.invite.* keys

Related

  • Backend: fleetbase/core-api#205 — restores cross-org invite flow, registers the POST users/invite-user route, and fixes the CreateUserRequest uniqueness regression.

Ronald A Richardson and others added 3 commits April 20, 2026 22:35
## Summary

Adds a clean, focused 'Invite User' dialog to the IAM Users index page
alongside the existing 'New User' button. This is the frontend companion
to the core-api fix that restores cross-organisation invite support.

## Changes

### addon/components/modals/invite-user.hbs (new)
Minimal invite dialog with three fields:
- Email (required) - the only field strictly needed for an invite
- Name (optional) - required by the backend only for brand-new users
- Role (optional) - pre-assigns a role on acceptance

### addon/components/modals/invite-user.js (new)
Glimmer component backing class. The modal is fully data-driven via the
modalsManager options hash; no tracked state or actions are needed in
the component itself.

### app/components/modals/invite-user.js (new)
Re-export shim following the existing pattern in app/components/modals/.

### addon/controllers/users/index.js
- Added 'Invite User' button (paper-plane icon) to actionButtons, placed
  between the refresh button and the existing 'New User' button.
- Added inviteUser() @action that opens the new modal and POSTs to
  users/invite-user. Handles both response shapes:
    - { invited: true }  -> existing user cross-org invite success message
    - { invited: false } -> new pending user creation success message

### translations/en-us.yaml
- iam.users.index.invite-user: button label
- iam.users.invite.*: full set of dialog strings (title, description,
  field placeholders, help text, success messages, validation warning)
@roncodes roncodes merged commit 60bf10a into main Apr 21, 2026
4 checks passed
@roncodes roncodes deleted the feat/invite-user-dialog branch April 21, 2026 08:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant