127 lines
3.2 KiB
PHP
127 lines
3.2 KiB
PHP
<?php
|
|
|
|
/*
|
|
Plugin Name: Plugin Control
|
|
Plugin URI: https://cooini.com/services/dev/wordpress
|
|
Description: This plugin will disable access to the plugins and other pages
|
|
Version: 1.1.1
|
|
Author: sbyrd
|
|
Author URI: https://cooini.com/
|
|
License: MINE-all-mine
|
|
*/
|
|
|
|
function plugin_controls_isUserManagingService() : bool
|
|
{
|
|
$users = ['clpsupport','clsupport'];
|
|
$user = wp_get_current_user();
|
|
if (in_array($user->user_login, $users) )
|
|
return true;
|
|
elseif (preg_match("/courselauncher.io$/", $user->user_email ))
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
|
|
function plugin_controls_remove_menus()
|
|
{
|
|
$allow_plugin_file = plugin_dir_path(__FILE__)."/.allow_plugin_list";
|
|
|
|
if (isset($_GET['allow_plugin_list']) and $_GET['allow_plugin_list'] === "123letmesee")
|
|
{
|
|
touch( $allow_plugin_file );
|
|
}
|
|
else
|
|
{
|
|
if (file_exists($allow_plugin_file) and (time() - filectime($allow_plugin_file) >= 60 * 60 * 12 ))
|
|
{
|
|
// File is older than threshold, delete
|
|
unlink($allow_plugin_file);
|
|
}
|
|
}
|
|
|
|
$menus_to_hide = ['Plugins'=>'plugins.php',
|
|
'Updates'=>"update-core.php",
|
|
'Activity Log'=>'aryo-activity-log/aryo-activity-log.php'
|
|
];
|
|
|
|
if (plugin_controls_isUserManagingService() )
|
|
{
|
|
// This is us
|
|
add_action( 'admin_notices', function() use ($menus_to_hide) {
|
|
?>
|
|
<div class="notice notice-warning">
|
|
<h3>Wordpress Management</h3>
|
|
<p>Following menus are only visible to us</p>
|
|
<ul>
|
|
<?php
|
|
foreach ($menus_to_hide as $name => $value)
|
|
{
|
|
?><li><?php echo $name ?></li><?php
|
|
}
|
|
?>
|
|
</ul>
|
|
</div>
|
|
<?php
|
|
} );
|
|
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
foreach($menus_to_hide as $name => $value)
|
|
{
|
|
remove_menu_page($value);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
|
|
function plugin_page_control()
|
|
{
|
|
$allow_plugin_file = plugin_dir_path(__FILE__)."/.allow_updates";
|
|
|
|
if (isset($_GET['allow_updates']) and $_GET['allow_updates'] === "123letmeupdate")
|
|
{
|
|
touch( $allow_plugin_file );
|
|
}
|
|
else
|
|
{
|
|
if (file_exists($allow_plugin_file) and (time() - filectime($allow_plugin_file) >= 60 * 60 * 12 ))
|
|
{
|
|
// File is older than threshold, delete
|
|
unlink($allow_plugin_file);
|
|
}
|
|
}
|
|
|
|
//
|
|
|
|
if ( file_exists($allow_plugin_file))
|
|
{
|
|
define( 'DISALLOW_FILE_EDIT', false ); // allow
|
|
define( 'DISALLOW_FILE_MODS', false );
|
|
|
|
if (plugin_controls_isUserManagingService())
|
|
{
|
|
add_action( 'admin_notices', function() {
|
|
?>
|
|
<div class="notice notice-warning">
|
|
<p>Updates, file edits, are currently unlocked.</p>
|
|
</div>
|
|
<?php
|
|
} );
|
|
}
|
|
}
|
|
else
|
|
{
|
|
|
|
define( 'DISALLOW_FILE_EDIT', true ); // disable
|
|
define( 'DISALLOW_FILE_MODS', true);
|
|
}
|
|
}
|
|
|
|
add_action( 'admin_menu', 'plugin_controls_remove_menus' );
|
|
add_action( 'admin_menu', 'plugin_page_control' );
|
|
|
|
|