Files
dostavka_vodi/wp-content/plugins/all-in-one-wp-security-and-firewall/classes/wp-security-utility-permissions.php
User A0264400 a766acdc90 first commit
2026-04-01 23:20:16 +03:00

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;
}
}