Severity: CRITICAL
Location: src/Controllers/AdminUserController.php:232
Bug: After appending $data['role'] = $newRole, the update call omits the $allowProtected=true flag. 'role' is in PROTECTED_UPDATE_KEYS, so the method throws InvalidArgumentException.
Fix: User::update((int) $id, $data, true); — match the pattern already used in changeRole().
Status: open. Will reply with remediation details when resolved.