Log every user login to Activity Logs
Track all logins (not just first) via ApplicationLogger user_login action. Add User Login filter option to logs-viewer. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
parent
aa5debc6c2
commit
9036bafc0d
2 changed files with 13 additions and 5 deletions
17
auth.php
17
auth.php
|
|
@ -11,6 +11,7 @@
|
|||
require_once __DIR__ . '/vendor/autoload.php';
|
||||
require_once __DIR__ . '/JWTValidator.php';
|
||||
require_once __DIR__ . '/UserRoleManager.php';
|
||||
require_once __DIR__ . '/ApplicationLogger.php';
|
||||
|
||||
$config = require __DIR__ . '/config.php';
|
||||
$action = $_GET['action'] ?? '';
|
||||
|
|
@ -41,12 +42,18 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST' && $action === 'login') {
|
|||
exit;
|
||||
}
|
||||
|
||||
// Register user role on first login
|
||||
// Register user role on first login (auto-promotes admin_emails)
|
||||
$email = strtolower($result['claims']['preferred_username'] ?? $result['claims']['upn'] ?? '');
|
||||
if ($email) {
|
||||
$roleManager = new UserRoleManager();
|
||||
$roleManager->getRole($email); // triggers auto-promotion for admin_emails
|
||||
}
|
||||
$name = $result['claims']['name'] ?? $email;
|
||||
$roleManager = new UserRoleManager();
|
||||
$role = $email ? $roleManager->getRole($email) : 'user';
|
||||
|
||||
// Log every login to Activity Logs
|
||||
$logger = new ApplicationLogger();
|
||||
$logger->log('user_login', ['email' => $email, 'name' => $name], [
|
||||
'role' => $role,
|
||||
'ip' => $_SERVER['REMOTE_ADDR'] ?? 'unknown'
|
||||
]);
|
||||
|
||||
// Store the raw idToken in a secure HttpOnly cookie (24h)
|
||||
$cookieOptions = [
|
||||
|
|
|
|||
|
|
@ -98,6 +98,7 @@ require_once __DIR__ . '/header.php';
|
|||
<label for="actionFilter">Action Type:</label>
|
||||
<select name="action" id="actionFilter" class="filter-select">
|
||||
<option value="all" <?php echo $action === 'all' ? 'selected' : ''; ?>>All Actions</option>
|
||||
<option value="user_login" <?php echo $action === 'user_login' ? 'selected' : ''; ?>>User Login</option>
|
||||
<option value="master_asset_submission" <?php echo $action === 'master_asset_submission' ? 'selected' : ''; ?>>Master Asset Submission</option>
|
||||
<option value="global_to_local_transform" <?php echo $action === 'global_to_local_transform' ? 'selected' : ''; ?>>Global to Local Transform</option>
|
||||
<option value="box_upload" <?php echo $action === 'box_upload' ? 'selected' : ''; ?>>Box Upload</option>
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue