19 lines
1.3 KiB
PHP
Executable File
19 lines
1.3 KiB
PHP
Executable File
<?php
|
|
require_once("/opt/wevads/config/credentials.php");
|
|
header('Content-Type: application/json');
|
|
header('Access-Control-Allow-Origin: *');
|
|
$action=$_GET['action']??'stats';
|
|
$db=get_pg("adx_system");
|
|
if(!$db){echo json_encode(['status'=>'error','message'=>'DB']);exit;}
|
|
switch($action){
|
|
case 'stats':
|
|
$r=pg_query($db,"SELECT COUNT(DISTINCT admin_email) as total, COUNT(DISTINCT admin_email) FILTER(WHERE status='active') as active, COUNT(DISTINCT tenant_id) as tenants, COUNT(*) as managed_accounts FROM admin.office_accounts WHERE admin_email IS NOT NULL AND admin_email!=''");
|
|
if($r && pg_num_rows($r)>0){$s=pg_fetch_assoc($r);echo json_encode(['status'=>'success','data'=>$s]);}
|
|
else echo json_encode(['status'=>'success','data'=>['total'=>0,'active'=>0,'tenants'=>0,'managed_accounts'=>0]]);break;
|
|
case 'list':
|
|
$r=pg_query($db,"SELECT admin_email as email, tenant_id as tenant, 'admin' as role, COUNT(*) as accounts, true as mfa, MAX(last_used) as last_login FROM admin.office_accounts WHERE admin_email IS NOT NULL AND admin_email!='' GROUP BY admin_email,tenant_id ORDER BY accounts DESC LIMIT 30");
|
|
$rows=[];if($r)while($row=pg_fetch_assoc($r))$rows[]=$row;
|
|
echo json_encode(['status'=>'success','data'=>$rows]);break;
|
|
default:echo json_encode(['status'=>'success','endpoints'=>['stats','list']]);
|
|
}
|