Add agent invites: New User now emails an invite by default so the agent chooses their own password on the new join.php page, and Set a password now stays as the other option with the email that contained the password removed; database 3.5.1 adds user_invites with only a hash of the link's token kept and the vault master key locked under that token until it is accepted, cancelled or runs out; new functions/user_invite.php; adds the Invited view to Users with Send again, Get the link (shown once, also used when mail is not set up) and Cancel invite; waiting invites count toward the agent user limit and a role with waiting invites cannot be archived; the Get started team step invites when mail is set up; the quick look shows whose invite an agent joined from; replaces the new account email preview with the invite email; the nightly job clears invites cancelled or run out more than 90 days ago; adds userAvatarStore(); updates the changelog

This commit is contained in:
johnnyq
2026-10-28 01:16:49 -04:00
parent 33b13206a5
commit 568a907ff9
19 changed files with 1389 additions and 144 deletions

View File

@@ -161,8 +161,9 @@ function gettingStartedSteps() {
break;
case 'team':
$agents = $count("SELECT COUNT(*) FROM users WHERE user_type = 1 AND user_status = 1 AND user_archived_at IS NULL");
$done = $agents > 1;
$status = $agents === 1 ? 'Just you' : "$agents people";
$invited = userInvitesHoldingSeats();
$done = $agents > 1 || $invited > 0;
$status = ($agents === 1 ? 'Just you' : "$agents people") . ($invited ? ", $invited invited" : '');
break;
case 'content':
$templates = $count("SELECT (SELECT COUNT(*) FROM ticket_templates) + (SELECT COUNT(*) FROM canned_responses) + (SELECT COUNT(*) FROM document_templates)");