/* ============================================ USER MANAGEMENT — Roles & directory sync ============================================ */ const USERS = [ { name: "Rio Pratama", email: "rio.pratama@bjp-industries.id", dept: "Maintenance · Line 3", role: "Operator", status: "active", lastSeen: "now", sso: true }, { name: "Anwar Santoso", email: "anwar.santoso@bjp-industries.id", dept: "Plant Operations", role: "Operator", status: "active", lastSeen: "12 min ago", sso: true }, { name: "Maya Indrawan", email: "maya.indrawan@bjp-industries.id", dept: "Process Engineering", role: "User", status: "active", lastSeen: "1 h ago", sso: true }, { name: "Surya Permana", email: "surya.permana@bjp-industries.id", dept: "Reliability", role: "Operator", status: "active", lastSeen: "today", sso: true }, { name: "Hadi Wijaya", email: "hadi.wijaya@bjp-industries.id", dept: "Quality Assurance", role: "User", status: "active", lastSeen: "today", sso: true }, { name: "Dewi Lestari", email: "dewi.lestari@bjp-industries.id", dept: "Plant IT", role: "Admin", status: "active", lastSeen: "now", sso: true }, { name: "Bayu Nugroho", email: "bayu.nugroho@bjp-industries.id", dept: "EHS / Safety", role: "Admin", status: "active", lastSeen: "2 d ago", sso: true }, { name: "Tirta Anggoro", email: "tirta.anggoro@bjp-industries.id", dept: "Maintenance · Line 1", role: "User", status: "pending", lastSeen: "—", sso: false }, { name: "Putri Sari", email: "putri.sari@bjp-industries.id", dept: "Process Engineering", role: "User", status: "active", lastSeen: "3 d ago", sso: true }, { name: "Eko Saputra", email: "eko.saputra@bjp-contractor.id", dept: "External · Vendor", role: "User", status: "suspended",lastSeen: "21 d ago", sso: false }, ]; function UsersScreen() { const [users, setUsers] = useState(USERS); const updateRole = (email, role) => { setUsers(prev => prev.map(u => u.email === email ? { ...u, role } : u)); }; return ( <>
{users.filter(u => u.status === "active").length} active · {users.filter(u => u.status === "pending").length} pending · {users.filter(u => u.status === "suspended").length} suspended · last directory sync 14:00 today
| User | Department | Status | SSO | Role | Last Seen | |
|---|---|---|---|---|---|---|
|
{u.name.split(" ").map(n => n[0]).join("").slice(0, 2)}
{u.name}
{u.email}
|
{u.dept} |
{u.status === "active" && |
{u.sso
? |
{u.lastSeen} |