66 lines
2.3 KiB
PHP
66 lines
2.3 KiB
PHP
<?php
|
|
if (!defined('ABSPATH')) {
|
|
exit; // Exit if accessed directly
|
|
}
|
|
|
|
class AIOWPSecurity_Utility_Permissions {
|
|
|
|
/**
|
|
* Check whether the current logged in user has the capability to manage the AIOWPS plugin and check if the given nonce is valid
|
|
*
|
|
* @param string $nonce - a WordPress nonce
|
|
* @param string $nonce_name - the name of the nonce
|
|
*
|
|
* @return WP_Error|boolean - return true if all checks pass otherwise return a WP_Error
|
|
*/
|
|
public static function check_nonce_and_user_cap($nonce, $nonce_name) {
|
|
if (!self::has_manage_cap()) return new WP_Error('missing_capability', 'Current user lacks the required capability for this action.');
|
|
if (!wp_verify_nonce($nonce, $nonce_name)) return new WP_Error('invalid_nonce', 'Invalid nonce ('.$nonce_name.') provided for this action.');
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Check whether the current logged in user has the capability to manage the AIOWPS plugin
|
|
*
|
|
* @return Boolean - true if the logged in user has capability to manage the AIOWPS plugin, otherwise false
|
|
*/
|
|
public static function has_manage_cap() {
|
|
$cap = apply_filters('aios_management_permission', 'manage_options');
|
|
// This filter will useful when the administrator would like to give permission to access AIOWPS to Security Analyst.
|
|
return apply_filters('aiowps_management_capability', current_user_can($cap));
|
|
}
|
|
|
|
/**
|
|
* This function checks if premium is installed and returns true otherwise false
|
|
*
|
|
* @return boolean - true if premium is installed otherwise false
|
|
*/
|
|
public static function is_premium_installed() {
|
|
return (defined('AIOWPSECURITY_NOADS_B') && AIOWPSECURITY_NOADS_B) ? true : false;
|
|
}
|
|
|
|
/**
|
|
* Checks whether it's the main site and super admin
|
|
*
|
|
* @return Bool - true if it's the main site and super admin otherwise false
|
|
*/
|
|
public static function is_main_site_and_super_admin() {
|
|
return (is_main_site() && is_super_admin());
|
|
}
|
|
|
|
/**
|
|
* Get user role names
|
|
*
|
|
* @return array - role name and id as key
|
|
*/
|
|
public static function get_user_roles() {
|
|
$user_roles = array();
|
|
if (is_multisite()) $user_roles['super_admin'] = __('Multisite Super Admin', 'all-in-one-wp-security-and-firewall');
|
|
$wp_roles = wp_roles();
|
|
foreach ($wp_roles->role_names as $id => $name) {
|
|
$user_roles[$id] = translate_user_role($name);
|
|
}
|
|
return $user_roles;
|
|
}
|
|
}
|