- New Integrity class checksums the files that implement/enforce the free/paid split (SubApps, Analytics, AnalyticsData, WhiteLabel, Shell, License itself, and the two bootstrap files) against a manifest generated at zip-build time. No manifest present (a dev checkout) is never treated as tampered. - License::is_feature_available() checks Integrity::is_tampered() before checking the actual license, so a distributed copy with the check stripped/commented out re-locks every paid feature even with an otherwise-valid license, rather than the plugin trusting whatever code happens to still be there. - bin/build-integrity-manifest.php generates the manifest against a staged zip-build copy (gitignored build artifact, same pattern as app/dist) — now a required step in the zip-build workflow. - Verified live: untampered+unlicensed stays locked, untampered+licensed unlocks, one tampered file re-locks regardless of license status (tested via a temporary mu-plugin faking an active license, kept outside any protected file so it didn't itself trip the check). This raises the bar against the realistic low-effort case (finding and deleting/inverting the one license-check line) but can't stop someone who rewrites a file's logic to never call the gate, or who edits this integrity check itself — an inherent limit of protection living in plain, editable PHP. Co-Authored-By: Claude Sonnet 5 <[email protected]>
48 lines
2.1 KiB
PHP
48 lines
2.1 KiB
PHP
<?php
|
|
/*
|
|
* Plugin Name: Aurora Admin
|
|
* Plugin URI: https://aurora.co
|
|
* Description: A modern, fast WordPress admin interface.
|
|
* Version: 2.0.0
|
|
* Author: Aurora
|
|
* Text Domain: aurora-admin
|
|
* Domain Path: /languages/
|
|
* Requires PHP: 7.4
|
|
* Requires at least: 5.5
|
|
* License: GPLv2 or later
|
|
*/
|
|
|
|
defined("ABSPATH") || exit();
|
|
|
|
define("AURORA_ADMIN_VERSION", "2.0.0");
|
|
define("AURORA_ADMIN_PATH", plugin_dir_path(__FILE__));
|
|
define("AURORA_ADMIN_URL", plugins_url("aurora-admin/"));
|
|
|
|
require AURORA_ADMIN_PATH . "admin/src/App/AuroraAdmin.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Options/Settings.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Licensing/Integrity.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Licensing/License.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Utility/Assets.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Shell/MenuSerializer.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Shell/Shell.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Pages/DashboardTakeover.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Pages/SettingsPage.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Rest/DashboardData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Analytics/Analytics.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Rest/AnalyticsData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Rest/PluginsData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Rest/CommentsData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Posts/ScheduledDayFilter.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/WhiteLabel/WhiteLabel.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Pages/SubApps.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/MenuCreator/MenuCreator.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/MenuCreator/MenuCreatorData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Notices/Notices.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Notices/NoticesData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/Roles/RolesData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/ActivityLog/ActivityLog.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/ActivityLog/ActivityLogData.php";
|
|
require AURORA_ADMIN_PATH . "admin/src/DatabaseExplorer/DatabaseExplorerData.php";
|
|
|
|
new AuroraAdmin\App\AuroraAdmin();
|