PluginProbe
MailPoet – Newsletters, Email Marketing, and Automation / 3.65.0
MailPoet – Newsletters, Email Marketing, and Automation v3.65.0
5.38.0 5.37.0 5.36.1 5.36.0 5.35.1 5.35.0 5.34.3 5.34.2 5.34.1 5.34.0 5.33.1 5.33.0 5.32.0 5.31.0 5.30.0 5.29.0 5.28.1 5.28.0 5.27.0 5.26.0 5.26.1 5.25.0 5.24.0 4.43.0 4.43.1 All 542 releases
mailpoet / lib / Config / AccessControl.php

AccessControl.php in MailPoet – Newsletters, Email Marketing, and Automation 3.65.0, at lib/Config/AccessControl.php

96 lines 3.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace MailPoet\Config;
4
5 if (!defined('ABSPATH')) exit;
6
7
8 use MailPoet\WP\Functions as WPFunctions;
9
10 class AccessControl {
11 const PERMISSION_ACCESS_PLUGIN_ADMIN = 'mailpoet_access_plugin_admin';
12 const PERMISSION_MANAGE_SETTINGS = 'mailpoet_manage_settings';
13 const PERMISSION_MANAGE_FEATURES = 'mailpoet_manage_features';
14 const PERMISSION_MANAGE_EMAILS = 'mailpoet_manage_emails';
15 const PERMISSION_MANAGE_SUBSCRIBERS = 'mailpoet_manage_subscribers';
16 const PERMISSION_MANAGE_FORMS = 'mailpoet_manage_forms';
17 const PERMISSION_MANAGE_SEGMENTS = 'mailpoet_manage_segments';
18 const NO_ACCESS_RESTRICTION = 'mailpoet_no_access_restriction';
19 const ALL_ROLES_ACCESS = 'mailpoet_all_roles_access';
20
21 public function getDefaultPermissions() {
22 return [
23 self::PERMISSION_ACCESS_PLUGIN_ADMIN => WPFunctions::get()->applyFilters(
24 'mailpoet_permission_access_plugin_admin',
25 [
26 'administrator',
27 'editor',
28 ]
29 ),
30 self::PERMISSION_MANAGE_SETTINGS => WPFunctions::get()->applyFilters(
31 'mailpoet_permission_manage_settings',
32 [
33 'administrator',
34 ]
35 ),
36 self::PERMISSION_MANAGE_FEATURES => WPFunctions::get()->applyFilters(
37 'mailpoet_permission_manage_features',
38 [
39 'administrator',
40 ]
41 ),
42 self::PERMISSION_MANAGE_EMAILS => WPFunctions::get()->applyFilters(
43 'mailpoet_permission_manage_emails',
44 [
45 'administrator',
46 'editor',
47 ]
48 ),
49 self::PERMISSION_MANAGE_SUBSCRIBERS => WPFunctions::get()->applyFilters(
50 'mailpoet_permission_manage_subscribers',
51 [
52 'administrator',
53 ]
54 ),
55 self::PERMISSION_MANAGE_FORMS => WPFunctions::get()->applyFilters(
56 'mailpoet_permission_manage_forms',
57 [
58 'administrator',
59 ]
60 ),
61 self::PERMISSION_MANAGE_SEGMENTS => WPFunctions::get()->applyFilters(
62 'mailpoet_permission_manage_segments',
63 [
64 'administrator',
65 ]
66 ),
67 ];
68 }
69
70 public function getPermissionLabels() {
71 return [
72 self::PERMISSION_ACCESS_PLUGIN_ADMIN => WPFunctions::get()->__('Admin menu item', 'mailpoet'),
73 self::PERMISSION_MANAGE_SETTINGS => WPFunctions::get()->__('Manage settings', 'mailpoet'),
74 self::PERMISSION_MANAGE_FEATURES => WPFunctions::get()->__('Manage features', 'mailpoet'),
75 self::PERMISSION_MANAGE_EMAILS => WPFunctions::get()->__('Manage emails', 'mailpoet'),
76 self::PERMISSION_MANAGE_SUBSCRIBERS => WPFunctions::get()->__('Manage subscribers', 'mailpoet'),
77 self::PERMISSION_MANAGE_FORMS => WPFunctions::get()->__('Manage forms', 'mailpoet'),
78 self::PERMISSION_MANAGE_SEGMENTS => WPFunctions::get()->__('Manage segments', 'mailpoet'),
79 ];
80 }
81
82 public function validatePermission($permission) {
83 if ($permission === self::NO_ACCESS_RESTRICTION) return true;
84 if ($permission === self::ALL_ROLES_ACCESS) {
85 $capabilities = array_keys($this->getDefaultPermissions());
86 foreach ($capabilities as $capability) {
87 if (WPFunctions::get()->currentUserCan($capability)) {
88 return true;
89 }
90 }
91 return false;
92 }
93 return WPFunctions::get()->currentUserCan($permission);
94 }
95 }
96