bindValue('user_id', $user); return $getPerms->execute() ? (int)$getPerms->fetchColumn(1) : 0; } function perms_get_role(string $prefix, int $role): int { if (!in_array($prefix, MSZ_PERM_MODES) || $role < 1) { return 0; } $allowKey = perms_get_key($prefix, MSZ_PERMS_ALLOW); $denyKey = perms_get_key($prefix, MSZ_PERMS_DENY); $getPerms = db_prepare(" SELECT `{$allowKey}` &~ `{$denyKey}` FROM `msz_permissions` WHERE `role_id` = :role_id AND `user_id` IS NULL "); $getPerms->bindValue('role_id', $role); return $getPerms->execute() ? (int)$getPerms->fetchColumn() : 0; } function perms_get_user_raw(int $user): array { if ($user < 1) { return perms_create(); } $getPerms = db_prepare(sprintf(' SELECT `%s` FROM `msz_permissions` WHERE `user_id` = :user_id AND `role_id` IS NULL ', implode('`, `', perms_get_keys()))); $getPerms->bindValue('user_id', $user); $perms = db_fetch($getPerms); if (empty($perms)) { return perms_create(); } return $perms; } function perms_get_role_raw(int $role): array { if ($role < 1) { return perms_create(); } $getPerms = db_prepare(sprintf(' SELECT `%s` FROM `msz_permissions` WHERE `user_id` IS NULL AND `role_id` = :role_id ', implode('`, `', perms_get_keys()))); $getPerms->bindValue('role_id', $role); $perms = db_fetch($getPerms); if (empty($perms)) { return perms_create(); } return $perms; } function perms_check(int $perms, int $perm): bool { return ($perms & $perm) > 0; }