prepare("INSERT INTO users (username, password_hash, is_admin) VALUES (?, ?, ?)");
$stmt->execute([$username, $pass, $is_admin]);
}
if(isset($_POST['create_group'])) {
$stmt = $pdo->prepare("INSERT INTO groups (name) VALUES (?)");
$stmt->execute([$_POST['group_name']]);
}
if(isset($_POST['assign_group'])) {
$stmt = $pdo->prepare("INSERT OR IGNORE INTO user_groups (user_id, group_id) VALUES (?, ?)");
$stmt->execute([$_POST['user_id'], $_POST['group_id']]);
}
if(isset($_POST['update_user_channels'])) {
$ch = $_POST['channels'] ?? [];
$ch_str = is_array($ch) ? implode(',', $ch) : '';
$stmt = $pdo->prepare("UPDATE users SET notify_channels=?, telegram_id=?, email=?, whatsapp_number=? WHERE id=?");
$stmt->execute([$ch_str, $_POST['telegram_id'], $_POST['email'], $_POST['whatsapp_number'], $_POST['user_id']]);
echo "
User preferences updated!
";
}
if(isset($_POST['update_sys_config'])) {
$stmt = $pdo->prepare("UPDATE system_config SET v=? WHERE k=?");
$stmt->execute([$_POST['completed_days'], 'completed_days']);
$stmt->execute([$_POST['archived_days'], 'archived_days']);
echo "System Kanban Configuration updated!
";
}
}
$users = query("SELECT id, username, is_admin, notify_channels, telegram_id, email, whatsapp_number FROM users")->fetchAll();
$all_groups = query("SELECT * FROM groups")->fetchAll();
try {
$pdo->exec("CREATE TABLE IF NOT EXISTS system_config (k TEXT PRIMARY KEY, v TEXT)");
$pdo->exec("INSERT OR IGNORE INTO system_config (k, v) VALUES ('completed_days', '7')");
$pdo->exec("INSERT OR IGNORE INTO system_config (k, v) VALUES ('archived_days', '90')");
} catch(Exception $e) {}
$conf_comp = query("SELECT v FROM system_config WHERE k='completed_days'")->fetchColumn() ?: 7;
$conf_arch = query("SELECT v FROM system_config WHERE k='archived_days'")->fetchColumn() ?: 90;
?>
Create Group & Assign Role
System Operations & Configurations
Modify the global lifecycle durations for Kanban Auto-Archiving / Auto-Deleting processes.
User Profile & Settings (Channels)
Assign specific notification channels (Native, Telegram, Email, WhatsApp) to users. User must be created above first.
| Username | Active Channels | Telegram ID | Email | WhatsApp | Action |
Existing Groups Breakdown
= htmlspecialchars($g['name']) ?>
prepare("SELECT u.username FROM users u JOIN user_groups ug ON u.id = ug.user_id WHERE ug.group_id=?");
$stmt->execute([$g['id']]);
$g_users = $stmt->fetchAll();
foreach($g_users as $gu) echo "- ".htmlspecialchars($gu['username'])."
";
if(!$g_users) echo "- No users in group
";
?>
No groups registered.