PluginProbe
MailPoet – Newsletters, Email Marketing, and Automation / 3.0.2
MailPoet – Newsletters, Email Marketing, and Automation v3.0.2
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 / Capabilities.php

Capabilities.php in MailPoet – Newsletters, Email Marketing, and Automation 3.0.2, at lib/Config/Capabilities.php

86 lines 2.1 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;
6
7 class Capabilities {
8 const MEMBERS_CAP_GROUP_NAME = 'mailpoet';
9
10 private $renderer = null;
11
12 function __construct($renderer = null) {
13 if($renderer !== null) {
14 $this->renderer = $renderer;
15 }
16 }
17
18 function init() {
19 $this->setupMembersCapabilities();
20 }
21
22 function setupWPCapabilities() {
23 $permissions = AccessControl::getDefaultPermissions();
24 $role_objects = array();
25 foreach($permissions as $name => $roles) {
26 foreach($roles as $role) {
27 if(!isset($role_objects[$role])) {
28 $role_objects[$role] = get_role($role);
29 }
30 $role_objects[$role]->add_cap($name);
31 }
32 }
33 }
34
35 function removeWPCapabilities() {
36 $permissions = AccessControl::getDefaultPermissions();
37 $role_objects = array();
38 foreach($permissions as $name => $roles) {
39 foreach($roles as $role) {
40 if(!isset($role_objects[$role])) {
41 $role_objects[$role] = get_role($role);
42 }
43 $role_objects[$role]->remove_cap($name);
44 }
45 }
46 }
47
48 function setupMembersCapabilities() {
49 Hooks::addAction('admin_enqueue_scripts', array($this, 'enqueueMembersStyles'));
50 Hooks::addAction('members_register_cap_groups', array($this, 'registerMembersCapGroup'));
51 Hooks::addAction('members_register_caps', array($this, 'registerMembersCapabilities'));
52 }
53
54 function enqueueMembersStyles() {
55 wp_enqueue_style(
56 'mailpoet-admin-global',
57 Env::$assets_url . '/css/' . $this->renderer->getCssAsset('admin-global.css')
58 );
59 }
60
61 function registerMembersCapGroup() {
62 members_register_cap_group(
63 self::MEMBERS_CAP_GROUP_NAME,
64 array(
65 'label' => __('MailPoet', 'mailpoet'),
66 'caps' => array(),
67 'icon' => 'mailpoet-icon-logo',
68 'priority' => 30
69 )
70 );
71 }
72
73 function registerMembersCapabilities() {
74 $permissions = AccessControl::getPermissionLabels();
75 foreach($permissions as $name => $label) {
76 members_register_cap(
77 $name,
78 array(
79 'label' => $label,
80 'group' => self::MEMBERS_CAP_GROUP_NAME
81 )
82 );
83 }
84 }
85 }
86