Files
wevads-platform/scripts/o365-manager.php
2026-02-26 04:53:11 +01:00

83 lines
5.2 KiB
PHP
Executable File

<?php
$pdo = new PDO('pgsql:host=localhost;dbname=adx_system', 'admin', 'admin123');
$stats = [
'total' => $pdo->query("SELECT COUNT(*) FROM admin.office_accounts")->fetchColumn() ?: 0,
'active' => $pdo->query("SELECT COUNT(*) FROM admin.office_accounts WHERE status='Active'")->fetchColumn() ?: 0,
'blocked' => $pdo->query("SELECT COUNT(*) FROM admin.office_accounts WHERE status='Blocked'")->fetchColumn() ?: 0,
];
?>
<!DOCTYPE html>
<html><head>
<meta charset="UTF-8">
<title>O365 Manager - Office 365 Accounts</title>
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:system-ui;background:#0a0a0f;color:#e2e8f0;min-height:100vh;padding:20px}
h1{color:#0078d4;margin-bottom:10px}
.back-link{color:#5eead4;text-decoration:none;display:inline-block;margin-bottom:20px}
.process-box{background:#12121a;border-radius:12px;padding:20px;margin-bottom:20px;border:1px solid #333}
.process-title{color:#0078d4;margin-bottom:15px;font-size:1.1rem}
.process-flow{display:flex;flex-wrap:wrap;gap:15px;align-items:center;justify-content:center}
.process-step{background:#1a1a2e;border:2px solid #333;border-radius:10px;padding:15px;min-width:130px;text-align:center}
.process-step .icon{font-size:1.8rem;margin-bottom:8px}
.process-step .num{width:24px;height:24px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-size:0.8rem;font-weight:bold;margin-bottom:5px}
.process-step .title{font-weight:bold;font-size:0.85rem;margin-bottom:5px}
.process-step .desc{font-size:0.7rem;opacity:0.8}
.process-arrow{color:#0078d4;font-size:1.5rem}
.summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:15px;margin-bottom:25px}
.summary-card{background:#12121a;padding:20px;border-radius:12px;text-align:center;border-left:4px solid #0078d4}
.summary-card.green{border-color:#10b981}
.summary-card.red{border-color:#ef4444}
.summary-val{font-size:2rem;font-weight:bold;color:#0078d4}
.summary-card.green .summary-val{color:#10b981}
.summary-card.red .summary-val{color:#ef4444}
.summary-lbl{font-size:0.85rem;opacity:0.7}
.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:15px;margin-top:15px;font-size:0.85rem}
.info-grid div{background:#1a1a2e;padding:12px;border-radius:8px}
.panel{background:#12121a;border-radius:12px;padding:20px;margin-top:20px}
.btn{padding:10px 20px;border:none;border-radius:6px;cursor:pointer;background:#0078d4;color:white}
</style>
</head><body>
<a href="/system-flows.php" class="back-link"><i class="fas fa-arrow-left"></i> Retour aux System Flows</a>
<div class="process-box">
<h3 class="process-title"><i class="fab fa-microsoft"></i> Comment fonctionne Office 365 Accounts ?</h3>
<div class="process-flow">
<div class="process-step"><div class="icon">📥</div><div class="num" style="background:#0078d4;color:white">1</div><div class="title" style="color:#0078d4">IMPORT CSV</div><div class="desc">email:password<br>liste comptes</div></div>
<div class="process-arrow">→</div>
<div class="process-step"><div class="icon">🔑</div><div class="num" style="background:#f59e0b;color:black">2</div><div class="title" style="color:#f59e0b">OAUTH FLOW</div><div class="desc">Microsoft Graph<br>get tokens</div></div>
<div class="process-arrow">→</div>
<div class="process-step"><div class="icon">📧</div><div class="num" style="background:#10b981;color:white">3</div><div class="title" style="color:#10b981">SMTP TEST</div><div class="desc">Vérifier envoi<br>SMTP/IMAP</div></div>
<div class="process-arrow">→</div>
<div class="process-step"><div class="icon">✅</div><div class="num" style="background:#5eead4;color:black">4</div><div class="title" style="color:#5eead4">ACTIVE</div><div class="desc">Compte prêt<br>pour campagnes</div></div>
</div>
<div class="info-grid">
<div><strong style="color:#0078d4">📥 Import:</strong> Comptes O365/Outlook au format email:password, détection auto tenant</div>
<div><strong style="color:#f59e0b">🔑 OAuth:</strong> Microsoft Graph API pour obtenir access_token et refresh_token</div>
<div><strong style="color:#5eead4">📧 Envoi:</strong> SMTP via outlook.office365.com:587 ou Graph API sendMail</div>
</div>
</div>
<h1><i class="fab fa-microsoft"></i> O365 Manager</h1>
<p style="opacity:0.7;margin-bottom:20px">Gestion des comptes Office 365 / Outlook</p>
<div class="summary">
<div class="summary-card"><div class="summary-val"><?=$stats['total']?></div><div class="summary-lbl">Total Comptes</div></div>
<div class="summary-card green"><div class="summary-val"><?=$stats['active']?></div><div class="summary-lbl">Active</div></div>
<div class="summary-card red"><div class="summary-val"><?=$stats['blocked']?></div><div class="summary-lbl">Blocked</div></div>
</div>
<div class="panel">
<h4 style="color:#0078d4;margin-bottom:15px"><i class="fas fa-link"></i> Accès rapide</h4>
<div style="display:flex;gap:10px;flex-wrap:wrap">
<a href="/office-management.php" class="btn"><i class="fas fa-users"></i> Office Management</a>
<a href="/office-workflow.php" class="btn"><i class="fas fa-cogs"></i> Workflow Automation</a>
<a href="/office365-hub.php" class="btn"><i class="fas fa-th"></i> O365 Hub</a>
</div>
</div>
</body></html>