prepare("SELECT id FROM master_menu WHERE master_akses = '0' AND id != '13'"); $stmt->execute(); $menu_ids = $stmt->fetchAll(PDO::FETCH_COLUMN, 0); foreach ($menu_ids as $id) { $armenu2[$id]['menu'] = $id; } // Define user data and access permissions if (isset($_SESSION['user'])) { // Fetch user details $stmt = $pdo->prepare("SELECT id, id_data_server, id_group_akses, nama, profile FROM user_akses WHERE id = :id"); $stmt->bindParam(':id', $_SESSION['user']); $stmt->execute(); $UserAdminAkses = $stmt->fetch(PDO::FETCH_ASSOC); // Fetch group access details $stmt = $pdo->prepare("SELECT id_data_server,akses,per_marketing,tagihan_berjalan FROM group_akses WHERE id = :id"); $stmt->bindParam(':id', $UserAdminAkses['id_group_akses']); $stmt->execute(); $GroupUserAdminAkses = $stmt->fetch(PDO::FETCH_ASSOC); // Define SQL filters based on user access $SvId = $UserAdminAkses['id_data_server']; // $SvId = implode(',', array_map('intval', $UserAdminAkses['id_data_server'])); $SvNama = $UserAdminAkses['nama']; //jika user adalah marketing if($GroupUserAdminAkses['per_marketing'] == 'Y'){ $SqlSvData = "id_data_server IN ($SvId) AND id_marketing = '$UserAdminAkses[id]' AND"; $SqlDataWHIdM = "WHERE id_data_server IN ($SvId) AND id_marketing = '$UserAdminAkses[id]'"; } else{ $SqlSvData = "id_data_server IN ($SvId) AND"; $SqlDataWHIdM = "WHERE id_data_server IN ($SvId)"; } $bulanIni = date("Y-m"); //Logika Hanya Muncul Tagihan Bulan Berjalan di Tunggakan if($GroupUserAdminAkses['tagihan_berjalan'] == 'Y'){ $tagihanJalan = "SUBSTRING(limit_pembayaran, 1, 7) = '$bulanIni' AND"; } else { $tagihanJalan = ""; } // $SqlSvData = "id_data_server IN ($SvId) AND"; $SqlDataWH = "WHERE id IN ($SvId)"; $SqlDataWHId = "WHERE id_data_server IN ($SvId)"; $SqlDataWHLikeId = "WHERE id_data_server LIKE '%$SvId%'"; $SqlDataId = "AND id_data_server IN ($SvId)"; // Merge menu access $array2 = json_decode($GroupUserAdminAkses['akses'], true); $mergedArray = array_replace($armenu2, $array2); $menu_akses = json_encode($mergedArray); $profile = $UserAdminAkses['profile']; } else { // Fetch master user details $stmt = $pdo->prepare("SELECT id, nama_pemilik, akses, profile,expaired_date, quick_setting FROM data_server WHERE id = :id"); $stmt->bindParam(':id', $_SESSION['master']); $stmt->execute(); $UserMaster = $stmt->fetch(PDO::FETCH_ASSOC); $SvId = $UserMaster['id']; // $SvId = implode(',', array_map('intval', $UserMaster['id'])); $SvNama = $UserMaster['nama_pemilik']; if ($UserMaster['id'] == '1') { // Define SQL filters for master user $SqlSvData = ''; $SqlDataWH = "WHERE id != '1'"; $SqlDataWHId = ""; $SqlDataWHIdM = ""; $SqlDataWHLikeId = ""; $SqlDataId = ""; $menu_akses = $UserMaster['akses']; } else { // Define SQL filters for non-master user $SqlSvData = "id_data_server = '$SvId' AND"; $SqlDataWH = "WHERE id IN ($SvId)"; $SqlDataWHId = "WHERE id_data_server IN ($SvId)"; $SqlDataWHIdM = "WHERE id_data_server IN ($SvId)"; $SqlDataWHLikeId = "WHERE id_data_server LIKE '%$SvId%'"; $SqlDataId = "AND id_data_server IN ($SvId)"; } $tagihanJalan = ""; // Merge menu access $array2 = json_decode($UserMaster['akses'], true); $mergedArray = array_replace($armenu2, $array2); $menu_akses = json_encode($mergedArray); $profile = $UserMaster['profile']; } // Ambil data dari POST atau variabel lain $json_array = json_decode($menu_akses, true); // Query untuk mendapatkan data menu dan submenu dari database $menu_query = " SELECT * FROM master_menu WHERE id != '26' ORDER BY urutan ASC "; $result = mysqli_query($con, $menu_query); if (!$result) { echo 'Error executing query: ' . mysqli_error($con); exit; } // Simpan hasil query ke dalam array $menus = []; while ($row = mysqli_fetch_assoc($result)) { $menus[] = $row; } // Index berdasarkan ID menu untuk akses cepat $menu_map = []; foreach ($menus as $menu) { $menu_map[$menu['id']] = $menu; } // Bebaskan hasil query mysqli_free_result($result); // Buat array \$menus_user berdasarkan ID di \$json_array $menus_user = array_filter($menus, function($menu) use ($json_array) { return isset($json_array[$menu['id']]); }); // encrypt url define('ENCRYPTION_KEY', hex2bin('9a307dfcf16ac2e4406b1a59a31c1d096eafe37e40c60ddee4bb827b6a947079')); define('ENCRYPTION_METHOD', 'AES-256-CBC'); function encrypt_url($data) { $iv = random_bytes(16); $encrypted = openssl_encrypt($data, ENCRYPTION_METHOD, ENCRYPTION_KEY, OPENSSL_RAW_DATA, $iv); // Gabungkan IV hex + "::" + encrypted base64, lalu base64 encode seluruh string $result = base64_encode(bin2hex($iv) . "::" . base64_encode($encrypted)); return $result; } function decrypt_url($data) { $decoded = base64_decode($data); if ($decoded === false) return false; $parts = explode('::', $decoded); if (count($parts) !== 2) return false; $iv = hex2bin($parts[0]); $encrypted_data = base64_decode($parts[1]); return openssl_decrypt($encrypted_data, ENCRYPTION_METHOD, ENCRYPTION_KEY, OPENSSL_RAW_DATA, $iv); } // Data Pages AND POST // if ($_SERVER['QUERY_STRING'] != '') { // $pag = decrypt_url($_SERVER['QUERY_STRING']); // $page = explode("|", $pag); // $pages = $page[0]; // } else { // $pages = 'dashboard'; // } if ($_SERVER['QUERY_STRING'] != '') { $pag = decrypt_url($_SERVER['QUERY_STRING']); $page = explode("|", $pag); $pagex = $page[0]; $menu_links = array_column($menus_user, 'link_menu'); $menu_other = array_column($menus, 'link_menu'); // if (in_array($pagex, $menu_links)) { // $pages = $pagex; // } else { // $pages = (in_array($pagex, $menu_links) && !in_array($pagex, $menu_other)) ? $pagex : 'dashboard'; // } $pages = $pagex; } else { $pages = 'dashboard'; } //DATA Page $Page = new Pages(); $Page->set_page($pages); $stm = $pdo->prepare("SELECT status_payment_gateway FROM data_server WHERE id IN (:id)"); $stm->bindParam(':id', $SvId); $stm->execute(); $datastatus = $stm->fetch(PDO::FETCH_ASSOC); $statuspaygw = $datastatus['status_payment_gateway']; ?> ManjaPro
AdminLTELogo
Masa aktif Aplikasi BilsPro telah berakhir hari lalu
= 0) { ?>
Masa aktif Aplikasi BilsPro akan berakhir hari lagi
prepare("SELECT expaired_date FROM data_server WHERE id = :id"); $stmt->bindParam(':id', $GroupUserAdminAkses['id_data_server']); $stmt->execute(); $AksesUserMenu = $stmt->fetch(PDO::FETCH_ASSOC); $expiredDate = $AksesUserMenu['expaired_date']; $currentDate = date('Y-m-d'); $diff = strtotime($expiredDate) - strtotime($currentDate); $daysLeft = ceil($diff / (60 * 60 * 24)); if ($daysLeft < 0) { $status_menu = "Tidak Aktif"; } else{ $status_menu = "Aktif"; } } ?>
get_page().'.php'; ?>