[], 'deny' => []]; // Every client - and an archived one only when it has a rule, so saving does not drop it. Those with a rule first. $form_clients = []; $sql = mysqli_query($mysqli, "SELECT client_id, client_name, client_abbreviation, client_archived_at FROM clients WHERE client_archived_at IS NULL OR client_id IN (SELECT client_id FROM user_client_permissions WHERE user_id = $form_user_id) ORDER BY client_id IN (SELECT client_id FROM user_client_permissions WHERE user_id = $form_user_id) DESC, client_archived_at IS NOT NULL, client_name ASC"); while ($row = mysqli_fetch_assoc($sql)) { $form_clients[] = $row; } $value = function ($key) use ($form) { return escapeHtml($form[$key] ?? ''); }; ?>
JPG, PNG, GIF or WebP, up to 5 MB. Without one, their initials.
data-user-name>
If you change it, they sign in with the new address - the old one gets a notice.
>
What they can see and change. Roles
data-user-password>
Give it to them yourself, or have it emailed - either way, they should change it once they're in. Set, they're emailed that it changed. It also unlocks their copy of the credential vault, so it is set here rather than reset by email.
The address, the password and where to sign in.
Mail isn't set up, so nothing is emailed - give them their password yourself.
Multi-factor authentication
>
If they haven't set it up yet, they're asked to at their next sign in - and they can't turn it off.
For a lost or replaced phone - their authenticator app is forgotten, and so are their remembered browsers.
Only limits them to those clients - with none, they see every client. Never keeps them out of a client, whatever else is set.
Archived
> > >
No clients yet.