PluginProbe
MailPoet – Newsletters, Email Marketing, and Automation / 3.7.4
MailPoet – Newsletters, Email Marketing, and Automation v3.7.4
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.7.4, at lib/Config/AccessControl.php

86 lines 2.6 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 use MailPoet\WP\Hooks as WPHooks;
6
7 if(!defined('ABSPATH')) exit;
8 require_once(ABSPATH . 'wp-includes/pluggable.php');
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_EMAILS = 'mailpoet_manage_emails';
14 const PERMISSION_MANAGE_SUBSCRIBERS = 'mailpoet_manage_subscribers';
15 const PERMISSION_MANAGE_FORMS = 'mailpoet_manage_forms';
16 const PERMISSION_MANAGE_SEGMENTS = 'mailpoet_manage_segments';
17 const NO_ACCESS_RESTRICTION = 'mailpoet_no_access_restriction';
18
19 public $permissions;
20 public $user_roles;
21 public $user_capabilities;
22
23 function __construct() {
24 $this->permissions = self::getDefaultPermissions();
25 }
26
27 static function getDefaultPermissions() {
28 return array(
29 self::PERMISSION_ACCESS_PLUGIN_ADMIN => WPHooks::applyFilters(
30 'mailpoet_permission_access_plugin_admin',
31 array(
32 'administrator',
33 'editor'
34 )
35 ),
36 self::PERMISSION_MANAGE_SETTINGS => WPHooks::applyFilters(
37 'mailpoet_permission_manage_settings',
38 array(
39 'administrator'
40 )
41 ),
42 self::PERMISSION_MANAGE_EMAILS => WPHooks::applyFilters(
43 'mailpoet_permission_manage_emails',
44 array(
45 'administrator',
46 'editor'
47 )
48 ),
49 self::PERMISSION_MANAGE_SUBSCRIBERS => WPHooks::applyFilters(
50 'mailpoet_permission_manage_subscribers',
51 array(
52 'administrator'
53 )
54 ),
55 self::PERMISSION_MANAGE_FORMS => WPHooks::applyFilters(
56 'mailpoet_permission_manage_forms',
57 array(
58 'administrator'
59 )
60 ),
61 self::PERMISSION_MANAGE_SEGMENTS => WPHooks::applyFilters(
62 'mailpoet_permission_manage_segments',
63 array(
64 'administrator'
65 )
66 ),
67 );
68 }
69
70 static function getPermissionLabels() {
71 return array(
72 self::PERMISSION_ACCESS_PLUGIN_ADMIN => __('Admin menu item', 'mailpoet'),
73 self::PERMISSION_MANAGE_SETTINGS => __('Manage settings', 'mailpoet'),
74 self::PERMISSION_MANAGE_EMAILS => __('Manage emails', 'mailpoet'),
75 self::PERMISSION_MANAGE_SUBSCRIBERS => __('Manage subscribers', 'mailpoet'),
76 self::PERMISSION_MANAGE_FORMS => __('Manage forms', 'mailpoet'),
77 self::PERMISSION_MANAGE_SEGMENTS => __('Manage segments', 'mailpoet'),
78 );
79 }
80
81 function validatePermission($permission) {
82 if($permission === self::NO_ACCESS_RESTRICTION) return true;
83 return current_user_can($permission);
84 }
85 }
86