From 4fc53d2b36a61d67672892bf09ea2e0de83e06f9 Mon Sep 17 00:00:00 2001 From: Amine Ben hammou Date: Mon, 18 Mar 2019 23:11:14 +0100 Subject: [PATCH] Make all users able to edit flags [MAILOET-1677] --- lib/API/JSON/v1/UserFlags.php | 2 +- lib/Config/AccessControl.php | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/lib/API/JSON/v1/UserFlags.php b/lib/API/JSON/v1/UserFlags.php index f0d60f72f5..6677cf5522 100644 --- a/lib/API/JSON/v1/UserFlags.php +++ b/lib/API/JSON/v1/UserFlags.php @@ -17,7 +17,7 @@ class UserFlags extends APIEndpoint { private $user_flags; public $permissions = array( - 'global' => AccessControl::PERMISSION_MANAGE_SETTINGS + 'global' => AccessControl::ALL_ROLES_ACCESS ); function __construct(UserFlagsController $user_flags) { diff --git a/lib/Config/AccessControl.php b/lib/Config/AccessControl.php index 34f96d4b0e..ed3b1fe6b2 100644 --- a/lib/Config/AccessControl.php +++ b/lib/Config/AccessControl.php @@ -8,12 +8,12 @@ if (!defined('ABSPATH')) exit; class AccessControl { const PERMISSION_ACCESS_PLUGIN_ADMIN = 'mailpoet_access_plugin_admin'; const PERMISSION_MANAGE_SETTINGS = 'mailpoet_manage_settings'; - const PERMISSION_MANAGE_USER_FLAGS = 'mailpoet_manage_user_flags'; const PERMISSION_MANAGE_EMAILS = 'mailpoet_manage_emails'; const PERMISSION_MANAGE_SUBSCRIBERS = 'mailpoet_manage_subscribers'; const PERMISSION_MANAGE_FORMS = 'mailpoet_manage_forms'; const PERMISSION_MANAGE_SEGMENTS = 'mailpoet_manage_segments'; const NO_ACCESS_RESTRICTION = 'mailpoet_no_access_restriction'; + const ALL_ROLES_ACCESS = 'mailpoet_all_roles_access'; function getDefaultPermissions() { return array( @@ -30,13 +30,6 @@ class AccessControl { 'administrator' ) ), - self::PERMISSION_MANAGE_USER_FLAGS => WPFunctions::get()->applyFilters( - 'mailpoet_permission_manage_user_flags', - array( - 'administrator', - 'editor' - ) - ), self::PERMISSION_MANAGE_EMAILS => WPFunctions::get()->applyFilters( 'mailpoet_permission_manage_emails', array( @@ -69,7 +62,6 @@ class AccessControl { return array( self::PERMISSION_ACCESS_PLUGIN_ADMIN => WPFunctions::get()->__('Admin menu item', 'mailpoet'), self::PERMISSION_MANAGE_SETTINGS => WPFunctions::get()->__('Manage settings', 'mailpoet'), - self::PERMISSION_MANAGE_USER_FLAGS => WPFunctions::get()->__('Manage user flags', 'mailpoet'), self::PERMISSION_MANAGE_EMAILS => WPFunctions::get()->__('Manage emails', 'mailpoet'), self::PERMISSION_MANAGE_SUBSCRIBERS => WPFunctions::get()->__('Manage subscribers', 'mailpoet'), self::PERMISSION_MANAGE_FORMS => WPFunctions::get()->__('Manage forms', 'mailpoet'), @@ -79,6 +71,15 @@ class AccessControl { function validatePermission($permission) { if ($permission === self::NO_ACCESS_RESTRICTION) return true; + if ($permission === self::ALL_ROLES_ACCESS) { + $capabilities = array_keys($this->getDefaultPermissions()); + foreach ($capabilities as $capability) { + if (WPFunctions::get()->currentUserCan($capability)) { + return true; + } + } + return false; + } return WPFunctions::get()->currentUserCan($permission); } }