Version Description
- 25 Oct 2019 =
- Fixed : Automatic publication of blank auto-drafts, WooCommerce posts save with incorrect post status (since 1.8)
Download this release
Release Info
Developer | kevinB |
Plugin | Capability Manager Enhanced |
Version | 1.8.1 |
Comparing to | |
See all releases |
Code changes from version 1.7.5 to 1.8.1
- admin.css +18 -2
- capsman-enhanced.php +10 -15
- common/css/pressshack-admin.css +191 -0
- common/img/publishpress-logo-icon.png +0 -0
- common/img/publishpress-logo.png +0 -0
- includes/admin.php +550 -171
- includes/cap-helper.php +34 -3
- includes/filters-admin.php +2 -2
- includes/filters-wp_rest_workarounds.php +146 -0
- includes/filters.php +13 -0
- includes/manager.php +18 -1
- lang/capsman.mo +0 -0
- lang/capsman.po +199 -186
- readme.txt +46 -28
admin.css
CHANGED
@@ -66,7 +66,7 @@ div.cme-listhoriz h3 {
|
|
66 |
margin: 0.2em;
|
67 |
}
|
68 |
|
69 |
-
|
70 |
border: 1px solid black;
|
71 |
}
|
72 |
|
@@ -84,6 +84,10 @@ table.cme-typecaps span.cap-x {
|
|
84 |
display: none;
|
85 |
}
|
86 |
|
|
|
|
|
|
|
|
|
87 |
a.neg-cap, a.cap-on, a.type-on, a.neg-type-caps, a.cme-neg-all {
|
88 |
text-decoration: none;
|
89 |
}
|
@@ -188,9 +192,21 @@ td.cm-has-via-pp {
|
|
188 |
background-color: #7f7;
|
189 |
}
|
190 |
|
|
|
|
|
|
|
|
|
191 |
#akmin div.publishpress-headline {line-height:25px}
|
192 |
#akmin span.publishpress-thanks{margin-left:5px;color:#655997;white-space:nowrap}
|
193 |
#akmin span.publishpress-thanks,#akmin span.publishpress-thanks a,#akmin span.publishpress-thanks a:visited {color:#655997;font-weight:bold;}
|
194 |
|
195 |
table#akmin td.sidebar li.publishpress-contact{text-align:center}
|
196 |
-
table#akmin td.sidebar li.publishpress-contact a{padding:5px 0 5px 0;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
66 |
margin: 0.2em;
|
67 |
}
|
68 |
|
69 |
+
div.cme-cap-type-tables {
|
70 |
border: 1px solid black;
|
71 |
}
|
72 |
|
84 |
display: none;
|
85 |
}
|
86 |
|
87 |
+
h3.cme-cap-section {
|
88 |
+
margin-top:0;
|
89 |
+
}
|
90 |
+
|
91 |
a.neg-cap, a.cap-on, a.type-on, a.neg-type-caps, a.cme-neg-all {
|
92 |
text-decoration: none;
|
93 |
}
|
192 |
background-color: #7f7;
|
193 |
}
|
194 |
|
195 |
+
div.pressshack-admin-wrapper footer {
|
196 |
+
padding-right: 270px;
|
197 |
+
}
|
198 |
+
|
199 |
#akmin div.publishpress-headline {line-height:25px}
|
200 |
#akmin span.publishpress-thanks{margin-left:5px;color:#655997;white-space:nowrap}
|
201 |
#akmin span.publishpress-thanks,#akmin span.publishpress-thanks a,#akmin span.publishpress-thanks a:visited {color:#655997;font-weight:bold;}
|
202 |
|
203 |
table#akmin td.sidebar li.publishpress-contact{text-align:center}
|
204 |
+
table#akmin td.sidebar li.publishpress-contact a{padding:5px 0 5px 0;}
|
205 |
+
|
206 |
+
#pp_features {display:none;border:1px solid #eee;padding:5px;text-align:center;min-width:600px}
|
207 |
+
#pp_features div.pp-logo { text-align: center }
|
208 |
+
#pp_features div.features-wrap { margin-left: auto; margin-right: auto; text-align: center; width: 600px; }
|
209 |
+
#pp_features ul.pp-features { list-style: none; padding-top:10px; text-align:left; margin-left: auto }
|
210 |
+
#pp_features ul.pp-features li:before { content: "\2713\0020"; }
|
211 |
+
#pp_features ul.pp-features li { padding-bottom: 5px }
|
212 |
+
#pp_features img.cme-play { margin-bottom: -3px; margin-left: 5px;}
|
capsman-enhanced.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
* Plugin Name: Capability Manager Enhanced
|
4 |
* Plugin URI: https://publishpress.com
|
5 |
* Description: Manage WordPress role definitions, per-site or network-wide. Organizes post capabilities by post type and operation.
|
6 |
-
* Version: 1.
|
7 |
* Author: PublishPress
|
8 |
* Author URI: https://publishpress.com
|
9 |
* Text Domain: capsman-enhanced
|
@@ -23,12 +23,12 @@
|
|
23 |
* @copyright Copyright (C) 2009, 2010 Jordi Canals; modifications Copyright (C) 2019 PublishPress
|
24 |
* @license GNU General Public License version 3
|
25 |
* @link https://publishpress.com
|
26 |
-
* @version 1.
|
27 |
*/
|
28 |
|
29 |
if ( ! defined( 'CAPSMAN_VERSION' ) ) {
|
30 |
-
define( 'CAPSMAN_VERSION', '1.
|
31 |
-
define( 'CAPSMAN_ENH_VERSION', '1.
|
32 |
}
|
33 |
|
34 |
if ( cme_is_plugin_active( 'capsman.php' ) ) {
|
@@ -81,10 +81,6 @@ if ( cme_is_plugin_active( 'capsman.php' ) ) {
|
|
81 |
|
82 |
require_once ( dirname(__FILE__) . '/includes/manager.php' );
|
83 |
$capsman = new CapabilityManager();
|
84 |
-
|
85 |
-
if ( isset($_REQUEST['page']) && ( 'capsman' == $_REQUEST['page'] ) ) {
|
86 |
-
add_action( 'admin_enqueue_scripts', '_cme_pp_scripts' );
|
87 |
-
}
|
88 |
} else {
|
89 |
load_plugin_textdomain('capsman-enhanced', false, basename(dirname(__FILE__)) .'/lang');
|
90 |
add_action( 'admin_menu', 'cme_submenus', 20 );
|
@@ -141,21 +137,20 @@ function _cme_init() {
|
|
141 |
load_plugin_textdomain('capsman-enhanced', false, dirname(__FILE__) . '/lang');
|
142 |
}
|
143 |
|
144 |
-
function _cme_pp_scripts() {
|
145 |
-
wp_enqueue_style( 'plugin-install' );
|
146 |
-
wp_enqueue_script( 'plugin-install' );
|
147 |
-
add_thickbox();
|
148 |
-
}
|
149 |
-
|
150 |
// perf enchancement: display submenu links without loading framework and plugin code
|
151 |
function cme_submenus() {
|
152 |
$cap_name = ( is_super_admin() ) ? 'manage_capabilities' : 'restore_roles';
|
153 |
add_management_page(__('Capability Manager', 'capsman-enhanced'), __('Capability Manager', 'capsman-enhanced'), $cap_name, 'capsman' . '-tool', 'cme_fakefunc');
|
154 |
|
155 |
-
if (
|
156 |
global $pp_admin;
|
157 |
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
158 |
add_submenu_page( $pp_admin->get_menu('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', 'capsman', 'cme_fakefunc' );
|
|
|
|
|
|
|
|
|
|
|
159 |
} else {
|
160 |
add_users_page( __('Capability Manager', 'capsman-enhanced'), __('Capabilities', 'capsman-enhanced'), 'manage_capabilities', 'capsman', 'cme_fakefunc');
|
161 |
}
|
3 |
* Plugin Name: Capability Manager Enhanced
|
4 |
* Plugin URI: https://publishpress.com
|
5 |
* Description: Manage WordPress role definitions, per-site or network-wide. Organizes post capabilities by post type and operation.
|
6 |
+
* Version: 1.8.1
|
7 |
* Author: PublishPress
|
8 |
* Author URI: https://publishpress.com
|
9 |
* Text Domain: capsman-enhanced
|
23 |
* @copyright Copyright (C) 2009, 2010 Jordi Canals; modifications Copyright (C) 2019 PublishPress
|
24 |
* @license GNU General Public License version 3
|
25 |
* @link https://publishpress.com
|
26 |
+
* @version 1.8
|
27 |
*/
|
28 |
|
29 |
if ( ! defined( 'CAPSMAN_VERSION' ) ) {
|
30 |
+
define( 'CAPSMAN_VERSION', '1.8.1' );
|
31 |
+
define( 'CAPSMAN_ENH_VERSION', '1.8.1' );
|
32 |
}
|
33 |
|
34 |
if ( cme_is_plugin_active( 'capsman.php' ) ) {
|
81 |
|
82 |
require_once ( dirname(__FILE__) . '/includes/manager.php' );
|
83 |
$capsman = new CapabilityManager();
|
|
|
|
|
|
|
|
|
84 |
} else {
|
85 |
load_plugin_textdomain('capsman-enhanced', false, basename(dirname(__FILE__)) .'/lang');
|
86 |
add_action( 'admin_menu', 'cme_submenus', 20 );
|
137 |
load_plugin_textdomain('capsman-enhanced', false, dirname(__FILE__) . '/lang');
|
138 |
}
|
139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
// perf enchancement: display submenu links without loading framework and plugin code
|
141 |
function cme_submenus() {
|
142 |
$cap_name = ( is_super_admin() ) ? 'manage_capabilities' : 'restore_roles';
|
143 |
add_management_page(__('Capability Manager', 'capsman-enhanced'), __('Capability Manager', 'capsman-enhanced'), $cap_name, 'capsman' . '-tool', 'cme_fakefunc');
|
144 |
|
145 |
+
if (did_action('pp_admin_menu')) { // Put Capabilities link on Permissions menu if Press Permit is active and user has access to it
|
146 |
global $pp_admin;
|
147 |
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
148 |
add_submenu_page( $pp_admin->get_menu('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', 'capsman', 'cme_fakefunc' );
|
149 |
+
|
150 |
+
} elseif(did_action('presspermit_admin_menu') && function_exists('presspermit')) {
|
151 |
+
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
152 |
+
add_submenu_page( presspermit()->admin()->getMenuParams('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', 'capsman', 'cme_fakefunc' );
|
153 |
+
|
154 |
} else {
|
155 |
add_users_page( __('Capability Manager', 'capsman-enhanced'), __('Capabilities', 'capsman-enhanced'), 'manage_capabilities', 'capsman', 'cme_fakefunc');
|
156 |
}
|
common/css/pressshack-admin.css
ADDED
@@ -0,0 +1,191 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
/**
|
2 |
+
* @package PublishPress
|
3 |
+
* @author PublishPress
|
4 |
+
*
|
5 |
+
* Copyright (c) 2018 PublishPress
|
6 |
+
*
|
7 |
+
* ------------------------------------------------------------------------------
|
8 |
+
* Based on Edit Flow
|
9 |
+
* Author: Daniel Bachhuber, Scott Bressler, Mohammad Jangda, Automattic, and
|
10 |
+
* others
|
11 |
+
* Copyright (c) 2009-2016 Mohammad Jangda, Daniel Bachhuber, et al.
|
12 |
+
* ------------------------------------------------------------------------------
|
13 |
+
*
|
14 |
+
* This file is part of PublishPress
|
15 |
+
*
|
16 |
+
* PublishPress is free software: you can redistribute it and/or modify
|
17 |
+
* it under the terms of the GNU General Public License as published by
|
18 |
+
* the Free Software Foundation, either version 3 of the License, or
|
19 |
+
* (at your option) any later version.
|
20 |
+
*
|
21 |
+
* PublishPress is distributed in the hope that it will be useful,
|
22 |
+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
23 |
+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
24 |
+
* GNU General Public License for more details.
|
25 |
+
*
|
26 |
+
* You should have received a copy of the GNU General Public License
|
27 |
+
* along with PublishPress. If not, see <http://www.gnu.org/licenses/>.
|
28 |
+
*/
|
29 |
+
|
30 |
+
.pressshack-admin-wrapper a:link,
|
31 |
+
.pressshack-admin-wrapper a:visited,
|
32 |
+
.pressshack-admin-wrapper a:active,
|
33 |
+
.pressshack-admin-wrapper a:hover {
|
34 |
+
text-decoration: none;
|
35 |
+
}
|
36 |
+
|
37 |
+
.pressshack-admin-wrapper a,
|
38 |
+
.pressshack-admin-wrapper button,
|
39 |
+
.pressshack-admin-wrapper button::before {
|
40 |
+
-webkit-transition: all 200ms ease-in-out;
|
41 |
+
-moz-transition: all 200ms ease-in-out;
|
42 |
+
-o-transition: all 200ms ease-in-out;
|
43 |
+
transition: all 200ms ease-in-out;
|
44 |
+
}
|
45 |
+
|
46 |
+
.pressshack-admin-wrapper a,
|
47 |
+
.pressshack-admin-wrapper a div,
|
48 |
+
.pressshack-admin-wrapper a p {
|
49 |
+
color: #655997;
|
50 |
+
}
|
51 |
+
|
52 |
+
.pressshack-admin-wrapper a:hover,
|
53 |
+
.pressshack-admin-wrapper a:focus,
|
54 |
+
.pressshack-admin-wrapper a:active,
|
55 |
+
.pressshack-admin-wrapper a:hover div,
|
56 |
+
.pressshack-admin-wrapper a:focus div,
|
57 |
+
.pressshack-admin-wrapper a:active div,
|
58 |
+
.pressshack-admin-wrapper a:hover p,
|
59 |
+
.pressshack-admin-wrapper a:focus p,
|
60 |
+
.pressshack-admin-wrapper a:active p,
|
61 |
+
.pressshack-admin-wrapper a:hover .dashicons:before,
|
62 |
+
.pressshack-admin-wrapper a:focus .dashicons:before,
|
63 |
+
.pressshack-admin-wrapper a:active .dashicons:before {
|
64 |
+
color: #5A4F87;
|
65 |
+
box-shadow: none;
|
66 |
+
-moz-box-shadow: none;
|
67 |
+
-webkit-box-shadow: none;
|
68 |
+
-o-box-shadow: none;
|
69 |
+
}
|
70 |
+
|
71 |
+
.pressshack-admin-wrapper > header h1 a,
|
72 |
+
.pressshack-admin-wrapper > header h1 a:hover,
|
73 |
+
.pressshack-admin-wrapper > header h1 a:focus,
|
74 |
+
.pressshack-admin-wrapper > header h1 a:active {
|
75 |
+
color: #23282d;
|
76 |
+
}
|
77 |
+
|
78 |
+
.pressshack-admin-wrapper .nav-tab-wrapper .nav-tab {
|
79 |
+
color: inherit;
|
80 |
+
}
|
81 |
+
|
82 |
+
.pressshack-admin-wrapper .nav-tab-wrapper .nav-tab-active,
|
83 |
+
.pressshack-admin-wrapper .nav-tab-wrapper .nav-tab:hover,
|
84 |
+
.pressshack-admin-wrapper .nav-tab-wrapper .nav-tab:active,
|
85 |
+
.pressshack-admin-wrapper .nav-tab-wrapper .nav-tab:focus {
|
86 |
+
border-top-color: #655997;
|
87 |
+
color: #655997;
|
88 |
+
}
|
89 |
+
|
90 |
+
.pressshack-admin-wrapper > footer {
|
91 |
+
text-align: center;
|
92 |
+
}
|
93 |
+
|
94 |
+
.pressshack-admin-wrapper > footer > div.pp-rating {
|
95 |
+
font-size: 12px;
|
96 |
+
margin-bottom: 10px;
|
97 |
+
margin-top: 30px;
|
98 |
+
}
|
99 |
+
|
100 |
+
.pressshack-admin-wrapper > footer * {
|
101 |
+
color: #777;
|
102 |
+
}
|
103 |
+
|
104 |
+
.pressshack-admin-wrapper > footer > nav ul {
|
105 |
+
list-style: none;
|
106 |
+
}
|
107 |
+
|
108 |
+
.pressshack-admin-wrapper > footer > nav ul > li {
|
109 |
+
display: inline-block;
|
110 |
+
}
|
111 |
+
|
112 |
+
.pressshack-admin-wrapper > footer > nav ul > li:not(:first-child) {
|
113 |
+
margin-left: 15px;
|
114 |
+
}
|
115 |
+
|
116 |
+
.pressshack-admin-wrapper > footer > nav ul > li > a {
|
117 |
+
font-weight: bold;
|
118 |
+
}
|
119 |
+
|
120 |
+
.pressshack-admin-wrapper > footer .dashicons.dashicons-star-filled {
|
121 |
+
line-height: 18px;
|
122 |
+
font-size: 12px;
|
123 |
+
width: 12px;
|
124 |
+
height: 12px;
|
125 |
+
color: #FFB300;
|
126 |
+
-webkit-transition: color 200ms ease-in-out;
|
127 |
+
-moz-transition: color 200ms ease-in-out;
|
128 |
+
-o-transition: color 200ms ease-in-out;
|
129 |
+
transition: color 200ms ease-in-out;
|
130 |
+
}
|
131 |
+
|
132 |
+
.pressshack-admin-wrapper button:not(.notice-dismiss),
|
133 |
+
.pressshack-admin-wrapper .button:not(.notice-dismiss) {
|
134 |
+
-webkit-border-radius: 5px;
|
135 |
+
-moz-border-radius: 5px;
|
136 |
+
border-radius: 5px;
|
137 |
+
text-shadow: initial;
|
138 |
+
-webkit-box-shadow: initial;
|
139 |
+
-moz-box-shadow: initial;
|
140 |
+
box-shadow: initial;
|
141 |
+
vertical-align: middle;
|
142 |
+
line-height: 0;
|
143 |
+
min-height: 28px;
|
144 |
+
text-decoration: none;
|
145 |
+
padding: 15px 10px;
|
146 |
+
border-width: 2px;
|
147 |
+
border-style: solid;
|
148 |
+
}
|
149 |
+
|
150 |
+
.pressshack-admin-wrapper .button-primary {
|
151 |
+
background-color: #FFB300;
|
152 |
+
border-color: #C58C07;
|
153 |
+
color: #754D26;
|
154 |
+
|
155 |
+
text-shadow: none;
|
156 |
+
}
|
157 |
+
|
158 |
+
.pressshack-admin-wrapper .button-primary:hover,
|
159 |
+
.pressshack-admin-wrapper .button-primary:active,
|
160 |
+
.pressshack-admin-wrapper .button-primary:focus {
|
161 |
+
background-color: #F3AC04;
|
162 |
+
border-color: #C58C07;
|
163 |
+
color: #333;
|
164 |
+
outline: none;
|
165 |
+
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
166 |
+
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
167 |
+
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
168 |
+
-o-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
169 |
+
}
|
170 |
+
|
171 |
+
.pressshack-admin-wrapper .button:not(.notice-dismiss):hover,
|
172 |
+
.pressshack-admin-wrapper .button:not(.notice-dismiss):active,
|
173 |
+
.pressshack-admin-wrapper .button:not(.notice-dismiss):focus {
|
174 |
+
outline: none;
|
175 |
+
-webkit-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
176 |
+
-moz-box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
177 |
+
box-shadow: 0 1px 0 rgba(255, 255, 255, 0.2) inset, 0 1px 2px rgba(0, 0, 0, 0.05);
|
178 |
+
}
|
179 |
+
|
180 |
+
.pressshack-admin-wrapper .pp-pressshack-logo img {
|
181 |
+
width: 170px;
|
182 |
+
}
|
183 |
+
|
184 |
+
/**
|
185 |
+
* Fremius tweaks
|
186 |
+
*/
|
187 |
+
|
188 |
+
#piframe,
|
189 |
+
.fs-secure-notice {
|
190 |
+
display: none;
|
191 |
+
}
|
common/img/publishpress-logo-icon.png
ADDED
Binary file
|
common/img/publishpress-logo.png
ADDED
Binary file
|
includes/admin.php
CHANGED
@@ -47,7 +47,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
47 |
$pp_metagroup_caps = array();
|
48 |
}
|
49 |
?>
|
50 |
-
<div class="wrap">
|
51 |
<?php if( defined('PRESSPERMIT_ACTIVE') ) :
|
52 |
pp_icon();
|
53 |
$style = 'style="height:60px;"';
|
@@ -104,62 +104,53 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
104 |
});
|
105 |
/* ]]> */
|
106 |
</script>
|
107 |
-
<style>
|
108 |
-
#pp_features {display:none;border:1px solid #eee;padding:5px;text-align:center;min-width:600px}
|
109 |
-
div.pp-logo { text-align: center }
|
110 |
-
div.features-wrap { margin-left: auto; margin-right: auto; text-align: center; width: 540px; }
|
111 |
-
ul.pp-features { list-style: none; padding-top:10px; text-align:left; margin-left: auto }
|
112 |
-
ul.pp-features li:before { content: "\2713\0020"; }
|
113 |
-
ul.pp-features li { padding-bottom: 5px }
|
114 |
-
img.cme-play { margin-bottom: -3px; margin-left: 5px;}
|
115 |
-
</style>
|
116 |
|
117 |
<?php /* play.png icon by Pavel: http://kde-look.org/usermanager/search.php?username=InFeRnODeMoN */ ?>
|
118 |
|
119 |
-
<br /><div id="pp_features"><div class="pp-logo"><a href="
|
120 |
<li>
|
121 |
<?php _e( "Automatically define type-specific capabilities for your custom post types and taxonomies", 'capsman-enhanced' );?>
|
122 |
-
<a href="
|
123 |
|
124 |
<li>
|
125 |
<?php _e( "Assign standard WP roles supplementally for a specific post type", 'capsman-enhanced' );?>
|
126 |
-
<a href="
|
127 |
|
128 |
<li>
|
129 |
<?php _e( "Assign custom WP roles supplementally for a specific post type <em>(Pro)</em>", 'capsman-enhanced' );?>
|
130 |
-
<a href="
|
131 |
|
132 |
<li>
|
133 |
<?php _e( "Customize reading permissions per-category or per-post", 'capsman-enhanced' );?>
|
134 |
-
<a href="
|
135 |
|
136 |
<li>
|
137 |
<?php _e( "Customize editing permissions per-category or per-post <em>(Pro)</em>", 'capsman-enhanced' );?>
|
138 |
-
<a href="
|
139 |
|
140 |
<li>
|
141 |
<?php _e( "Custom Post Visibility statuses, fully implemented throughout wp-admin <em>(Pro)</em>", 'capsman-enhanced' );?>
|
142 |
-
<a href="
|
143 |
|
144 |
<li>
|
145 |
<?php _e( "Custom Moderation statuses for access-controlled, multi-step publishing workflow <em>(Pro)</em>", 'capsman-enhanced' );?>
|
146 |
-
<a href="
|
147 |
|
148 |
<li>
|
149 |
<?php _e( "Regulate permissions for Edit Flow post statuses <em>(Pro)</em>", 'capsman-enhanced' );?>
|
150 |
-
<a href="
|
151 |
|
152 |
<li>
|
153 |
<?php _e( "Customize the moderated editing of published content with Revisionary or Post Forking <em>(Pro)</em>", 'capsman-enhanced' );?>
|
154 |
-
<a href="
|
155 |
|
156 |
<li>
|
157 |
<?php _e( "Grant Spectator, Participant or Moderator access to specific bbPress forums <em>(Pro)</em>", 'capsman-enhanced' );?>
|
158 |
-
<a href="
|
159 |
|
160 |
<li>
|
161 |
<?php _e( "Grant supplemental content permissions to a BuddyPress group <em>(Pro)</em>", 'capsman-enhanced' );?>
|
162 |
-
<a href="
|
163 |
|
164 |
<li>
|
165 |
<?php _e( "WPML integration to mirror permissions to translations <em>(Pro)</em>", 'capsman-enhanced' );?>
|
@@ -170,11 +161,12 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
170 |
</li>
|
171 |
|
172 |
</ul></div>
|
|
|
173 |
<?php
|
174 |
echo '<div>';
|
175 |
-
printf( __('%1$sgrab%2$s %3$s', 'capsman-enhanced'), '<strong>', '</strong>', '<span class="plugins update-message"><a href="' . cme_plugin_info_url('press-permit-core') . '" class="thickbox" title="' . sprintf( __('%s (free install)', 'capsman-enhanced'), '
|
176 |
echo ' • ';
|
177 |
-
printf( __('%1$sbuy%2$s %3$s', 'capsman-enhanced'), '<strong>', '</strong>', '<a href="
|
178 |
echo ' • ';
|
179 |
echo '<a href="#pp-hide">hide</a>';
|
180 |
echo '</div></div>';
|
@@ -274,7 +266,8 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
274 |
'manage_categories'
|
275 |
);
|
276 |
$type_caps = array();
|
277 |
-
|
|
|
278 |
// Role Scoper and PP1 adjust attachment access based only on user's capabilities for the parent post
|
279 |
if ( defined('OLD_PRESSPERMIT_ACTIVE') ) {
|
280 |
unset( $defined['type']['attachment'] );
|
@@ -286,8 +279,9 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
286 |
foreach( array_keys($cap_properties) as $cap_type ) {
|
287 |
echo '<li>';
|
288 |
echo '<h3>' . $cap_type_names[$cap_type] . '</h3>';
|
289 |
-
echo '<table class="cme-typecaps">';
|
290 |
|
|
|
|
|
291 |
foreach( array_keys($defined) as $item_type ) {
|
292 |
if ( ( 'delete' == $cap_type ) && ( 'taxonomy' == $item_type ) ) {
|
293 |
if ( defined('OLD_PRESSPERMIT_ACTIVE') ) {
|
@@ -305,139 +299,153 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
305 |
if ( ! $any_term_deletion_caps )
|
306 |
continue;
|
307 |
}
|
308 |
-
|
309 |
-
|
|
|
|
|
|
|
310 |
|
311 |
-
|
312 |
-
echo '<th></th>';
|
313 |
|
314 |
-
|
315 |
-
|
316 |
-
|
317 |
-
|
318 |
-
|
319 |
-
|
320 |
-
|
321 |
-
|
322 |
-
|
323 |
-
|
324 |
-
|
325 |
-
echo
|
326 |
-
|
327 |
-
if ( ( 'delete' != $prop ) || ( 'taxonomy' != $item_type ) || cme_get_detailed_taxonomies() ) {
|
328 |
-
echo ucwords($prop);
|
329 |
-
}
|
330 |
-
|
331 |
-
echo '</th>';
|
332 |
}
|
|
|
|
|
|
|
333 |
|
334 |
-
|
335 |
-
if ( in_array( $key, $unfiltered[$item_type] ) )
|
336 |
-
continue;
|
337 |
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
343 |
|
344 |
-
|
345 |
-
$row .= '<a href="#" class="neg-type-caps"> x </a>';
|
346 |
-
$row .= '</td>';
|
347 |
-
|
348 |
-
$display_row = ! empty($force_distinct_ui);
|
349 |
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
354 |
|
355 |
-
|
356 |
-
|
357 |
-
|
358 |
-
|
359 |
-
|
360 |
-
|
361 |
-
|
362 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
|
364 |
-
|
365 |
-
|
366 |
-
|
367 |
-
|
368 |
-
)
|
369 |
|
370 |
-
|
371 |
-
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
-
|
377 |
-
|
378 |
-
) {
|
379 |
-
// only present these term caps up top if we are ensuring that they get enforced separately from manage_terms
|
380 |
-
if ( in_array( $prop, array( 'edit_terms', 'delete_terms', 'assign_terms' ) ) && ( ! in_array( $type_obj->name, cme_get_detailed_taxonomies() ) || defined( 'OLD_PRESSPERMIT_ACTIVE' ) ) ) {
|
381 |
-
continue;
|
382 |
}
|
383 |
|
384 |
-
$
|
|
|
385 |
|
386 |
-
|
387 |
-
$td_classes []= "term-cap";
|
388 |
-
else
|
389 |
-
$td_classes []= "post-cap";
|
390 |
|
391 |
-
|
392 |
-
|
393 |
-
|
394 |
-
if ( $is_administrator || current_user_can($cap_name) ) {
|
395 |
-
if ( ! empty($pp_metagroup_caps[$cap_name]) ) {
|
396 |
-
$title_text = sprintf( __( '%s: assigned by Permission Group', 'capsman-enhanced' ), $cap_name );
|
397 |
-
} else {
|
398 |
-
$title_text = $cap_name;
|
399 |
-
}
|
400 |
-
|
401 |
-
$disabled = '';
|
402 |
-
$checked = checked(1, ! empty($rcaps[$cap_name]), false );
|
403 |
-
|
404 |
-
$checkbox = '<input id=caps[' . $cap_name . '] type="checkbox" title="' . $title_text . '" name="caps[' . $cap_name . ']" value="1" ' . $checked . $disabled . ' />';
|
405 |
-
$type_caps [$cap_name] = true;
|
406 |
-
$display_row = true;
|
407 |
-
}
|
408 |
-
} else {
|
409 |
-
//$td_classes []= "cap-unreg";
|
410 |
-
$title = 'title="' . sprintf( __( 'shared capability: %s', 'capsman-enhanced' ), esc_attr( $type_obj->cap->$prop ) ) . '"';
|
411 |
-
}
|
412 |
-
|
413 |
-
if ( isset($rcaps[$cap_name]) && empty($rcaps[$cap_name]) ) {
|
414 |
-
$td_classes []= "cap-neg";
|
415 |
-
}
|
416 |
} else {
|
417 |
-
|
|
|
418 |
}
|
419 |
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
$row .= '<input type="hidden" class="cme-negation-input" name="caps[' . $cap_name . ']" value="" />';
|
426 |
-
|
427 |
-
$row .= "</td>";
|
428 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
}
|
430 |
-
|
431 |
-
if ( $
|
432 |
-
$
|
433 |
-
|
|
|
|
|
|
|
|
|
434 |
}
|
435 |
}
|
436 |
-
|
437 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
438 |
} // end foreach item type
|
439 |
|
440 |
-
echo '</
|
441 |
|
442 |
echo '</li>';
|
443 |
}
|
@@ -460,7 +468,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
460 |
<?php
|
461 |
|
462 |
echo '<p> </p><h3>' . __( 'Other WordPress Core Capabilities', 'capsman-enhanced' ) . '</h3>';
|
463 |
-
echo '<table
|
464 |
|
465 |
$checks_per_row = get_option( 'cme_form-rows', 5 );
|
466 |
$i = 0; $first_row = true;
|
@@ -509,7 +517,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
509 |
}
|
510 |
|
511 |
?>
|
512 |
-
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label
|
513 |
<span>
|
514 |
<?php
|
515 |
echo str_replace( '_', ' ', $cap_name );
|
@@ -530,7 +538,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
530 |
}
|
531 |
|
532 |
if ( $i == $checks_per_row ) {
|
533 |
-
echo '</tr
|
534 |
$i = 0;
|
535 |
} elseif ( ! $first_row ) {
|
536 |
// Now close a wellformed table
|
@@ -549,36 +557,266 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
549 |
</td></tr>
|
550 |
|
551 |
</table>
|
552 |
-
|
553 |
<?php
|
554 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
555 |
|
556 |
?>
|
557 |
-
<table
|
558 |
<tr>
|
559 |
<?php
|
560 |
$i = 0; $first_row = true;
|
561 |
|
562 |
-
$all_capabilities = apply_filters( 'capsman_get_capabilities', array_keys( $this->capabilities ), $this->ID );
|
563 |
-
$all_capabilities = apply_filters( 'members_get_capabilities', $all_capabilities );
|
564 |
-
|
565 |
foreach( $all_capabilities as $cap_name ) {
|
566 |
if ( ! isset($this->capabilities[$cap_name]) )
|
567 |
$this->capabilities[$cap_name] = str_replace( '_', ' ', $cap_name );
|
568 |
}
|
569 |
|
570 |
uasort( $this->capabilities, 'strnatcasecmp' ); // sort by array values, but maintain keys );
|
571 |
-
|
572 |
foreach ( $this->capabilities as $cap_name => $cap ) :
|
573 |
-
if ( isset( $type_caps[$cap_name] ) || isset($core_caps[$cap_name]) )
|
574 |
continue;
|
575 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
576 |
if ( ! $is_administrator && empty( $current_user->allcaps[$cap_name] ) ) {
|
577 |
continue;
|
578 |
}
|
579 |
|
580 |
-
// ============ End Kevin B mod ===============
|
581 |
-
|
582 |
// Levels are not shown.
|
583 |
if ( preg_match( '/^level_(10|[0-9])$/i', $cap_name ) ) {
|
584 |
continue;
|
@@ -614,7 +852,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
614 |
}
|
615 |
}
|
616 |
?>
|
617 |
-
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label
|
618 |
<span>
|
619 |
<?php
|
620 |
echo str_replace( '_', ' ', $cap );
|
@@ -648,32 +886,122 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
648 |
|
649 |
<tr class="cme-bulk-select">
|
650 |
<td colspan="<?php echo $checks_per_row;?>">
|
651 |
-
<span>
|
|
|
|
|
|
|
|
|
|
|
|
|
652 |
<?php
|
653 |
-
|
|
|
|
|
|
|
654 |
?>
|
655 |
-
|
656 |
-
|
657 |
-
|
658 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
659 |
?>
|
660 |
-
|
661 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
662 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
663 |
<span style="float:right">
|
664 |
<input type="checkbox" class="cme-check-all" title="<?php _e('check/uncheck all', 'capsman-enhanced');?>"> <a class="cme-neg-all" href="#" title="<?php _e('negate all (storing as disabled capabilities)', 'capsman-enhanced');?>">X</a> <a class="cme-switch-all" href="#" title="<?php _e('negate none (add/remove all capabilities normally)', 'capsman-enhanced');?>">X</a>
|
665 |
</span>
|
666 |
</td></tr>
|
667 |
-
|
668 |
</table>
|
669 |
-
|
670 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
671 |
<?php if ( ! defined('PRESSPERMIT_ACTIVE') || capsman_get_pp_option('display_hints') ) :?>
|
672 |
-
<
|
673 |
<?php _e( 'Note: Underscores replace spaces in stored capability name ("edit users" => "edit_users").', 'capsman-enhanced' ); ?>
|
674 |
-
</div>
|
675 |
-
<?php endif;?>
|
676 |
</span>
|
|
|
|
|
677 |
|
678 |
</dd>
|
679 |
</dl>
|
@@ -720,7 +1048,7 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
720 |
<dt><?php _e('Create New Role', 'capsman-enhanced'); ?></dt>
|
721 |
<dd style="text-align:center;">
|
722 |
<?php $class = ( $support_pp_only_roles ) ? 'tight-text' : 'regular-text'; ?>
|
723 |
-
<p><input type="text" name="create-name"
|
724 |
|
725 |
<?php if( $support_pp_only_roles ) : ?>
|
726 |
<label for="new_role_pp_only" title="<?php _e('Make role available for supplemental assignment to Permission Groups only', 'capsman-enhanced');?>"> <input type="checkbox" name="new_role_pp_only" id="new_role_pp_only" value="1"> <?php _e('hidden', 'capsman-enhanced'); ?> </label>
|
@@ -765,21 +1093,28 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
765 |
|
766 |
<dl>
|
767 |
<dt><?php _e('Related Permissions Plugins', 'capsman-enhanced'); ?></dt>
|
|
|
768 |
<ul>
|
|
|
|
|
|
|
|
|
|
|
|
|
769 |
<?php $_url = "plugin-install.php?tab=plugin-information&plugin=publishpress&TB_iframe=true&width=640&height=678";
|
770 |
$url = ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
771 |
?>
|
772 |
<li><a class="thickbox" href="<?php echo $url;?>"><?php _e('PublishPress', 'capsman-enhanced');?></a></li>
|
773 |
|
774 |
-
<li><a href="#pp-more"><?php _e('Press Permit', 'capsman-enhanced');?></a>
|
775 |
-
</li>
|
776 |
-
|
777 |
<?php $_url = "plugin-install.php?tab=plugin-information&plugin=revisionary&TB_iframe=true&width=640&height=678";
|
778 |
$url = ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
779 |
?>
|
780 |
-
<li><a class="thickbox" href="<?php echo $url;?>"><?php _e('
|
|
|
781 |
<li class="publishpress-contact"><a href="https://publishpress.com/contact" target="_blank"><?php _e('Help / Contact Form', 'capsman-enhanced');?></a></li>
|
|
|
782 |
</ul>
|
|
|
783 |
</dl>
|
784 |
|
785 |
<?php
|
@@ -791,6 +1126,8 @@ if( defined('PRESSPERMIT_ACTIVE') ) {
|
|
791 |
</table>
|
792 |
</fieldset>
|
793 |
</form>
|
|
|
|
|
794 |
</div>
|
795 |
|
796 |
<?php
|
@@ -820,4 +1157,46 @@ function cme_network_role_ui( $default ) {
|
|
820 |
function cme_plugin_info_url( $plugin_slug ) {
|
821 |
$_url = "plugin-install.php?tab=plugin-information&plugin=$plugin_slug&TB_iframe=true&width=640&height=678";
|
822 |
return ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
823 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
$pp_metagroup_caps = array();
|
48 |
}
|
49 |
?>
|
50 |
+
<div class="wrap pressshack-admin-wrapper">
|
51 |
<?php if( defined('PRESSPERMIT_ACTIVE') ) :
|
52 |
pp_icon();
|
53 |
$style = 'style="height:60px;"';
|
104 |
});
|
105 |
/* ]]> */
|
106 |
</script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
107 |
|
108 |
<?php /* play.png icon by Pavel: http://kde-look.org/usermanager/search.php?username=InFeRnODeMoN */ ?>
|
109 |
|
110 |
+
<br /><div id="pp_features" style="display:none"><div class="pp-logo"><a href="https://publishpress.com/presspermit/"><img src="<?php echo $img_url;?>pp-logo.png" alt="<?php _e('PressPermit Pro', 'capsman-enhanced');?>" /></a></div><div class="features-wrap"><ul class="pp-features">
|
111 |
<li>
|
112 |
<?php _e( "Automatically define type-specific capabilities for your custom post types and taxonomies", 'capsman-enhanced' );?>
|
113 |
+
<a href="https://presspermit.com/tutorial/regulate-post-type-access" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
114 |
|
115 |
<li>
|
116 |
<?php _e( "Assign standard WP roles supplementally for a specific post type", 'capsman-enhanced' );?>
|
117 |
+
<a href="https://presspermit.com/tutorial/regulate-post-type-access" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
118 |
|
119 |
<li>
|
120 |
<?php _e( "Assign custom WP roles supplementally for a specific post type <em>(Pro)</em>", 'capsman-enhanced' );?>
|
121 |
+
<a href="https://presspermit.com/tutorial/custom-role-usage" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
122 |
|
123 |
<li>
|
124 |
<?php _e( "Customize reading permissions per-category or per-post", 'capsman-enhanced' );?>
|
125 |
+
<a href="https://presspermit.com/tutorial/category-exceptions" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
126 |
|
127 |
<li>
|
128 |
<?php _e( "Customize editing permissions per-category or per-post <em>(Pro)</em>", 'capsman-enhanced' );?>
|
129 |
+
<a href="https://presspermit.com/tutorial/page-editing-exceptions" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
130 |
|
131 |
<li>
|
132 |
<?php _e( "Custom Post Visibility statuses, fully implemented throughout wp-admin <em>(Pro)</em>", 'capsman-enhanced' );?>
|
133 |
+
<a href="https://presspermit.com/tutorial/custom-post-visibility" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
134 |
|
135 |
<li>
|
136 |
<?php _e( "Custom Moderation statuses for access-controlled, multi-step publishing workflow <em>(Pro)</em>", 'capsman-enhanced' );?>
|
137 |
+
<a href="https://presspermit.com/tutorial/multi-step-moderation" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
138 |
|
139 |
<li>
|
140 |
<?php _e( "Regulate permissions for Edit Flow post statuses <em>(Pro)</em>", 'capsman-enhanced' );?>
|
141 |
+
<a href="https://presspermit.com/tutorial/edit-flow-integration" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
142 |
|
143 |
<li>
|
144 |
<?php _e( "Customize the moderated editing of published content with Revisionary or Post Forking <em>(Pro)</em>", 'capsman-enhanced' );?>
|
145 |
+
<a href="https://presspermit.com/tutorial/published-content-revision" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
146 |
|
147 |
<li>
|
148 |
<?php _e( "Grant Spectator, Participant or Moderator access to specific bbPress forums <em>(Pro)</em>", 'capsman-enhanced' );?>
|
149 |
+
<a href="https://presspermit.com/tutorial/bbpress-exceptions" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
150 |
|
151 |
<li>
|
152 |
<?php _e( "Grant supplemental content permissions to a BuddyPress group <em>(Pro)</em>", 'capsman-enhanced' );?>
|
153 |
+
<a href="https://presspermit.com/tutorial/buddypress-content-permissions" target="_blank"><img class="cme-play" alt="*" src="<?php echo $img_url;?>play.png" /></a></li>
|
154 |
|
155 |
<li>
|
156 |
<?php _e( "WPML integration to mirror permissions to translations <em>(Pro)</em>", 'capsman-enhanced' );?>
|
161 |
</li>
|
162 |
|
163 |
</ul></div>
|
164 |
+
|
165 |
<?php
|
166 |
echo '<div>';
|
167 |
+
printf( __('%1$sgrab%2$s %3$s', 'capsman-enhanced'), '<strong>', '</strong>', '<span class="plugins update-message"><a href="' . cme_plugin_info_url('press-permit-core') . '" class="thickbox" title="' . sprintf( __('%s (free install)', 'capsman-enhanced'), 'PressPermit' ) . '">PressPermit</a></span>' );
|
168 |
echo ' • ';
|
169 |
+
printf( __('%1$sbuy%2$s %3$s', 'capsman-enhanced'), '<strong>', '</strong>', '<a href="https://publishpress.com/presspermit/" target="_blank" title="' . sprintf( __('%s info/purchase', 'capsman-enhanced'), 'PressPermit Pro' ) . '">PressPermit Pro</a>' );
|
170 |
echo ' • ';
|
171 |
echo '<a href="#pp-hide">hide</a>';
|
172 |
echo '</div></div>';
|
266 |
'manage_categories'
|
267 |
);
|
268 |
$type_caps = array();
|
269 |
+
$type_metacaps = array();
|
270 |
+
|
271 |
// Role Scoper and PP1 adjust attachment access based only on user's capabilities for the parent post
|
272 |
if ( defined('OLD_PRESSPERMIT_ACTIVE') ) {
|
273 |
unset( $defined['type']['attachment'] );
|
279 |
foreach( array_keys($cap_properties) as $cap_type ) {
|
280 |
echo '<li>';
|
281 |
echo '<h3>' . $cap_type_names[$cap_type] . '</h3>';
|
|
|
282 |
|
283 |
+
echo '<div class="cme-cap-type-tables">';
|
284 |
+
|
285 |
foreach( array_keys($defined) as $item_type ) {
|
286 |
if ( ( 'delete' == $cap_type ) && ( 'taxonomy' == $item_type ) ) {
|
287 |
if ( defined('OLD_PRESSPERMIT_ACTIVE') ) {
|
299 |
if ( ! $any_term_deletion_caps )
|
300 |
continue;
|
301 |
}
|
302 |
+
|
303 |
+
if ( ! count( $cap_properties[$cap_type][$item_type] ) )
|
304 |
+
continue;
|
305 |
+
|
306 |
+
echo '<table class="cme-typecaps">';
|
307 |
|
308 |
+
echo '<tr><th></th>';
|
|
|
309 |
|
310 |
+
// label cap properties
|
311 |
+
foreach( $cap_properties[$cap_type][$item_type] as $prop ) {
|
312 |
+
$prop = str_replace( '_posts', '', $prop );
|
313 |
+
$prop = str_replace( '_pages', '', $prop );
|
314 |
+
$prop = str_replace( '_terms', '', $prop );
|
315 |
+
$tip = ( isset( $cap_tips[$prop] ) ) ? "title='{$cap_tips[$prop]}'" : '';
|
316 |
+
$prop = str_replace( '_', '<br />', $prop );
|
317 |
+
$th_class = ( 'taxonomy' == $item_type ) ? ' class="term-cap"' : ' class="post-cap"';
|
318 |
+
echo "<th $tip{$th_class}>";
|
319 |
+
|
320 |
+
if ( ( 'delete' != $prop ) || ( 'taxonomy' != $item_type ) || cme_get_detailed_taxonomies() ) {
|
321 |
+
echo ucwords($prop);
|
|
|
|
|
|
|
|
|
|
|
|
|
322 |
}
|
323 |
+
|
324 |
+
echo '</th>';
|
325 |
+
}
|
326 |
|
327 |
+
echo '</tr>';
|
|
|
|
|
328 |
|
329 |
+
foreach( $defined[$item_type] as $key => $type_obj ) {
|
330 |
+
if ( in_array( $key, $unfiltered[$item_type] ) )
|
331 |
+
continue;
|
332 |
+
|
333 |
+
$row = "<tr class='cme_type_{$key}'>";
|
334 |
+
|
335 |
+
if ( $cap_type ) {
|
336 |
+
if ( empty($force_distinct_ui) && empty( $cap_properties[$cap_type][$item_type] ) )
|
337 |
+
continue;
|
338 |
+
|
339 |
+
$row .= "<td><a class='cap_type' href='#toggle_type_caps'>" . $type_obj->labels->name . '</a>';
|
340 |
+
$row .= '<a href="#" class="neg-type-caps"> x </a>';
|
341 |
+
$row .= '</td>';
|
342 |
|
343 |
+
$display_row = ! empty($force_distinct_ui);
|
|
|
|
|
|
|
|
|
344 |
|
345 |
+
foreach( $cap_properties[$cap_type][$item_type] as $prop ) {
|
346 |
+
$td_classes = array();
|
347 |
+
$checkbox = '';
|
348 |
+
$title = '';
|
349 |
+
|
350 |
+
if ( ! empty($type_obj->cap->$prop) && ( in_array( $type_obj->name, array( 'post', 'page' ) )
|
351 |
+
|| ! in_array( $type_obj->cap->$prop, $default_caps )
|
352 |
+
|| ( ( 'manage_categories' == $type_obj->cap->$prop ) && ( 'manage_terms' == $prop ) && ( 'category' == $type_obj->name ) ) ) ) {
|
353 |
+
|
354 |
+
// if edit_published or edit_private cap is same as edit_posts cap, don't display a checkbox for it
|
355 |
+
if ( ( ! in_array( $prop, array( 'edit_published_posts', 'edit_private_posts', 'create_posts' ) ) || ( $type_obj->cap->$prop != $type_obj->cap->edit_posts ) )
|
356 |
+
&& ( ! in_array( $prop, array( 'delete_published_posts', 'delete_private_posts' ) ) || ( $type_obj->cap->$prop != $type_obj->cap->delete_posts ) )
|
357 |
+
&& ( ! in_array( $prop, array( 'edit_terms', 'delete_terms' ) ) || ( $type_obj->cap->$prop != $type_obj->cap->manage_terms ) )
|
358 |
|
359 |
+
&& ( ! in_array( $prop, array( 'manage_terms', 'edit_terms', 'delete_terms', 'assign_terms' ) )
|
360 |
+
|| empty($cme_cap_helper->all_taxonomy_caps[$type_obj->cap->$prop])
|
361 |
+
|| ( $cme_cap_helper->all_taxonomy_caps[ $type_obj->cap->$prop ] <= 1 )
|
362 |
+
|| $type_obj->cap->$prop == str_replace( '_terms', "_{$type_obj->name}s", $prop )
|
363 |
+
|| $type_obj->cap->$prop == str_replace( '_terms', "_" . _cme_get_plural($type_obj->name, $type_obj), $prop )
|
364 |
+
)
|
365 |
+
|
366 |
+
&& ( in_array( $prop, array( 'manage_terms', 'edit_terms', 'delete_terms', 'assign_terms' ) )
|
367 |
+
|| empty($cme_cap_helper->all_type_caps[$type_obj->cap->$prop])
|
368 |
+
|| ( $cme_cap_helper->all_type_caps[ $type_obj->cap->$prop ] <= 1 )
|
369 |
+
|| $type_obj->cap->$prop == 'upload_files' && 'create_posts' == $prop && 'attachment' == $type_obj->name
|
370 |
+
|| $type_obj->cap->$prop == str_replace( '_posts', "_{$type_obj->name}s", $prop )
|
371 |
+
|| $type_obj->cap->$prop == str_replace( '_pages', "_{$type_obj->name}s", $prop )
|
372 |
+
|| $type_obj->cap->$prop == str_replace( '_posts', "_" . _cme_get_plural($type_obj->name, $type_obj), $prop )
|
373 |
+
|| $type_obj->cap->$prop == str_replace( '_pages', "_" . _cme_get_plural($type_obj->name, $type_obj), $prop )
|
374 |
+
)
|
375 |
+
) {
|
376 |
+
// only present these term caps up top if we are ensuring that they get enforced separately from manage_terms
|
377 |
+
if ( in_array( $prop, array( 'edit_terms', 'delete_terms', 'assign_terms' ) ) && ( ! in_array( $type_obj->name, cme_get_detailed_taxonomies() ) || defined( 'OLD_PRESSPERMIT_ACTIVE' ) ) ) {
|
378 |
+
continue;
|
379 |
+
}
|
380 |
+
|
381 |
+
$cap_name = $type_obj->cap->$prop;
|
382 |
|
383 |
+
if ( 'taxonomy' == $item_type )
|
384 |
+
$td_classes []= "term-cap";
|
385 |
+
else
|
386 |
+
$td_classes []= "post-cap";
|
|
|
387 |
|
388 |
+
if ( ! empty($pp_metagroup_caps[$cap_name]) )
|
389 |
+
$td_classes []='cm-has-via-pp';
|
390 |
+
|
391 |
+
if ( $is_administrator || current_user_can($cap_name) ) {
|
392 |
+
if ( ! empty($pp_metagroup_caps[$cap_name]) ) {
|
393 |
+
$title_text = sprintf( __( '%s: assigned by Permission Group', 'capsman-enhanced' ), $cap_name );
|
394 |
+
} else {
|
395 |
+
$title_text = $cap_name;
|
|
|
|
|
|
|
|
|
396 |
}
|
397 |
|
398 |
+
$disabled = '';
|
399 |
+
$checked = checked(1, ! empty($rcaps[$cap_name]), false );
|
400 |
|
401 |
+
$checkbox = '<input type="checkbox" title="' . $title_text . '" name="caps[' . $cap_name . ']" value="1" ' . $checked . $disabled . ' />';
|
|
|
|
|
|
|
402 |
|
403 |
+
$type_caps [$cap_name] = true;
|
404 |
+
$display_row = true;
|
405 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
406 |
} else {
|
407 |
+
//$td_classes []= "cap-unreg";
|
408 |
+
$title = 'title="' . sprintf( __( 'shared capability: %s', 'capsman-enhanced' ), esc_attr( $type_obj->cap->$prop ) ) . '"';
|
409 |
}
|
410 |
|
411 |
+
if ( isset($rcaps[$cap_name]) && empty($rcaps[$cap_name]) ) {
|
412 |
+
$td_classes []= "cap-neg";
|
413 |
+
}
|
414 |
+
} else {
|
415 |
+
$td_classes []= "cap-unreg";
|
|
|
|
|
|
|
416 |
}
|
417 |
+
|
418 |
+
$td_class = ( $td_classes ) ? 'class="' . implode(' ', $td_classes) . '"' : '';
|
419 |
+
|
420 |
+
$row .= "<td $td_class $title><span class='cap-x'>X</span>$checkbox";
|
421 |
+
|
422 |
+
if ( false !== strpos( $td_class, 'cap-neg' ) )
|
423 |
+
$row .= '<input type="hidden" class="cme-negation-input" name="caps[' . $cap_name . ']" value="" />';
|
424 |
+
|
425 |
+
$row .= "</td>";
|
426 |
}
|
427 |
+
|
428 |
+
if ('type' == $item_type) {
|
429 |
+
$type_metacaps[$type_obj->cap->read_post] = true;
|
430 |
+
$type_metacaps[$type_obj->cap->edit_post] = true;
|
431 |
+
$type_metacaps[$type_obj->cap->delete_post] = true;
|
432 |
+
} elseif ('taxonomy' == $item_type && !empty($type_obj->cap->edit_term) && !empty($type_obj->cap->delete_term)) {
|
433 |
+
$type_metacaps[$type_obj->cap->edit_term] = true;
|
434 |
+
$type_metacaps[$type_obj->cap->delete_term] = true;
|
435 |
}
|
436 |
}
|
437 |
+
|
438 |
+
if ( $display_row ) {
|
439 |
+
$row .= '</tr>';
|
440 |
+
echo $row;
|
441 |
+
}
|
442 |
+
}
|
443 |
+
|
444 |
+
echo '</table>';
|
445 |
+
|
446 |
} // end foreach item type
|
447 |
|
448 |
+
echo '</div>';
|
449 |
|
450 |
echo '</li>';
|
451 |
}
|
468 |
<?php
|
469 |
|
470 |
echo '<p> </p><h3>' . __( 'Other WordPress Core Capabilities', 'capsman-enhanced' ) . '</h3>';
|
471 |
+
echo '<table class="form-table cme-checklist"><tr>';
|
472 |
|
473 |
$checks_per_row = get_option( 'cme_form-rows', 5 );
|
474 |
$i = 0; $first_row = true;
|
517 |
}
|
518 |
|
519 |
?>
|
520 |
+
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label title="<?php echo $title;?>"><input type="checkbox" name="caps[<?php echo $cap_name; ?>]" value="1" <?php echo $checked . $disabled;?> />
|
521 |
<span>
|
522 |
<?php
|
523 |
echo str_replace( '_', ' ', $cap_name );
|
538 |
}
|
539 |
|
540 |
if ( $i == $checks_per_row ) {
|
541 |
+
echo '</tr>';
|
542 |
$i = 0;
|
543 |
} elseif ( ! $first_row ) {
|
544 |
// Now close a wellformed table
|
557 |
</td></tr>
|
558 |
|
559 |
</table>
|
|
|
560 |
<?php
|
561 |
+
$all_capabilities = apply_filters( 'capsman_get_capabilities', array_keys( $this->capabilities ), $this->ID );
|
562 |
+
$all_capabilities = apply_filters( 'members_get_capabilities', $all_capabilities );
|
563 |
+
|
564 |
+
$publishpress_status_change_caps = array();
|
565 |
+
foreach( $all_capabilities as $cap_name ) {
|
566 |
+
if (0 === strpos($cap_name, 'status_change_')) {
|
567 |
+
$publishpress_status_change_caps []= $cap_name;
|
568 |
+
}
|
569 |
+
}
|
570 |
+
|
571 |
+
$plugin_caps = apply_filters('cme_plugin_capabilities',
|
572 |
+
array(
|
573 |
+
'PressPermit' => apply_filters('cme_presspermit_capabilities',
|
574 |
+
array(
|
575 |
+
'edit_own_attachments',
|
576 |
+
'list_others_unattached_files',
|
577 |
+
'pp_administer_content',
|
578 |
+
'pp_assign_roles',
|
579 |
+
'pp_associate_any_page',
|
580 |
+
'pp_create_groups',
|
581 |
+
'pp_create_network_groups',
|
582 |
+
'pp_define_moderation',
|
583 |
+
'pp_define_post_status',
|
584 |
+
'pp_define_privacy',
|
585 |
+
'pp_delete_groups',
|
586 |
+
'pp_edit_groups',
|
587 |
+
'pp_exempt_edit_circle',
|
588 |
+
'pp_exempt_read_circle',
|
589 |
+
'pp_force_quick_edit',
|
590 |
+
'pp_list_all_files',
|
591 |
+
'pp_manage_capabilities',
|
592 |
+
'pp_manage_members',
|
593 |
+
'pp_manage_network_members',
|
594 |
+
'pp_manage_roles',
|
595 |
+
'pp_manage_settings',
|
596 |
+
'pp_moderate_any',
|
597 |
+
'pp_set_associate_exceptions',
|
598 |
+
'pp_set_edit_exceptions',
|
599 |
+
'pp_set_notification_channel',
|
600 |
+
'pp_set_read_exceptions',
|
601 |
+
'pp_set_revise_exceptions',
|
602 |
+
'pp_set_term_assign_exceptions',
|
603 |
+
'pp_set_term_associate_exceptions',
|
604 |
+
'pp_set_term_manage_exceptions',
|
605 |
+
'pp_unfiltered',
|
606 |
+
'set_posts_status',
|
607 |
+
)
|
608 |
+
),
|
609 |
+
'PublishPress' => apply_filters('cme_publishpress_capabilities',
|
610 |
+
array_merge(
|
611 |
+
array(
|
612 |
+
'edit_post_subscriptions',
|
613 |
+
'ppma_edit_orphan_post',
|
614 |
+
'pp_manage_roles',
|
615 |
+
'pp_set_notification_channel',
|
616 |
+
'pp_view_calendar',
|
617 |
+
'pp_view_content_overview',
|
618 |
+
'status_change',
|
619 |
+
),
|
620 |
+
$publishpress_status_change_caps
|
621 |
+
)
|
622 |
+
),
|
623 |
+
'WooCommerce' => apply_filters('cme_woocommerce_capabilities',
|
624 |
+
array(
|
625 |
+
'assign_product_terms',
|
626 |
+
'assign_shop_coupon_terms',
|
627 |
+
'assign_shop_discount_terms',
|
628 |
+
'assign_shop_order_terms',
|
629 |
+
'assign_shop_payment_terms',
|
630 |
+
'create_shop_orders',
|
631 |
+
'delete_others_products',
|
632 |
+
'delete_others_shop_coupons',
|
633 |
+
'delete_others_shop_discounts',
|
634 |
+
'delete_others_shop_orders',
|
635 |
+
'delete_others_shop_payments',
|
636 |
+
'delete_private_products',
|
637 |
+
'delete_private_shop_coupons',
|
638 |
+
'delete_private_shop_orders',
|
639 |
+
'delete_private_shop_discounts',
|
640 |
+
'delete_private_shop_payments',
|
641 |
+
'delete_product_terms',
|
642 |
+
'delete_products',
|
643 |
+
'delete_published_products',
|
644 |
+
'delete_published_shop_coupons',
|
645 |
+
'delete_published_shop_discounts',
|
646 |
+
'delete_published_shop_orders',
|
647 |
+
'delete_published_shop_payments',
|
648 |
+
'delete_shop_coupons',
|
649 |
+
'delete_shop_coupon_terms',
|
650 |
+
'delete_shop_discount_terms',
|
651 |
+
'delete_shop_discounts',
|
652 |
+
'delete_shop_order_terms',
|
653 |
+
'delete_shop_orders',
|
654 |
+
'delete_shop_payments',
|
655 |
+
'delete_shop_payment_terms',
|
656 |
+
'edit_others_products',
|
657 |
+
'edit_others_shop_coupons',
|
658 |
+
'edit_others_shop_discounts',
|
659 |
+
'edit_others_shop_orders',
|
660 |
+
'edit_others_shop_payments',
|
661 |
+
'edit_private_products',
|
662 |
+
'edit_private_shop_coupons',
|
663 |
+
'edit_private_shop_discounts',
|
664 |
+
'edit_private_shop_orders',
|
665 |
+
'edit_private_shop_payments',
|
666 |
+
'edit_product_terms',
|
667 |
+
'edit_products',
|
668 |
+
'edit_published_products',
|
669 |
+
'edit_published_shop_coupons',
|
670 |
+
'edit_published_shop_discounts',
|
671 |
+
'edit_published_shop_orders',
|
672 |
+
'edit_published_shop_payments',
|
673 |
+
'edit_shop_coupon_terms',
|
674 |
+
'edit_shop_coupons',
|
675 |
+
'edit_shop_discounts',
|
676 |
+
'edit_shop_discount_terms',
|
677 |
+
'edit_shop_order_terms',
|
678 |
+
'edit_shop_orders',
|
679 |
+
'edit_shop_payments',
|
680 |
+
'edit_shop_payment_terms',
|
681 |
+
'export_shop_payments',
|
682 |
+
'export_shop_reports',
|
683 |
+
'import_shop_discounts',
|
684 |
+
'import_shop_payments',
|
685 |
+
'manage_product_terms',
|
686 |
+
'manage_shop_coupon_terms',
|
687 |
+
'manage_shop_discounts',
|
688 |
+
'manage_shop_discount_terms',
|
689 |
+
'manage_shop_payment_terms',
|
690 |
+
'manage_shop_order_terms',
|
691 |
+
'manage_shop_settings',
|
692 |
+
'manage_woocommerce',
|
693 |
+
'publish_products',
|
694 |
+
'publish_shop_coupons',
|
695 |
+
'publish_shop_discounts',
|
696 |
+
'publish_shop_orders',
|
697 |
+
'publish_shop_payments',
|
698 |
+
'read_private_products',
|
699 |
+
'read_private_shop_coupons',
|
700 |
+
'read_private_shop_discounts',
|
701 |
+
'read_private_shop_payments',
|
702 |
+
'read_private_shop_orders',
|
703 |
+
'view_admin_dashboard',
|
704 |
+
'view_shop_discount_stats',
|
705 |
+
'view_shop_payment_stats',
|
706 |
+
'view_shop_reports',
|
707 |
+
'view_shop_sensitive_data',
|
708 |
+
'view_woocommerce_reports',
|
709 |
+
)
|
710 |
+
),
|
711 |
+
));
|
712 |
+
|
713 |
+
foreach($plugin_caps as $plugin => $__plugin_caps) {
|
714 |
+
if (!$_plugin_caps = array_fill_keys( array_intersect($__plugin_caps, $all_capabilities), true )) {
|
715 |
+
continue;
|
716 |
+
}
|
717 |
+
|
718 |
+
echo '<h3 class="cme-cap-section">' . sprintf(__( '%s Capabilities', 'capsman-enhanced' ), str_replace('_', ' ', $plugin )) . '</h3>';
|
719 |
+
echo '<table class="form-table cme-checklist"><tr>';
|
720 |
+
|
721 |
+
$checks_per_row = get_option( 'cme_form-rows', 5 );
|
722 |
+
$i = 0; $first_row = true;
|
723 |
+
|
724 |
+
foreach( array_keys($_plugin_caps) as $cap_name ) {
|
725 |
+
if ( isset( $type_caps[$cap_name] ) || isset($core_caps[$cap_name]) || isset($type_metacaps[$cap_name]) ) {
|
726 |
+
continue;
|
727 |
+
}
|
728 |
+
|
729 |
+
if ( ! $is_administrator && ! current_user_can($cap_name) )
|
730 |
+
continue;
|
731 |
+
|
732 |
+
if ( $i == $checks_per_row ) {
|
733 |
+
echo '</tr><tr>';
|
734 |
+
$i = 0;
|
735 |
+
}
|
736 |
+
|
737 |
+
if ( ! isset( $rcaps[$cap_name] ) )
|
738 |
+
$class = 'cap-no';
|
739 |
+
else
|
740 |
+
$class = ( $rcaps[$cap_name] ) ? 'cap-yes' : 'cap-neg';
|
741 |
+
|
742 |
+
if ( ! empty($pp_metagroup_caps[$cap_name]) ) {
|
743 |
+
$class .= ' cap-metagroup';
|
744 |
+
$title_text = sprintf( __( '%s: assigned by Permission Group', 'capsman-enhanced' ), $cap_name );
|
745 |
+
} else {
|
746 |
+
$title_text = $cap_name;
|
747 |
+
}
|
748 |
+
|
749 |
+
$disabled = '';
|
750 |
+
$checked = checked(1, ! empty($rcaps[$cap_name]), false );
|
751 |
+
$title = $title_text;
|
752 |
+
?>
|
753 |
+
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label title="<?php echo $title;?>"><input type="checkbox" name="caps[<?php echo $cap_name; ?>]" value="1" <?php echo $checked . $disabled;?> />
|
754 |
+
<span>
|
755 |
+
<?php
|
756 |
+
echo str_replace( '_', ' ', $cap_name );
|
757 |
+
?>
|
758 |
+
</span></label><a href="#" class="neg-cap"> x </a>
|
759 |
+
<?php if ( false !== strpos( $class, 'cap-neg' ) ) :?>
|
760 |
+
<input type="hidden" class="cme-negation-input" name="caps[<?php echo $cap_name; ?>]" value="" />
|
761 |
+
<?php endif; ?>
|
762 |
+
</td>
|
763 |
+
|
764 |
+
<?php
|
765 |
+
++$i;
|
766 |
+
}
|
767 |
+
|
768 |
+
if ( $i == $checks_per_row ) {
|
769 |
+
echo '</tr>';
|
770 |
+
$i = 0;
|
771 |
+
} elseif ( ! $first_row ) {
|
772 |
+
// Now close a wellformed table
|
773 |
+
for ( $i; $i < $checks_per_row; $i++ ){
|
774 |
+
echo '<td> </td>';
|
775 |
+
}
|
776 |
+
echo '</tr>';
|
777 |
+
}
|
778 |
+
?>
|
779 |
+
|
780 |
+
<tr class="cme-bulk-select">
|
781 |
+
<td colspan="<?php echo $checks_per_row;?>">
|
782 |
+
<span style="float:right">
|
783 |
+
<input type="checkbox" class="cme-check-all" title="<?php _e('check/uncheck all', 'capsman-enhanced');?>"> <a class="cme-neg-all" href="#" title="<?php _e('negate all (storing as disabled capabilities)', 'capsman-enhanced');?>">X</a> <a class="cme-switch-all" href="#" title="<?php _e('negate none (add/remove all capabilities normally)', 'capsman-enhanced');?>">X</a>
|
784 |
+
</span>
|
785 |
+
</td></tr>
|
786 |
+
|
787 |
+
</table>
|
788 |
+
<?php
|
789 |
+
}
|
790 |
+
|
791 |
+
echo '<p> </p><h3 class="cme-cap-section">' . __( 'Additional Capabilities', 'capsman-enhanced' ) . '</h3>';
|
792 |
|
793 |
?>
|
794 |
+
<table class="form-table cme-checklist">
|
795 |
<tr>
|
796 |
<?php
|
797 |
$i = 0; $first_row = true;
|
798 |
|
|
|
|
|
|
|
799 |
foreach( $all_capabilities as $cap_name ) {
|
800 |
if ( ! isset($this->capabilities[$cap_name]) )
|
801 |
$this->capabilities[$cap_name] = str_replace( '_', ' ', $cap_name );
|
802 |
}
|
803 |
|
804 |
uasort( $this->capabilities, 'strnatcasecmp' ); // sort by array values, but maintain keys );
|
805 |
+
|
806 |
foreach ( $this->capabilities as $cap_name => $cap ) :
|
807 |
+
if ( isset( $type_caps[$cap_name] ) || isset($core_caps[$cap_name]) || isset($type_metacaps[$cap_name]) )
|
808 |
continue;
|
809 |
+
|
810 |
+
foreach(array_keys($plugin_caps) as $plugin) {
|
811 |
+
if ( in_array( $cap_name, $plugin_caps[$plugin]) ) {
|
812 |
+
continue 2;
|
813 |
+
}
|
814 |
+
}
|
815 |
+
|
816 |
if ( ! $is_administrator && empty( $current_user->allcaps[$cap_name] ) ) {
|
817 |
continue;
|
818 |
}
|
819 |
|
|
|
|
|
820 |
// Levels are not shown.
|
821 |
if ( preg_match( '/^level_(10|[0-9])$/i', $cap_name ) ) {
|
822 |
continue;
|
852 |
}
|
853 |
}
|
854 |
?>
|
855 |
+
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label title="<?php echo $title_text;?>"><input type="checkbox" name="caps[<?php echo $cap_name; ?>]" value="1" <?php echo $checked . $disabled;?> />
|
856 |
<span>
|
857 |
<?php
|
858 |
echo str_replace( '_', ' ', $cap );
|
886 |
|
887 |
<tr class="cme-bulk-select">
|
888 |
<td colspan="<?php echo $checks_per_row;?>">
|
889 |
+
<span style="float:right">
|
890 |
+
<input type="checkbox" class="cme-check-all" title="<?php _e('check/uncheck all', 'capsman-enhanced');?>"> <a class="cme-neg-all" href="#" title="<?php _e('negate all (storing as disabled capabilities)', 'capsman-enhanced');?>">X</a> <a class="cme-switch-all" href="#" title="<?php _e('negate none (add/remove all capabilities normally)', 'capsman-enhanced');?>">X</a>
|
891 |
+
</span>
|
892 |
+
</td></tr>
|
893 |
+
|
894 |
+
</table>
|
895 |
+
|
896 |
<?php
|
897 |
+
if (array_intersect(array_keys($type_metacaps), $all_capabilities)) {
|
898 |
+
|
899 |
+
$_title = esc_attr(__('Meta capabilities are used in code as placeholders for other capabilities. Assiging to a role has no effect.'));
|
900 |
+
echo '<p> </p><h3 class="cme-cap-section" title="' . $_title . '">' . __( 'Invalid Capabilities', 'capsman-enhanced' ) . '</h3>';
|
901 |
?>
|
902 |
+
<table class="form-table cme-checklist">
|
903 |
+
<tr>
|
904 |
+
<?php
|
905 |
+
$i = 0; $first_row = true;
|
906 |
+
|
907 |
+
foreach( $all_capabilities as $cap_name ) {
|
908 |
+
if ( ! isset($this->capabilities[$cap_name]) )
|
909 |
+
$this->capabilities[$cap_name] = str_replace( '_', ' ', $cap_name );
|
910 |
+
}
|
911 |
+
|
912 |
+
uasort( $this->capabilities, 'strnatcasecmp' ); // sort by array values, but maintain keys );
|
913 |
+
|
914 |
+
foreach ( $this->capabilities as $cap_name => $cap ) :
|
915 |
+
if ( ! isset( $type_metacaps[$cap_name] ) )
|
916 |
+
continue;
|
917 |
+
|
918 |
+
if ( ! $is_administrator && empty( $current_user->allcaps[$cap_name] ) ) {
|
919 |
+
continue;
|
920 |
+
}
|
921 |
+
|
922 |
+
if ( $i == $checks_per_row ) {
|
923 |
+
echo '</tr><tr>';
|
924 |
+
$i = 0; $first_row = false;
|
925 |
+
}
|
926 |
+
|
927 |
+
if ( ! isset( $rcaps[$cap_name] ) )
|
928 |
+
$class = 'cap-no';
|
929 |
+
else
|
930 |
+
$class = ( $rcaps[$cap_name] ) ? 'cap-yes' : 'cap-neg';
|
931 |
+
|
932 |
+
if ( ! empty($pp_metagroup_caps[$cap_name]) ) {
|
933 |
+
$class .= ' cap-metagroup';
|
934 |
+
$title_text = sprintf( __( '%s: assigned by Permission Group', 'capsman-enhanced' ), $cap_name );
|
935 |
+
} else {
|
936 |
+
$title_text = $cap_name;
|
937 |
+
}
|
938 |
+
|
939 |
+
$disabled = '';
|
940 |
+
$checked = checked(1, ! empty($rcaps[$cap_name]), false );
|
941 |
+
?>
|
942 |
+
<td class="<?php echo $class; ?>"><span class="cap-x">X</span><label title="<?php echo $title_text;?>"><input type="checkbox" name="caps[<?php echo $cap_name; ?>]" value="1" <?php echo $checked . $disabled;?> />
|
943 |
+
<span>
|
944 |
+
<?php
|
945 |
+
echo str_replace( '_', ' ', $cap );
|
946 |
?>
|
947 |
+
</span></label><a href="#" class="neg-cap"> x </a>
|
948 |
+
<?php if ( false !== strpos( $class, 'cap-neg' ) ) :?>
|
949 |
+
<input type="hidden" class="cme-negation-input" name="caps[<?php echo $cap_name; ?>]" value="" />
|
950 |
+
<?php endif; ?>
|
951 |
+
</td>
|
952 |
+
<?php
|
953 |
+
$i++;
|
954 |
+
endforeach;
|
955 |
+
|
956 |
+
if ( ! empty($lock_manage_caps_capability) ) {
|
957 |
+
echo '<input type="hidden" name="caps[manage_capabilities]" value="1" />';
|
958 |
+
}
|
959 |
|
960 |
+
if ( $i == $checks_per_row ) {
|
961 |
+
echo '</tr><tr>';
|
962 |
+
$i = 0;
|
963 |
+
} else {
|
964 |
+
if ( ! $first_row ) {
|
965 |
+
// Now close a wellformed table
|
966 |
+
for ( $i; $i < $checks_per_row; $i++ ){
|
967 |
+
echo '<td> </td>';
|
968 |
+
}
|
969 |
+
echo '</tr>';
|
970 |
+
}
|
971 |
+
}
|
972 |
+
?>
|
973 |
+
|
974 |
+
<tr class="cme-bulk-select">
|
975 |
+
<td colspan="<?php echo $checks_per_row;?>">
|
976 |
<span style="float:right">
|
977 |
<input type="checkbox" class="cme-check-all" title="<?php _e('check/uncheck all', 'capsman-enhanced');?>"> <a class="cme-neg-all" href="#" title="<?php _e('negate all (storing as disabled capabilities)', 'capsman-enhanced');?>">X</a> <a class="cme-switch-all" href="#" title="<?php _e('negate none (add/remove all capabilities normally)', 'capsman-enhanced');?>">X</a>
|
978 |
</span>
|
979 |
</td></tr>
|
980 |
+
|
981 |
</table>
|
982 |
+
<?php
|
983 |
+
} // endif any invalid caps
|
984 |
+
?>
|
985 |
+
|
986 |
+
<div>
|
987 |
+
<?php
|
988 |
+
$level = ak_caps2level($rcaps);
|
989 |
+
?>
|
990 |
+
<span title="<?php _e('Role level is mostly deprecated. However, it still determines eligibility for Post Author assignment and limits the application of user editing capabilities.', 'capsman-enhanced');?>">
|
991 |
+
<?php _e('Role Level:', 'capsman-enhanced');?> <select name="level">
|
992 |
+
<?php for ( $l = $this->max_level; $l >= 0; $l-- ) {?>
|
993 |
+
<option value="<?php echo $l; ?>" style="text-align:right;"<?php selected($level, $l); ?>> <?php echo $l; ?> </option>
|
994 |
+
<?php }
|
995 |
+
?>
|
996 |
+
</select>
|
997 |
+
</span>
|
998 |
+
|
999 |
<?php if ( ! defined('PRESSPERMIT_ACTIVE') || capsman_get_pp_option('display_hints') ) :?>
|
1000 |
+
<span class="cme-subtext" style="float:right">
|
1001 |
<?php _e( 'Note: Underscores replace spaces in stored capability name ("edit users" => "edit_users").', 'capsman-enhanced' ); ?>
|
|
|
|
|
1002 |
</span>
|
1003 |
+
<?php endif;?>
|
1004 |
+
</div>
|
1005 |
|
1006 |
</dd>
|
1007 |
</dl>
|
1048 |
<dt><?php _e('Create New Role', 'capsman-enhanced'); ?></dt>
|
1049 |
<dd style="text-align:center;">
|
1050 |
<?php $class = ( $support_pp_only_roles ) ? 'tight-text' : 'regular-text'; ?>
|
1051 |
+
<p><input type="text" name="create-name" class="<?php echo $class;?>" placeholder="<?php _e('Role Name', 'capsman-enhanced') ?>" />
|
1052 |
|
1053 |
<?php if( $support_pp_only_roles ) : ?>
|
1054 |
<label for="new_role_pp_only" title="<?php _e('Make role available for supplemental assignment to Permission Groups only', 'capsman-enhanced');?>"> <input type="checkbox" name="new_role_pp_only" id="new_role_pp_only" value="1"> <?php _e('hidden', 'capsman-enhanced'); ?> </label>
|
1093 |
|
1094 |
<dl>
|
1095 |
<dt><?php _e('Related Permissions Plugins', 'capsman-enhanced'); ?></dt>
|
1096 |
+
<dd>
|
1097 |
<ul>
|
1098 |
+
<li><a href="https://publishpress.com/ma/" target="_blank"><?php _e('Multiple Authors', 'capsman-enhanced');?></a></li>
|
1099 |
+
</li>
|
1100 |
+
|
1101 |
+
<li><a href="#pp-more"><?php _e('PressPermit', 'capsman-enhanced');?></a>
|
1102 |
+
</li>
|
1103 |
+
|
1104 |
<?php $_url = "plugin-install.php?tab=plugin-information&plugin=publishpress&TB_iframe=true&width=640&height=678";
|
1105 |
$url = ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
1106 |
?>
|
1107 |
<li><a class="thickbox" href="<?php echo $url;?>"><?php _e('PublishPress', 'capsman-enhanced');?></a></li>
|
1108 |
|
|
|
|
|
|
|
1109 |
<?php $_url = "plugin-install.php?tab=plugin-information&plugin=revisionary&TB_iframe=true&width=640&height=678";
|
1110 |
$url = ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
1111 |
?>
|
1112 |
+
<li><a class="thickbox" href="<?php echo $url;?>"><?php _e('PublishPress Revisions', 'capsman-enhanced');?></a></li>
|
1113 |
+
|
1114 |
<li class="publishpress-contact"><a href="https://publishpress.com/contact" target="_blank"><?php _e('Help / Contact Form', 'capsman-enhanced');?></a></li>
|
1115 |
+
|
1116 |
</ul>
|
1117 |
+
</dd>
|
1118 |
</dl>
|
1119 |
|
1120 |
<?php
|
1126 |
</table>
|
1127 |
</fieldset>
|
1128 |
</form>
|
1129 |
+
|
1130 |
+
<?php cme_publishpressFooter(); ?>
|
1131 |
</div>
|
1132 |
|
1133 |
<?php
|
1157 |
function cme_plugin_info_url( $plugin_slug ) {
|
1158 |
$_url = "plugin-install.php?tab=plugin-information&plugin=$plugin_slug&TB_iframe=true&width=640&height=678";
|
1159 |
return ( is_multisite() ) ? network_admin_url($_url) : admin_url($_url);
|
1160 |
+
}
|
1161 |
+
|
1162 |
+
function cme_publishpressFooter() {
|
1163 |
+
?>
|
1164 |
+
<footer>
|
1165 |
+
|
1166 |
+
<div class="pp-rating">
|
1167 |
+
<a href="https://wordpress.org/support/plugin/capability-manager-enhanced/reviews/#new-post" target="_blank" rel="noopener noreferrer">
|
1168 |
+
<?php printf(
|
1169 |
+
__('If you like %s, please leave us a %s rating. Thank you!', 'capsman-enhanced'),
|
1170 |
+
'<strong>Capability Manager Enhanced</strong>',
|
1171 |
+
'<span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span><span class="dashicons dashicons-star-filled"></span>'
|
1172 |
+
);
|
1173 |
+
?>
|
1174 |
+
</a>
|
1175 |
+
</div>
|
1176 |
+
|
1177 |
+
<hr>
|
1178 |
+
<nav>
|
1179 |
+
<ul>
|
1180 |
+
<li><a href="https://publishpress.com/capability-manager/" target="_blank" rel="noopener noreferrer" title="<?php _e('About Capability Manager Enhanced', 'capsman-enhanced');?>"><?php _e('About', 'capsman-enhanced');?>
|
1181 |
+
</a></li>
|
1182 |
+
<li><a href="https://publishpress.com/knowledge-base/how-to-use-capability-manager/" target="_blank" rel="noopener noreferrer" title="<?php _e('Capability Manager Enhanced Documentation', 'capsman-enhanced');?>"><?php _e('Documentation', 'capsman-enhanced');?>
|
1183 |
+
</a></li>
|
1184 |
+
<li><a href="https://publishpress.com/contact" target="_blank" rel="noopener noreferrer" title="<?php _e('Contact the PublishPress team', 'capsman-enhanced');?>"><?php _e('Contact', 'capsman-enhanced');?>
|
1185 |
+
</a></li>
|
1186 |
+
<li><a href="https://twitter.com/publishpresscom" target="_blank" rel="noopener noreferrer"><span class="dashicons dashicons-twitter"></span>
|
1187 |
+
</a></li>
|
1188 |
+
<li><a href="https://facebook.com/publishpress" target="_blank" rel="noopener noreferrer"><span class="dashicons dashicons-facebook"></span>
|
1189 |
+
</a></li>
|
1190 |
+
</ul>
|
1191 |
+
</nav>
|
1192 |
+
|
1193 |
+
<div class="pp-pressshack-logo">
|
1194 |
+
<a href="https://publishpress.com" target="_blank" rel="noopener noreferrer">
|
1195 |
+
|
1196 |
+
<img src="<?php echo plugins_url('', CME_FILE) . '/common/img/publishpress-logo.png';?>" />
|
1197 |
+
</a>
|
1198 |
+
</div>
|
1199 |
+
|
1200 |
+
</footer>
|
1201 |
+
<?php
|
1202 |
+
}
|
includes/cap-helper.php
CHANGED
@@ -232,8 +232,9 @@ class CME_Cap_Helper {
|
|
232 |
|
233 |
// count the number of taxonomies that use each capability
|
234 |
foreach( $wp_taxonomies as $taxonomy => $tx_obj ) {
|
235 |
-
|
236 |
-
|
|
|
237 |
foreach( $this_tx_caps as $cap_name ) {
|
238 |
if ( ! isset( $this->all_taxonomy_caps[$cap_name] ) ) {
|
239 |
$this->all_taxonomy_caps[$cap_name] = 1;
|
@@ -292,10 +293,36 @@ class CME_Cap_Helper {
|
|
292 |
}
|
293 |
}
|
294 |
$tx_caps = (array) $wp_taxonomies[$taxonomy]->cap;
|
295 |
-
|
|
|
296 |
// Optionally, also force edit_terms and delete_terms to be distinct from manage_terms, and force a distinct assign_terms capability
|
297 |
if ( in_array( $taxonomy, $detailed_taxonomies ) ) {
|
298 |
foreach( $tx_detail_caps as $cap_property => $replacement_cap_format ) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
299 |
if ( ! empty( $this->all_taxonomy_caps[ $tx_caps[$cap_property] ] ) ) {
|
300 |
// assign_terms is otherwise not forced taxonomy-distinct
|
301 |
$wp_taxonomies[$taxonomy]->cap->$cap_property = str_replace( '_terms', "_{$plural_type}", $replacement_cap_format );
|
@@ -313,6 +340,10 @@ class CME_Cap_Helper {
|
|
313 |
}
|
314 |
}
|
315 |
}
|
|
|
|
|
|
|
|
|
316 |
}
|
317 |
|
318 |
$tx_caps = (array) $wp_taxonomies[$taxonomy]->cap;
|
232 |
|
233 |
// count the number of taxonomies that use each capability
|
234 |
foreach( $wp_taxonomies as $taxonomy => $tx_obj ) {
|
235 |
+
//$this_tx_caps = array_unique( (array) $tx_obj->cap );
|
236 |
+
$this_tx_caps = (array) $tx_obj->cap;
|
237 |
+
|
238 |
foreach( $this_tx_caps as $cap_name ) {
|
239 |
if ( ! isset( $this->all_taxonomy_caps[$cap_name] ) ) {
|
240 |
$this->all_taxonomy_caps[$cap_name] = 1;
|
293 |
}
|
294 |
}
|
295 |
$tx_caps = (array) $wp_taxonomies[$taxonomy]->cap;
|
296 |
+
|
297 |
+
|
298 |
// Optionally, also force edit_terms and delete_terms to be distinct from manage_terms, and force a distinct assign_terms capability
|
299 |
if ( in_array( $taxonomy, $detailed_taxonomies ) ) {
|
300 |
foreach( $tx_detail_caps as $cap_property => $replacement_cap_format ) {
|
301 |
+
$tx_cap_usage = array_count_values($tx_caps);
|
302 |
+
|
303 |
+
// If a unique edit/delete capability is already defined, don't change the definition
|
304 |
+
if (!empty($tx_caps[$cap_property])
|
305 |
+
&& (empty($this->all_taxonomy_caps[$tx_caps[$cap_property]]) || $this->all_taxonomy_caps[$tx_caps[$cap_property]] == 1)
|
306 |
+
&& ($tx_cap_usage[$tx_caps[$cap_property]] == 1)
|
307 |
+
&& !defined('CAPSMAN_LEGACY_DETAILED_TAX_CAPS')
|
308 |
+
) {
|
309 |
+
// If roles were already configured with generated capability name, migrate to custom predefined capability name
|
310 |
+
$custom_detailed_taxonomy_caps = true;
|
311 |
+
$generated_cap_name = str_replace('_terms', "_{$plural_type}", $replacement_cap_format);
|
312 |
+
|
313 |
+
if (!get_option("cme_migrated_taxonomy_caps")) {
|
314 |
+
foreach ($wp_roles->roles as $role_name => $role) {
|
315 |
+
if (!empty($role['capabilities'][$generated_cap_name])) {
|
316 |
+
$_role = get_role($role_name);
|
317 |
+
$_role->add_cap($tx_caps[$cap_property]);
|
318 |
+
$_role->remove_cap($generated_cap_name);
|
319 |
+
}
|
320 |
+
}
|
321 |
+
}
|
322 |
+
|
323 |
+
continue;
|
324 |
+
}
|
325 |
+
|
326 |
if ( ! empty( $this->all_taxonomy_caps[ $tx_caps[$cap_property] ] ) ) {
|
327 |
// assign_terms is otherwise not forced taxonomy-distinct
|
328 |
$wp_taxonomies[$taxonomy]->cap->$cap_property = str_replace( '_terms', "_{$plural_type}", $replacement_cap_format );
|
340 |
}
|
341 |
}
|
342 |
}
|
343 |
+
|
344 |
+
if (!empty($custom_detailed_taxonomy_caps)) {
|
345 |
+
update_option("cme_migrated_taxonomy_caps", true);
|
346 |
+
}
|
347 |
}
|
348 |
|
349 |
$tx_caps = (array) $wp_taxonomies[$taxonomy]->cap;
|
includes/filters-admin.php
CHANGED
@@ -8,8 +8,8 @@ class CME_AdminMenuNoPrivWorkaround {
|
|
8 |
if ( 'edit.php' == $pagenow ) {
|
9 |
// Prevent lack of create_posts capability from completely blocking admin menu access to a post type.
|
10 |
// The "Add New" page is already successfully blocked by other means.
|
11 |
-
|
12 |
-
add_action( 'admin_menu', array( $this, 'menu_nopriv_workaround_disable' ),
|
13 |
}
|
14 |
}
|
15 |
|
8 |
if ( 'edit.php' == $pagenow ) {
|
9 |
// Prevent lack of create_posts capability from completely blocking admin menu access to a post type.
|
10 |
// The "Add New" page is already successfully blocked by other means.
|
11 |
+
add_action( '_admin_menu', array( $this, 'menu_nopriv_workaround_enable' ), PHP_INT_MAX );
|
12 |
+
add_action( 'admin_menu', array( $this, 'menu_nopriv_workaround_disable' ), - PHP_INT_MAX );
|
13 |
}
|
14 |
}
|
15 |
|
includes/filters-wp_rest_workarounds.php
ADDED
@@ -0,0 +1,146 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
<?php
|
2 |
+
namespace PublishPress\Capabilities;
|
3 |
+
|
4 |
+
/**
|
5 |
+
* PublishPress\Capabilities\WP_REST_Workarounds class
|
6 |
+
*
|
7 |
+
* @author Kevin Behrens
|
8 |
+
* @copyright Copyright (c) 2019, PublishPress
|
9 |
+
* @link https://publishpress.com
|
10 |
+
*
|
11 |
+
*/
|
12 |
+
class WP_REST_Workarounds
|
13 |
+
{
|
14 |
+
var $post_id = 0;
|
15 |
+
var $is_posts_request = false;
|
16 |
+
|
17 |
+
function __construct() {
|
18 |
+
add_filter('rest_pre_dispatch', [$this, 'fltRestPreDispatch'], 10, 3);
|
19 |
+
add_filter('user_has_cap', [$this, 'fltPublishCapReplacement'], 5, 3);
|
20 |
+
|
21 |
+
add_filter('pre_post_status', [$this, 'fltPostStatus'], 10, 1);
|
22 |
+
}
|
23 |
+
|
24 |
+
/**
|
25 |
+
* Work around Gutenberg editor enforcing publish_posts capability instead of edit_published_posts.
|
26 |
+
*
|
27 |
+
* Allow edit_published capability to satisfy publish capability requirement if:
|
28 |
+
* - The query pertains to a specific post
|
29 |
+
* - The post type and its capabilities are defined and match the current publish capability requirement
|
30 |
+
* - The post is already published with a public status, or scheduled
|
31 |
+
*
|
32 |
+
* @author Kevin Behrens
|
33 |
+
* @link https://core.trac.wordpress.org/ticket/47443
|
34 |
+
* @link https://github.com/WordPress/gutenberg/issues/13342
|
35 |
+
* @param array $wp_sitecaps Array of user capabilities acknowledged for this request.
|
36 |
+
* @param array $reqd_caps Capability requirements
|
37 |
+
* @param array $args Additional arguments passed into user_has_cap filter
|
38 |
+
*/
|
39 |
+
public function fltPublishCapReplacement($wp_sitecaps, $reqd_caps, $args)
|
40 |
+
{
|
41 |
+
if ($reqd_cap = reset($reqd_caps)) {
|
42 |
+
// slight compromise for perf: apply this workaround only when publish_posts capability for post type follows typical pattern (publish_*)
|
43 |
+
if (0 === strpos($reqd_cap, 'publish_')) {
|
44 |
+
if (!empty($wp_sitecaps[$reqd_cap])) {
|
45 |
+
return $wp_sitecaps;
|
46 |
+
}
|
47 |
+
|
48 |
+
if (!$_post = get_post($this->getPostID())) {
|
49 |
+
return $wp_sitecaps;
|
50 |
+
}
|
51 |
+
|
52 |
+
$type_obj = get_post_type_object($_post->post_type);
|
53 |
+
$status_obj = get_post_status_object($_post->post_status);
|
54 |
+
|
55 |
+
if ($type_obj && !empty($type_obj->cap)
|
56 |
+
&& !empty($type_obj->cap->publish_posts) && !empty($type_obj->cap->edit_published_posts)
|
57 |
+
&& $type_obj->cap->publish_posts == $reqd_cap
|
58 |
+
&& $status_obj && (!empty($status_obj->public) || 'future' == $_post->post_status)
|
59 |
+
) {
|
60 |
+
if (!empty($wp_sitecaps[$type_obj->cap->edit_published_posts])) {
|
61 |
+
$wp_sitecaps[$reqd_cap] = true;
|
62 |
+
}
|
63 |
+
}
|
64 |
+
}
|
65 |
+
}
|
66 |
+
|
67 |
+
return $wp_sitecaps;
|
68 |
+
}
|
69 |
+
|
70 |
+
/**
|
71 |
+
* If the post is already published, prevent the workaround from allowing status to be changed via "Switch to Draft" (or by any other means).
|
72 |
+
*
|
73 |
+
* This will also prevent users with edit_published capability but not publish capability from unpublishing via Quick Edit.
|
74 |
+
*
|
75 |
+
* @param string $post_status New post status about to be saved
|
76 |
+
*/
|
77 |
+
function fltPostStatus($post_status) {
|
78 |
+
global $current_user;
|
79 |
+
|
80 |
+
if ($_post = get_post($this->getPostID())) {
|
81 |
+
$type_obj = get_post_type_object($_post->post_type);
|
82 |
+
$status_obj = get_post_status_object($_post->post_status);
|
83 |
+
|
84 |
+
if ($type_obj && $status_obj && (!empty($status_obj->public) || !empty($status_obj->private) || 'future' == $_post->post_status)) {
|
85 |
+
if (empty($current_user->allcaps[$type_obj->cap->publish_posts])) {
|
86 |
+
$post_status = $_post->post_status;
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
+
return $post_status;
|
92 |
+
}
|
93 |
+
|
94 |
+
private function getPostID()
|
95 |
+
{
|
96 |
+
global $post;
|
97 |
+
|
98 |
+
if (defined('REST_REQUEST') && REST_REQUEST && $this->is_posts_request) {
|
99 |
+
return $this->post_id;
|
100 |
+
}
|
101 |
+
|
102 |
+
if (!empty($post) && is_object($post)) {
|
103 |
+
return ('auto-draft' == $post->post_status) ? 0 : $post->ID;
|
104 |
+
} elseif (isset($_REQUEST['post'])) {
|
105 |
+
return (int)$_REQUEST['post'];
|
106 |
+
} elseif (isset($_REQUEST['post_ID'])) {
|
107 |
+
return (int)$_REQUEST['post_ID'];
|
108 |
+
} elseif (isset($_REQUEST['post_id'])) {
|
109 |
+
return (int)$_REQUEST['post_id'];
|
110 |
+
}
|
111 |
+
}
|
112 |
+
|
113 |
+
public function fltRestPreDispatch($rest_response, $rest_server, $request)
|
114 |
+
{
|
115 |
+
$method = $request->get_method();
|
116 |
+
$path = $request->get_route();
|
117 |
+
|
118 |
+
foreach ($rest_server->get_routes() as $route => $handlers) {
|
119 |
+
if (!$match = preg_match( '@^' . $route . '$@i', $path, $matches )) {
|
120 |
+
continue;
|
121 |
+
}
|
122 |
+
|
123 |
+
$args = [];
|
124 |
+
foreach ($matches as $param => $value) {
|
125 |
+
if (!is_int($param)) {
|
126 |
+
$args[ $param ] = $value;
|
127 |
+
}
|
128 |
+
}
|
129 |
+
|
130 |
+
foreach ($handlers as $handler) {
|
131 |
+
if (is_array($handler['callback']) && isset($handler['callback'][0]) && is_object($handler['callback'][0])
|
132 |
+
&& 'WP_REST_Posts_Controller' == get_class($handler['callback'][0])
|
133 |
+
) {
|
134 |
+
if ( ! $this->post_id = (!empty($args['id'])) ? $args['id'] : 0) {
|
135 |
+
$this->post_id = (!empty($this->params['id'])) ? $this->params['id'] : 0;
|
136 |
+
}
|
137 |
+
|
138 |
+
$this->is_posts_request = true;
|
139 |
+
break 2;
|
140 |
+
}
|
141 |
+
}
|
142 |
+
}
|
143 |
+
|
144 |
+
return $rest_response;
|
145 |
+
}
|
146 |
+
}
|
includes/filters.php
CHANGED
@@ -34,6 +34,8 @@ if ( is_admin() ) {
|
|
34 |
}
|
35 |
}
|
36 |
|
|
|
|
|
37 |
// allow edit_terms, delete_terms, assign_terms capabilities to function separately from manage_terms
|
38 |
function _cme_remap_term_meta_cap ( $caps, $cap, $user_id, $args ) {
|
39 |
global $current_user, $cme_cap_helper;
|
@@ -166,3 +168,14 @@ function _cme_get_plural( $slug, $type_obj = false ) {
|
|
166 |
return sanitize_key( CME_Inflect::pluralize( $slug ) );
|
167 |
}
|
168 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
34 |
}
|
35 |
}
|
36 |
|
37 |
+
add_filter('plugin_action_links_' . plugin_basename(CME_FILE), '_cme_fltPluginActionLinks', 10, 2);
|
38 |
+
|
39 |
// allow edit_terms, delete_terms, assign_terms capabilities to function separately from manage_terms
|
40 |
function _cme_remap_term_meta_cap ( $caps, $cap, $user_id, $args ) {
|
41 |
global $current_user, $cme_cap_helper;
|
168 |
return sanitize_key( CME_Inflect::pluralize( $slug ) );
|
169 |
}
|
170 |
}
|
171 |
+
|
172 |
+
function _cme_fltPluginActionLinks($links, $file)
|
173 |
+
{
|
174 |
+
if ($file == plugin_basename(CME_FILE)) {
|
175 |
+
if (!is_network_admin()) {
|
176 |
+
$links[] = "<a href='" . admin_url("admin.php?page=capsman") . "'>" . __('Edit Roles', 'capsman-enhanced') . "</a>";
|
177 |
+
}
|
178 |
+
}
|
179 |
+
|
180 |
+
return $links;
|
181 |
+
}
|
includes/manager.php
CHANGED
@@ -43,7 +43,7 @@ function _cme_core_caps() {
|
|
43 |
$core_caps = array_fill_keys( array( 'switch_themes', 'edit_themes', 'activate_plugins', 'edit_plugins', 'edit_users', 'edit_files', 'manage_options', 'moderate_comments',
|
44 |
'manage_links', 'upload_files', 'import', 'unfiltered_html', 'read', 'delete_users', 'create_users', 'unfiltered_upload', 'edit_dashboard',
|
45 |
'update_plugins', 'delete_plugins', 'install_plugins', 'update_themes', 'install_themes',
|
46 |
-
'update_core', 'list_users', 'remove_users', '
|
47 |
|
48 |
ksort( $core_caps );
|
49 |
return $core_caps;
|
@@ -131,6 +131,10 @@ class CapabilityManager
|
|
131 |
|
132 |
// Load styles
|
133 |
add_action('admin_print_styles', array($this, 'adminStyles'));
|
|
|
|
|
|
|
|
|
134 |
}
|
135 |
|
136 |
/**
|
@@ -145,6 +149,8 @@ class CapabilityManager
|
|
145 |
if ( empty( $_REQUEST['page'] ) || ! in_array( $_REQUEST['page'], array( 'capsman', 'capsman-tool' ) ) )
|
146 |
return;
|
147 |
|
|
|
|
|
148 |
wp_register_style( $this->ID . 'framework_admin', $this->mod_url . '/framework/styles/admin.css', false, CAPSMAN_ENH_VERSION);
|
149 |
wp_enqueue_style( $this->ID . 'framework_admin');
|
150 |
|
@@ -164,6 +170,12 @@ class CapabilityManager
|
|
164 |
);
|
165 |
}
|
166 |
|
|
|
|
|
|
|
|
|
|
|
|
|
167 |
/**
|
168 |
* Creates some filters at module load time.
|
169 |
*
|
@@ -263,6 +275,11 @@ class CapabilityManager
|
|
263 |
global $pp_admin;
|
264 |
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
265 |
add_submenu_page( $pp_admin->get_menu('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', $this->ID, array($this, 'generalManager') );
|
|
|
|
|
|
|
|
|
|
|
266 |
} else {
|
267 |
add_users_page( __('Capability Manager', 'capsman-enhanced'), __('Capabilities', 'capsman-enhanced'), 'manage_capabilities', $this->ID, array($this, 'generalManager'));
|
268 |
}
|
43 |
$core_caps = array_fill_keys( array( 'switch_themes', 'edit_themes', 'activate_plugins', 'edit_plugins', 'edit_users', 'edit_files', 'manage_options', 'moderate_comments',
|
44 |
'manage_links', 'upload_files', 'import', 'unfiltered_html', 'read', 'delete_users', 'create_users', 'unfiltered_upload', 'edit_dashboard',
|
45 |
'update_plugins', 'delete_plugins', 'install_plugins', 'update_themes', 'install_themes',
|
46 |
+
'update_core', 'list_users', 'remove_users', 'promote_users', 'edit_theme_options', 'delete_themes', 'export' ), true );
|
47 |
|
48 |
ksort( $core_caps );
|
49 |
return $core_caps;
|
131 |
|
132 |
// Load styles
|
133 |
add_action('admin_print_styles', array($this, 'adminStyles'));
|
134 |
+
|
135 |
+
if ( isset($_REQUEST['page']) && ( 'capsman' == $_REQUEST['page'] ) ) {
|
136 |
+
add_action('admin_enqueue_scripts', array($this, 'adminScriptsPP'));
|
137 |
+
}
|
138 |
}
|
139 |
|
140 |
/**
|
149 |
if ( empty( $_REQUEST['page'] ) || ! in_array( $_REQUEST['page'], array( 'capsman', 'capsman-tool' ) ) )
|
150 |
return;
|
151 |
|
152 |
+
wp_enqueue_style('revisionary-admin-common', $this->mod_url . '/common/css/pressshack-admin.css', [], CAPSMAN_ENH_VERSION);
|
153 |
+
|
154 |
wp_register_style( $this->ID . 'framework_admin', $this->mod_url . '/framework/styles/admin.css', false, CAPSMAN_ENH_VERSION);
|
155 |
wp_enqueue_style( $this->ID . 'framework_admin');
|
156 |
|
170 |
);
|
171 |
}
|
172 |
|
173 |
+
function adminScriptsPP() {
|
174 |
+
wp_enqueue_style( 'plugin-install' );
|
175 |
+
wp_enqueue_script( 'plugin-install' );
|
176 |
+
add_thickbox();
|
177 |
+
}
|
178 |
+
|
179 |
/**
|
180 |
* Creates some filters at module load time.
|
181 |
*
|
275 |
global $pp_admin;
|
276 |
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
277 |
add_submenu_page( $pp_admin->get_menu('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', $this->ID, array($this, 'generalManager') );
|
278 |
+
|
279 |
+
} elseif(did_action('presspermit_admin_menu') && function_exists('presspermit')) {
|
280 |
+
$menu_caption = ( defined('WPLANG') && WPLANG && ( 'en_EN' != WPLANG ) ) ? __('Capabilities', 'capsman-enhanced') : 'Role Capabilities';
|
281 |
+
add_submenu_page( presspermit()->admin()->getMenuParams('options'), __('Capability Manager', 'capsman-enhanced'), $menu_caption, 'manage_capabilities', $this->ID, array($this, 'generalManager') );
|
282 |
+
|
283 |
} else {
|
284 |
add_users_page( __('Capability Manager', 'capsman-enhanced'), __('Capabilities', 'capsman-enhanced'), 'manage_capabilities', $this->ID, array($this, 'generalManager'));
|
285 |
}
|
lang/capsman.mo
CHANGED
Binary file
|
lang/capsman.po
CHANGED
@@ -2,8 +2,8 @@ msgid ""
|
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Capability Manager Enhanced\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
-
"POT-Creation-Date: 2019-
|
6 |
-
"PO-Revision-Date: 2019-
|
7 |
"Last-Translator: Kevin Behrens <kevin@publishpress.com>\n"
|
8 |
"Language-Team: PublishPress <help@publishpress.com>\n"
|
9 |
"MIME-Version: 1.0\n"
|
@@ -35,19 +35,23 @@ msgstr ""
|
|
35 |
msgid "%s is required for this plugin."
|
36 |
msgstr ""
|
37 |
|
38 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:
|
39 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:
|
40 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:
|
41 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/
|
42 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
43 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
|
|
|
|
44 |
msgid "Capability Manager"
|
45 |
msgstr ""
|
46 |
|
47 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:
|
48 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:
|
49 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/
|
50 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
|
|
|
|
51 |
msgid "Capabilities"
|
52 |
msgstr ""
|
53 |
|
@@ -56,391 +60,377 @@ msgid "Settings saved."
|
|
56 |
msgstr ""
|
57 |
|
58 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:36
|
59 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:36
|
60 |
#, php-format
|
61 |
msgid "Warning: This role cannot access the dashboard without the read capability. %1$sClick here to fix this now%2$s."
|
62 |
msgstr ""
|
63 |
|
64 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:61
|
65 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:61
|
66 |
msgid "Roles and Capabilities"
|
67 |
msgstr ""
|
68 |
|
69 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:70
|
70 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:70
|
71 |
#, php-format
|
72 |
msgid "Capabilities for %s"
|
73 |
msgstr ""
|
74 |
|
75 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:73
|
76 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
77 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:73
|
78 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:687
|
79 |
msgid "Save Changes"
|
80 |
msgstr ""
|
81 |
|
82 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
83 |
-
|
84 |
-
msgid "View and modify capabilities WordPress associates with each role. Changes <strong>remain in the database</strong> even if you deactivate this plugin."
|
85 |
msgstr ""
|
86 |
|
87 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
88 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:89
|
89 |
#, php-format
|
90 |
msgid "Thanks for using the %1$sPublishPress%2$s family of professional publishing tools."
|
91 |
msgstr ""
|
92 |
|
93 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
94 |
-
|
|
|
|
|
|
|
95 |
msgid "Automatically define type-specific capabilities for your custom post types and taxonomies"
|
96 |
msgstr ""
|
97 |
|
98 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
99 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:124
|
100 |
msgid "Assign standard WP roles supplementally for a specific post type"
|
101 |
msgstr ""
|
102 |
|
103 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
104 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:128
|
105 |
msgid "Assign custom WP roles supplementally for a specific post type <em>(Pro)</em>"
|
106 |
msgstr ""
|
107 |
|
108 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
109 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:132
|
110 |
msgid "Customize reading permissions per-category or per-post"
|
111 |
msgstr ""
|
112 |
|
113 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
114 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:136
|
115 |
msgid "Customize editing permissions per-category or per-post <em>(Pro)</em>"
|
116 |
msgstr ""
|
117 |
|
118 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
119 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:140
|
120 |
msgid "Custom Post Visibility statuses, fully implemented throughout wp-admin <em>(Pro)</em>"
|
121 |
msgstr ""
|
122 |
|
123 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
124 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:144
|
125 |
msgid "Custom Moderation statuses for access-controlled, multi-step publishing workflow <em>(Pro)</em>"
|
126 |
msgstr ""
|
127 |
|
128 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
129 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:148
|
130 |
msgid "Regulate permissions for Edit Flow post statuses <em>(Pro)</em>"
|
131 |
msgstr ""
|
132 |
|
133 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
134 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:152
|
135 |
msgid "Customize the moderated editing of published content with Revisionary or Post Forking <em>(Pro)</em>"
|
136 |
msgstr ""
|
137 |
|
138 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
139 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:156
|
140 |
msgid "Grant Spectator, Participant or Moderator access to specific bbPress forums <em>(Pro)</em>"
|
141 |
msgstr ""
|
142 |
|
143 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
144 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:160
|
145 |
msgid "Grant supplemental content permissions to a BuddyPress group <em>(Pro)</em>"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
149 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:164
|
150 |
msgid "WPML integration to mirror permissions to translations <em>(Pro)</em>"
|
151 |
msgstr ""
|
152 |
|
153 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
154 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:168
|
155 |
msgid "Member support forum"
|
156 |
msgstr ""
|
157 |
|
158 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
159 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:174
|
160 |
#, php-format
|
161 |
msgid "%1$sgrab%2$s %3$s"
|
162 |
msgstr ""
|
163 |
|
164 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
165 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:174
|
166 |
#, php-format
|
167 |
msgid "%s (free install)"
|
168 |
msgstr ""
|
169 |
|
170 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
171 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:176
|
172 |
#, php-format
|
173 |
msgid "%1$sbuy%2$s %3$s"
|
174 |
msgstr ""
|
175 |
|
176 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
177 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:176
|
178 |
#, php-format
|
179 |
msgid "%s info/purchase"
|
180 |
msgstr ""
|
181 |
|
182 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
183 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:252
|
184 |
msgid " "
|
185 |
msgstr ""
|
186 |
|
187 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
188 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:253
|
189 |
msgid "Reading"
|
190 |
msgstr ""
|
191 |
|
192 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
193 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:254
|
194 |
msgid "Editing Capabilities"
|
195 |
msgstr ""
|
196 |
|
197 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
198 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:255
|
199 |
msgid "Deletion Capabilities"
|
200 |
msgstr ""
|
201 |
|
202 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
203 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:259
|
204 |
msgid "can read posts which are currently published with private visibility"
|
205 |
msgstr ""
|
206 |
|
207 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
208 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:260
|
209 |
msgid "has basic editing capability (but may need other capabilities based on post status and ownership)"
|
210 |
msgstr ""
|
211 |
|
212 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
213 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:261
|
214 |
msgid "can edit posts which were created by other users"
|
215 |
msgstr ""
|
216 |
|
217 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
218 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:262
|
219 |
msgid "can edit posts which are currently published"
|
220 |
msgstr ""
|
221 |
|
222 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
223 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:263
|
224 |
msgid "can edit posts which are currently published with private visibility"
|
225 |
msgstr ""
|
226 |
|
227 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
228 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:264
|
229 |
msgid "can make a post publicly visible"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
233 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:265
|
234 |
msgid "has basic deletion capability (but may need other capabilities based on post status and ownership)"
|
235 |
msgstr ""
|
236 |
|
237 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
238 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:266
|
239 |
msgid "can delete posts which were created by other users"
|
240 |
msgstr ""
|
241 |
|
242 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
243 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:267
|
244 |
msgid "can delete posts which are currently published"
|
245 |
msgstr ""
|
246 |
|
247 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
248 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:268
|
249 |
msgid "can delete posts which are currently published with private visibility"
|
250 |
msgstr ""
|
251 |
|
252 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
253 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
254 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
255 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
256 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
257 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:597
|
258 |
#, php-format
|
259 |
msgid "%s: assigned by Permission Group"
|
260 |
msgstr ""
|
261 |
|
262 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
263 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:409
|
264 |
#, php-format
|
265 |
msgid "shared capability: %s"
|
266 |
msgstr ""
|
267 |
|
268 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
269 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:461
|
270 |
msgid "Other WordPress Core Capabilities"
|
271 |
msgstr ""
|
272 |
|
273 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
274 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:503
|
275 |
msgid "Lockout Prevention: To remove read capability, first remove WordPress admin / editing capabilities, or add \"dashboard_lockout_ok\" capability"
|
276 |
msgstr ""
|
277 |
|
278 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
279 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
280 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
281 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
282 |
msgid "check/uncheck all"
|
283 |
msgstr ""
|
284 |
|
285 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
286 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
287 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
288 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
289 |
msgid "negate all (storing as disabled capabilities)"
|
290 |
msgstr ""
|
291 |
|
292 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
293 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
294 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
295 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced
|
296 |
msgid "negate none (add/remove all capabilities normally)"
|
297 |
msgstr ""
|
298 |
|
299 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
300 |
-
|
|
|
|
|
|
|
|
|
301 |
msgid "Additional Capabilities"
|
302 |
msgstr ""
|
303 |
|
304 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
305 |
-
|
306 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
307 |
msgstr ""
|
308 |
|
309 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
310 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:671
|
311 |
msgid "Note: Underscores replace spaces in stored capability name (\"edit users\" => \"edit_users\")."
|
312 |
msgstr ""
|
313 |
|
314 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
315 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:690
|
316 |
msgid "Delete this role"
|
317 |
msgstr ""
|
318 |
|
319 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
320 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:690
|
321 |
#, php-format
|
322 |
msgid ""
|
323 |
"You are about to delete the %s role.\n"
|
|
|
324 |
" 'Cancel' to stop, 'OK' to delete."
|
325 |
msgstr ""
|
326 |
|
327 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
328 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:690
|
329 |
msgid "Delete Role"
|
330 |
msgstr ""
|
331 |
|
332 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
333 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:697
|
334 |
msgid "Select New Role"
|
335 |
msgstr ""
|
336 |
|
337 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
338 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:705
|
339 |
msgid "Change"
|
340 |
msgstr ""
|
341 |
|
342 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
343 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:718
|
344 |
msgid "Create New Role"
|
345 |
msgstr ""
|
346 |
|
347 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
348 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
349 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:721
|
350 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:737
|
351 |
msgid "Role Name"
|
352 |
msgstr ""
|
353 |
|
354 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
355 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
356 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:86
|
357 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:724
|
358 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:740
|
359 |
msgid "Make role available for supplemental assignment to Permission Groups only"
|
360 |
msgstr ""
|
361 |
|
362 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
363 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
364 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:724
|
365 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:740
|
366 |
msgid "hidden"
|
367 |
msgstr ""
|
368 |
|
369 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
370 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:728
|
371 |
msgid "Create"
|
372 |
msgstr ""
|
373 |
|
374 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
375 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:734
|
376 |
msgid "Copy this role to"
|
377 |
msgstr ""
|
378 |
|
379 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
380 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:744
|
381 |
msgid "Copy"
|
382 |
msgstr ""
|
383 |
|
384 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
385 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:750
|
386 |
msgid "Add Capability"
|
387 |
msgstr ""
|
388 |
|
389 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
390 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:753
|
391 |
msgid "Add to role"
|
392 |
msgstr ""
|
393 |
|
394 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
395 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:758
|
396 |
msgid "Backup Tool"
|
397 |
msgstr ""
|
398 |
|
399 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
400 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:760
|
401 |
msgid "Backup / Restore Roles"
|
402 |
msgstr ""
|
403 |
|
404 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
405 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:765
|
406 |
msgid "Related Permissions Plugins"
|
407 |
msgstr ""
|
408 |
|
409 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
410 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
411 |
msgid "PublishPress"
|
412 |
msgstr ""
|
413 |
|
414 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
415 |
-
|
416 |
-
msgid "Press Permit"
|
417 |
msgstr ""
|
418 |
|
419 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
420 |
-
|
421 |
-
msgid "Revisionary"
|
422 |
msgstr ""
|
423 |
|
424 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
425 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:807
|
426 |
msgid "Create this role definition in new (future) sites"
|
427 |
msgstr ""
|
428 |
|
429 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
430 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:807
|
431 |
msgid "include in new sites"
|
432 |
msgstr ""
|
433 |
|
434 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
435 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:810
|
436 |
msgid "Copy / update this role definition to all sites now"
|
437 |
msgstr ""
|
438 |
|
439 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:
|
440 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/admin.php:810
|
441 |
msgid "sync role to all sites now"
|
442 |
msgstr ""
|
443 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/backup-handler.php:9
|
445 |
msgid "You do not have permission to restore roles."
|
446 |
msgstr ""
|
@@ -578,6 +568,10 @@ msgstr ""
|
|
578 |
msgid "Add New"
|
579 |
msgstr ""
|
580 |
|
|
|
|
|
|
|
|
|
581 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:16
|
582 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:29
|
583 |
msgid "New role created."
|
@@ -604,126 +598,145 @@ msgstr ""
|
|
604 |
msgid "Bad form received."
|
605 |
msgstr ""
|
606 |
|
607 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:
|
608 |
msgid "You cannot remove Manage Capabilities from Administrators"
|
609 |
msgstr ""
|
610 |
|
611 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:
|
612 |
#, php-format
|
613 |
msgid "Cannot delete default role. You <a href=\"%s\">have to change it first</a>."
|
614 |
msgstr ""
|
615 |
|
616 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:
|
617 |
#, php-format
|
618 |
msgid "Role has been deleted. %1$d users moved to default role %2$s."
|
619 |
msgstr ""
|
620 |
|
621 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
622 |
msgid "Explicity negate this capability by storing as disabled"
|
623 |
msgstr ""
|
624 |
|
625 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
626 |
msgid "Explicitly negate these capabilities by storing as disabled"
|
627 |
msgstr ""
|
628 |
|
629 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
630 |
msgid "Post type registration does not define this capability distinctly"
|
631 |
msgstr ""
|
632 |
|
633 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
634 |
msgid "This capability is explicitly negated. Click to add/remove normally."
|
635 |
msgstr ""
|
636 |
|
637 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
638 |
msgid "Add or remove this capability from the WordPress role"
|
639 |
msgstr ""
|
640 |
|
641 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
642 |
msgid "Add or remove capability from the role normally"
|
643 |
msgstr ""
|
644 |
|
645 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
646 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
647 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
648 |
msgid "What do you think you're doing?!?"
|
649 |
msgstr ""
|
650 |
|
651 |
-
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:
|
652 |
msgid "Bad form Received"
|
653 |
msgstr ""
|
654 |
|
655 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:44
|
|
|
656 |
#, php-format
|
657 |
msgid "see %1$sRole Usage%2$s: \"Pattern Roles\""
|
658 |
msgstr ""
|
659 |
|
660 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:46
|
|
|
661 |
#, php-format
|
662 |
msgid "activate %1$sAdvanced settings%2$s, see Role Usage"
|
663 |
msgstr ""
|
664 |
|
665 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:51
|
|
|
666 |
#, php-format
|
667 |
msgid "\"Posts\" capabilities selected here also define type-specific role assignment for Permission Groups%s."
|
668 |
msgstr ""
|
669 |
|
670 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:53
|
|
|
671 |
#, php-format
|
672 |
msgid "\"Posts\" capabilities selected here also define type-specific role assignment for Permit Groups%s."
|
673 |
msgstr ""
|
674 |
|
675 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:61
|
|
|
676 |
#, php-format
|
677 |
msgid "Capabilities for custom statuses can be manually added here. (See %sPermissions > Post Statuses%s for applicable names). %sSupplemental status-specific roles%s are usually more convenient, though."
|
678 |
msgstr ""
|
679 |
|
680 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:63
|
|
|
681 |
msgid "Capabilities for custom statuses can be manually added here. Or activate the PP Custom Post Statuses extension to assign status-specific supplemental roles."
|
682 |
msgstr ""
|
683 |
|
684 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:66
|
|
|
685 |
msgid "Capabilities for custom statuses can be manually added to a role here (see Conditions > Status > Capability Mapping for applicable names). However, it is usually more convenient to use Permit Groups to assign a supplemental status-specific role."
|
686 |
msgstr ""
|
687 |
|
688 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:86
|
|
|
689 |
msgid "hidden role"
|
690 |
msgstr ""
|
691 |
|
692 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:97
|
|
|
693 |
msgid "Type-Specific Capabilities"
|
694 |
msgstr ""
|
695 |
|
696 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:100
|
|
|
697 |
msgid "Ensure permissions can be controlled separately from other post types."
|
698 |
msgstr ""
|
699 |
|
700 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:155
|
|
|
701 |
msgid "Make selected post types require a different capability to add new posts."
|
702 |
msgstr ""
|
703 |
|
704 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:155
|
|
|
705 |
msgid "Use create_posts capability"
|
706 |
msgstr ""
|
707 |
|
708 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:160
|
709 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:221
|
710 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:277
|
|
|
|
|
|
|
711 |
msgid "Update"
|
712 |
msgstr ""
|
713 |
|
714 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:170
|
|
|
715 |
msgid "Taxonomy-Specific Capabilities"
|
716 |
msgstr ""
|
717 |
|
718 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:173
|
|
|
719 |
msgid "Ensure permissions can be controlled separately from other taxonomies."
|
720 |
msgstr ""
|
721 |
|
722 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:226
|
|
|
723 |
msgid "Detailed Taxonomy Capabilities"
|
724 |
msgstr ""
|
725 |
|
726 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:229
|
|
|
727 |
msgid "Enforce Edit, Delete and Assign capabilities separately from Management capability."
|
728 |
msgstr ""
|
729 |
|
2 |
msgstr ""
|
3 |
"Project-Id-Version: Capability Manager Enhanced\n"
|
4 |
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2019-10-24 16:55-0500\n"
|
6 |
+
"PO-Revision-Date: 2019-10-24 16:55-0500\n"
|
7 |
"Last-Translator: Kevin Behrens <kevin@publishpress.com>\n"
|
8 |
"Language-Team: PublishPress <help@publishpress.com>\n"
|
9 |
"MIME-Version: 1.0\n"
|
35 |
msgid "%s is required for this plugin."
|
36 |
msgstr ""
|
37 |
|
38 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:143
|
39 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:148
|
40 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:152
|
41 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:155
|
42 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:272
|
43 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:277
|
44 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:281
|
45 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:284
|
46 |
msgid "Capability Manager"
|
47 |
msgstr ""
|
48 |
|
49 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:147
|
50 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:151
|
51 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/capsman-enhanced.php:155
|
52 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:276
|
53 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:280
|
54 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:284
|
55 |
msgid "Capabilities"
|
56 |
msgstr ""
|
57 |
|
60 |
msgstr ""
|
61 |
|
62 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:36
|
|
|
63 |
#, php-format
|
64 |
msgid "Warning: This role cannot access the dashboard without the read capability. %1$sClick here to fix this now%2$s."
|
65 |
msgstr ""
|
66 |
|
67 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:61
|
|
|
68 |
msgid "Roles and Capabilities"
|
69 |
msgstr ""
|
70 |
|
71 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:70
|
|
|
72 |
#, php-format
|
73 |
msgid "Capabilities for %s"
|
74 |
msgstr ""
|
75 |
|
76 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:73
|
77 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1017
|
|
|
|
|
78 |
msgid "Save Changes"
|
79 |
msgstr ""
|
80 |
|
81 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:82
|
82 |
+
msgid "<strong>Note:</strong> Capability changes <strong>remain in the database</strong> after plugin deactivation."
|
|
|
83 |
msgstr ""
|
84 |
|
85 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:84
|
|
|
86 |
#, php-format
|
87 |
msgid "Thanks for using the %1$sPublishPress%2$s family of professional publishing tools."
|
88 |
msgstr ""
|
89 |
|
90 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:110
|
91 |
+
msgid "PressPermit Pro"
|
92 |
+
msgstr ""
|
93 |
+
|
94 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:112
|
95 |
msgid "Automatically define type-specific capabilities for your custom post types and taxonomies"
|
96 |
msgstr ""
|
97 |
|
98 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:116
|
|
|
99 |
msgid "Assign standard WP roles supplementally for a specific post type"
|
100 |
msgstr ""
|
101 |
|
102 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:120
|
|
|
103 |
msgid "Assign custom WP roles supplementally for a specific post type <em>(Pro)</em>"
|
104 |
msgstr ""
|
105 |
|
106 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:124
|
|
|
107 |
msgid "Customize reading permissions per-category or per-post"
|
108 |
msgstr ""
|
109 |
|
110 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:128
|
|
|
111 |
msgid "Customize editing permissions per-category or per-post <em>(Pro)</em>"
|
112 |
msgstr ""
|
113 |
|
114 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:132
|
|
|
115 |
msgid "Custom Post Visibility statuses, fully implemented throughout wp-admin <em>(Pro)</em>"
|
116 |
msgstr ""
|
117 |
|
118 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:136
|
|
|
119 |
msgid "Custom Moderation statuses for access-controlled, multi-step publishing workflow <em>(Pro)</em>"
|
120 |
msgstr ""
|
121 |
|
122 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:140
|
|
|
123 |
msgid "Regulate permissions for Edit Flow post statuses <em>(Pro)</em>"
|
124 |
msgstr ""
|
125 |
|
126 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:144
|
|
|
127 |
msgid "Customize the moderated editing of published content with Revisionary or Post Forking <em>(Pro)</em>"
|
128 |
msgstr ""
|
129 |
|
130 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:148
|
|
|
131 |
msgid "Grant Spectator, Participant or Moderator access to specific bbPress forums <em>(Pro)</em>"
|
132 |
msgstr ""
|
133 |
|
134 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:152
|
|
|
135 |
msgid "Grant supplemental content permissions to a BuddyPress group <em>(Pro)</em>"
|
136 |
msgstr ""
|
137 |
|
138 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:156
|
|
|
139 |
msgid "WPML integration to mirror permissions to translations <em>(Pro)</em>"
|
140 |
msgstr ""
|
141 |
|
142 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:160
|
|
|
143 |
msgid "Member support forum"
|
144 |
msgstr ""
|
145 |
|
146 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:167
|
|
|
147 |
#, php-format
|
148 |
msgid "%1$sgrab%2$s %3$s"
|
149 |
msgstr ""
|
150 |
|
151 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:167
|
|
|
152 |
#, php-format
|
153 |
msgid "%s (free install)"
|
154 |
msgstr ""
|
155 |
|
156 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:169
|
|
|
157 |
#, php-format
|
158 |
msgid "%1$sbuy%2$s %3$s"
|
159 |
msgstr ""
|
160 |
|
161 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:169
|
|
|
162 |
#, php-format
|
163 |
msgid "%s info/purchase"
|
164 |
msgstr ""
|
165 |
|
166 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:245
|
|
|
167 |
msgid " "
|
168 |
msgstr ""
|
169 |
|
170 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:246
|
|
|
171 |
msgid "Reading"
|
172 |
msgstr ""
|
173 |
|
174 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:247
|
|
|
175 |
msgid "Editing Capabilities"
|
176 |
msgstr ""
|
177 |
|
178 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:248
|
|
|
179 |
msgid "Deletion Capabilities"
|
180 |
msgstr ""
|
181 |
|
182 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:252
|
|
|
183 |
msgid "can read posts which are currently published with private visibility"
|
184 |
msgstr ""
|
185 |
|
186 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:253
|
|
|
187 |
msgid "has basic editing capability (but may need other capabilities based on post status and ownership)"
|
188 |
msgstr ""
|
189 |
|
190 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:254
|
|
|
191 |
msgid "can edit posts which were created by other users"
|
192 |
msgstr ""
|
193 |
|
194 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:255
|
|
|
195 |
msgid "can edit posts which are currently published"
|
196 |
msgstr ""
|
197 |
|
198 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:256
|
|
|
199 |
msgid "can edit posts which are currently published with private visibility"
|
200 |
msgstr ""
|
201 |
|
202 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:257
|
|
|
203 |
msgid "can make a post publicly visible"
|
204 |
msgstr ""
|
205 |
|
206 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:258
|
|
|
207 |
msgid "has basic deletion capability (but may need other capabilities based on post status and ownership)"
|
208 |
msgstr ""
|
209 |
|
210 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:259
|
|
|
211 |
msgid "can delete posts which were created by other users"
|
212 |
msgstr ""
|
213 |
|
214 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:260
|
|
|
215 |
msgid "can delete posts which are currently published"
|
216 |
msgstr ""
|
217 |
|
218 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:261
|
|
|
219 |
msgid "can delete posts which are currently published with private visibility"
|
220 |
msgstr ""
|
221 |
|
222 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:393
|
223 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:493
|
224 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:744
|
225 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:837
|
226 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:934
|
|
|
227 |
#, php-format
|
228 |
msgid "%s: assigned by Permission Group"
|
229 |
msgstr ""
|
230 |
|
231 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:408
|
|
|
232 |
#, php-format
|
233 |
msgid "shared capability: %s"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:470
|
|
|
237 |
msgid "Other WordPress Core Capabilities"
|
238 |
msgstr ""
|
239 |
|
240 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:512
|
|
|
241 |
msgid "Lockout Prevention: To remove read capability, first remove WordPress admin / editing capabilities, or add \"dashboard_lockout_ok\" capability"
|
242 |
msgstr ""
|
243 |
|
244 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:555
|
245 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:783
|
246 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:890
|
247 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:977
|
248 |
msgid "check/uncheck all"
|
249 |
msgstr ""
|
250 |
|
251 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:555
|
252 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:783
|
253 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:890
|
254 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:977
|
255 |
msgid "negate all (storing as disabled capabilities)"
|
256 |
msgstr ""
|
257 |
|
258 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:555
|
259 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:783
|
260 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:890
|
261 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:977
|
262 |
msgid "negate none (add/remove all capabilities normally)"
|
263 |
msgstr ""
|
264 |
|
265 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:718
|
266 |
+
#, php-format
|
267 |
+
msgid "%s Capabilities"
|
268 |
+
msgstr ""
|
269 |
+
|
270 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:791
|
271 |
msgid "Additional Capabilities"
|
272 |
msgstr ""
|
273 |
|
274 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:899
|
275 |
+
msgid "Meta capabilities are used in code as placeholders for other capabilities. Assiging to a role has no effect."
|
276 |
+
msgstr ""
|
277 |
+
|
278 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:900
|
279 |
+
msgid "Invalid Capabilities"
|
280 |
+
msgstr ""
|
281 |
+
|
282 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:990
|
283 |
+
msgid "Role level is mostly deprecated. However, it still determines eligibility for Post Author assignment and limits the application of user editing capabilities."
|
284 |
+
msgstr ""
|
285 |
+
|
286 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:991
|
287 |
+
msgid "Role Level:"
|
288 |
msgstr ""
|
289 |
|
290 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1001
|
|
|
291 |
msgid "Note: Underscores replace spaces in stored capability name (\"edit users\" => \"edit_users\")."
|
292 |
msgstr ""
|
293 |
|
294 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1020
|
|
|
295 |
msgid "Delete this role"
|
296 |
msgstr ""
|
297 |
|
298 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1020
|
|
|
299 |
#, php-format
|
300 |
msgid ""
|
301 |
"You are about to delete the %s role.\n"
|
302 |
+
"\n"
|
303 |
" 'Cancel' to stop, 'OK' to delete."
|
304 |
msgstr ""
|
305 |
|
306 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1020
|
|
|
307 |
msgid "Delete Role"
|
308 |
msgstr ""
|
309 |
|
310 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1027
|
|
|
311 |
msgid "Select New Role"
|
312 |
msgstr ""
|
313 |
|
314 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1035
|
|
|
315 |
msgid "Change"
|
316 |
msgstr ""
|
317 |
|
318 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1048
|
|
|
319 |
msgid "Create New Role"
|
320 |
msgstr ""
|
321 |
|
322 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1051
|
323 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1067
|
|
|
|
|
324 |
msgid "Role Name"
|
325 |
msgstr ""
|
326 |
|
327 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1054
|
328 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1070
|
|
|
|
|
|
|
329 |
msgid "Make role available for supplemental assignment to Permission Groups only"
|
330 |
msgstr ""
|
331 |
|
332 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1054
|
333 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1070
|
|
|
|
|
334 |
msgid "hidden"
|
335 |
msgstr ""
|
336 |
|
337 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1058
|
|
|
338 |
msgid "Create"
|
339 |
msgstr ""
|
340 |
|
341 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1064
|
|
|
342 |
msgid "Copy this role to"
|
343 |
msgstr ""
|
344 |
|
345 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1074
|
|
|
346 |
msgid "Copy"
|
347 |
msgstr ""
|
348 |
|
349 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1080
|
|
|
350 |
msgid "Add Capability"
|
351 |
msgstr ""
|
352 |
|
353 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1083
|
|
|
354 |
msgid "Add to role"
|
355 |
msgstr ""
|
356 |
|
357 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1088
|
|
|
358 |
msgid "Backup Tool"
|
359 |
msgstr ""
|
360 |
|
361 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1090
|
|
|
362 |
msgid "Backup / Restore Roles"
|
363 |
msgstr ""
|
364 |
|
365 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1095
|
|
|
366 |
msgid "Related Permissions Plugins"
|
367 |
msgstr ""
|
368 |
|
369 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1098
|
370 |
+
msgid "Multiple Authors"
|
371 |
+
msgstr ""
|
372 |
+
|
373 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1101
|
374 |
+
msgid "PressPermit"
|
375 |
+
msgstr ""
|
376 |
+
|
377 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1107
|
378 |
msgid "PublishPress"
|
379 |
msgstr ""
|
380 |
|
381 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1112
|
382 |
+
msgid "PublishPress Revisions"
|
|
|
383 |
msgstr ""
|
384 |
|
385 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1114
|
386 |
+
msgid "Help / Contact Form"
|
|
|
387 |
msgstr ""
|
388 |
|
389 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1147
|
|
|
390 |
msgid "Create this role definition in new (future) sites"
|
391 |
msgstr ""
|
392 |
|
393 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1147
|
|
|
394 |
msgid "include in new sites"
|
395 |
msgstr ""
|
396 |
|
397 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1150
|
|
|
398 |
msgid "Copy / update this role definition to all sites now"
|
399 |
msgstr ""
|
400 |
|
401 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1150
|
|
|
402 |
msgid "sync role to all sites now"
|
403 |
msgstr ""
|
404 |
|
405 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1169
|
406 |
+
#, php-format
|
407 |
+
msgid "If you like %s, please leave us a %s rating. Thank you!"
|
408 |
+
msgstr ""
|
409 |
+
|
410 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1180
|
411 |
+
msgid "About Capability Manager Enhanced"
|
412 |
+
msgstr ""
|
413 |
+
|
414 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1180
|
415 |
+
msgid "About"
|
416 |
+
msgstr ""
|
417 |
+
|
418 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1182
|
419 |
+
msgid "Capability Manager Enhanced Documentation"
|
420 |
+
msgstr ""
|
421 |
+
|
422 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1182
|
423 |
+
msgid "Documentation"
|
424 |
+
msgstr ""
|
425 |
+
|
426 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1184
|
427 |
+
msgid "Contact the PublishPress team"
|
428 |
+
msgstr ""
|
429 |
+
|
430 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/admin.php:1184
|
431 |
+
msgid "Contact"
|
432 |
+
msgstr ""
|
433 |
+
|
434 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/backup-handler.php:9
|
435 |
msgid "You do not have permission to restore roles."
|
436 |
msgstr ""
|
568 |
msgid "Add New"
|
569 |
msgstr ""
|
570 |
|
571 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/filters.php:179
|
572 |
+
msgid "Edit Roles"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:16
|
576 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:29
|
577 |
msgid "New role created."
|
598 |
msgid "Bad form received."
|
599 |
msgstr ""
|
600 |
|
601 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:210
|
602 |
msgid "You cannot remove Manage Capabilities from Administrators"
|
603 |
msgstr ""
|
604 |
|
605 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:320
|
606 |
#, php-format
|
607 |
msgid "Cannot delete default role. You <a href=\"%s\">have to change it first</a>."
|
608 |
msgstr ""
|
609 |
|
610 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/handler.php:367
|
611 |
#, php-format
|
612 |
msgid "Role has been deleted. %1$d users moved to default role %2$s."
|
613 |
msgstr ""
|
614 |
|
615 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:164
|
616 |
msgid "Explicity negate this capability by storing as disabled"
|
617 |
msgstr ""
|
618 |
|
619 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:165
|
620 |
msgid "Explicitly negate these capabilities by storing as disabled"
|
621 |
msgstr ""
|
622 |
|
623 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:166
|
624 |
msgid "Post type registration does not define this capability distinctly"
|
625 |
msgstr ""
|
626 |
|
627 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:167
|
628 |
msgid "This capability is explicitly negated. Click to add/remove normally."
|
629 |
msgstr ""
|
630 |
|
631 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:168
|
632 |
msgid "Add or remove this capability from the WordPress role"
|
633 |
msgstr ""
|
634 |
|
635 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:169
|
636 |
msgid "Add or remove capability from the role normally"
|
637 |
msgstr ""
|
638 |
|
639 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:379
|
640 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:420
|
641 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:583
|
642 |
msgid "What do you think you're doing?!?"
|
643 |
msgstr ""
|
644 |
|
645 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/manager.php:463
|
646 |
msgid "Bad form Received"
|
647 |
msgstr ""
|
648 |
|
649 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:44
|
650 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:44
|
651 |
#, php-format
|
652 |
msgid "see %1$sRole Usage%2$s: \"Pattern Roles\""
|
653 |
msgstr ""
|
654 |
|
655 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:46
|
656 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:46
|
657 |
#, php-format
|
658 |
msgid "activate %1$sAdvanced settings%2$s, see Role Usage"
|
659 |
msgstr ""
|
660 |
|
661 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:51
|
662 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:51
|
663 |
#, php-format
|
664 |
msgid "\"Posts\" capabilities selected here also define type-specific role assignment for Permission Groups%s."
|
665 |
msgstr ""
|
666 |
|
667 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:53
|
668 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:53
|
669 |
#, php-format
|
670 |
msgid "\"Posts\" capabilities selected here also define type-specific role assignment for Permit Groups%s."
|
671 |
msgstr ""
|
672 |
|
673 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:61
|
674 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:61
|
675 |
#, php-format
|
676 |
msgid "Capabilities for custom statuses can be manually added here. (See %sPermissions > Post Statuses%s for applicable names). %sSupplemental status-specific roles%s are usually more convenient, though."
|
677 |
msgstr ""
|
678 |
|
679 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:63
|
680 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:63
|
681 |
msgid "Capabilities for custom statuses can be manually added here. Or activate the PP Custom Post Statuses extension to assign status-specific supplemental roles."
|
682 |
msgstr ""
|
683 |
|
684 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:66
|
685 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:66
|
686 |
msgid "Capabilities for custom statuses can be manually added to a role here (see Conditions > Status > Capability Mapping for applicable names). However, it is usually more convenient to use Permit Groups to assign a supplemental status-specific role."
|
687 |
msgstr ""
|
688 |
|
689 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:86
|
690 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:86
|
691 |
msgid "hidden role"
|
692 |
msgstr ""
|
693 |
|
694 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:97
|
695 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:97
|
696 |
msgid "Type-Specific Capabilities"
|
697 |
msgstr ""
|
698 |
|
699 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:100
|
700 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:100
|
701 |
msgid "Ensure permissions can be controlled separately from other post types."
|
702 |
msgstr ""
|
703 |
|
704 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:155
|
705 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:155
|
706 |
msgid "Make selected post types require a different capability to add new posts."
|
707 |
msgstr ""
|
708 |
|
709 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:155
|
710 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:155
|
711 |
msgid "Use create_posts capability"
|
712 |
msgstr ""
|
713 |
|
714 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:160
|
715 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:221
|
716 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:277
|
717 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:160
|
718 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:221
|
719 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:277
|
720 |
msgid "Update"
|
721 |
msgstr ""
|
722 |
|
723 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:170
|
724 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:170
|
725 |
msgid "Taxonomy-Specific Capabilities"
|
726 |
msgstr ""
|
727 |
|
728 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:173
|
729 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:173
|
730 |
msgid "Ensure permissions can be controlled separately from other taxonomies."
|
731 |
msgstr ""
|
732 |
|
733 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:226
|
734 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:226
|
735 |
msgid "Detailed Taxonomy Capabilities"
|
736 |
msgstr ""
|
737 |
|
738 |
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced/includes/pp-ui.php:229
|
739 |
+
#: F:\www\wp50\wp-content\plugins\capability-manager-enhanced\includes/pp-ui.php:229
|
740 |
msgid "Enforce Edit, Delete and Assign capabilities separately from Management capability."
|
741 |
msgstr ""
|
742 |
|
readme.txt
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
=== Capability Manager Enhanced===
|
2 |
Contributors: publishpress, kevinB, stevejburge, andergmartins
|
3 |
-
Tags: role, capabilities, post types, taxonomies, editor, network,
|
4 |
Requires at least: 4.1
|
5 |
-
Tested up to: 5.
|
6 |
-
Stable tag: 1.
|
7 |
License: GPLv3
|
8 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
@@ -15,44 +15,38 @@ Control permissions requirements for your post types, and assign those capabilit
|
|
15 |
|
16 |
= Features: =
|
17 |
|
18 |
-
* Create Roles
|
19 |
* Manage Role Capabilities
|
20 |
-
*
|
21 |
-
*
|
22 |
* Some specialized support for WooCommerce Post Types
|
23 |
-
*
|
24 |
-
* Integration with
|
25 |
-
* Copy any
|
26 |
-
*
|
27 |
-
* Backup and restore Roles and Capabilities to revert your last changes.
|
28 |
-
* Revert Roles and Capabilities to WordPress defaults.
|
29 |
|
30 |
Capability Manager Enhanced is professionally developed and supported by the experienced <a href="https://publishpress.com">PublishPress</a> team.
|
31 |
|
32 |
It has been a reliable tool since 2012, when PublishPress team member Kevin Behrens forked it from Jordi Canals' abandoned Capability Manager plugin.
|
33 |
|
34 |
-
For additional versatility and convenience,
|
35 |
-
|
36 |
-
Role management can also be delegated:
|
37 |
-
|
38 |
-
* Only Users with 'manage_capabilities' can manage them. This Capability is created at install time and assigned to Administrators.
|
39 |
-
* Administrator Role cannot be deleted.
|
40 |
-
* Non-administrators can only manager Roles or Users with same or lower capabilities.
|
41 |
|
42 |
== Screenshots ==
|
43 |
|
44 |
-
1.
|
45 |
-
2.
|
46 |
3. Network: copy Role to existing or future Sites
|
47 |
4. Role operations
|
48 |
-
5. Permissions Menu (
|
49 |
6. Shading of Capabilities granted by supplemental Type-Specific Roles
|
50 |
-
7. Enforce Type-Specific Capabilities
|
51 |
-
8.
|
|
|
|
|
52 |
|
53 |
== Frequently Asked Questions ==
|
54 |
|
55 |
-
= How can I grant capabilities for a custom post type =
|
56 |
|
57 |
The custom post type must be defined to impose type-specific capability requirements. This is normally done by setting the "capability type" property equal to the post type name.
|
58 |
|
@@ -60,18 +54,42 @@ The custom post type must be defined to impose type-specific capability requirem
|
|
60 |
|
61 |
You may need to adjust your custom post type definition by enabling the map_meta_cap property. If you are calling register_post_type manually, just add this property to the options array.
|
62 |
|
63 |
-
= Even after I added capabilities, WordPress is not working the way I want =
|
64 |
|
65 |
Keep in mind that this plugin's main purpose is to expose switches (defined capabilities). The wiring of those switches is up to the WordPress core or other plugins. If granting or removing a capability does not cause the expected results, your issue is probably with the other package. With that context in mind, you are still welcome to <a href="https://publishpress.com/contact/">contact us</a> about it.
|
66 |
|
|
|
|
|
|
|
|
|
67 |
= Where can I find more information about this plugin, usage and support ? =
|
68 |
|
69 |
-
* Feel free to <a href="https://publishpress.com/contact/">submit a help ticket</a> if you can't find an answer in the
|
70 |
|
71 |
== Changelog ==
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
= 1.7.5 - 24 May 2019 =
|
74 |
-
* Fixed : Users' inclusion or non-inclusion in Authors dropdown was not updated based on role edit
|
75 |
|
76 |
= 1.7.4 - 1 May 2019 =
|
77 |
* Fixed : On some sites, capabilities added dynamically by other code were forced into stored role definition (and could not be removed).
|
1 |
=== Capability Manager Enhanced===
|
2 |
Contributors: publishpress, kevinB, stevejburge, andergmartins
|
3 |
+
Tags: role, capabilities, post types, taxonomies, editor, network, woocommerce
|
4 |
Requires at least: 4.1
|
5 |
+
Tested up to: 5.3
|
6 |
+
Stable tag: 1.8.1
|
7 |
License: GPLv3
|
8 |
License URI: https://www.gnu.org/licenses/gpl-3.0.html
|
9 |
|
15 |
|
16 |
= Features: =
|
17 |
|
18 |
+
* Create or Copy Roles
|
19 |
* Manage Role Capabilities
|
20 |
+
* Enable type-specific capability requirements and assignments for any Post Type
|
21 |
+
* Enable distinct edit, delete and assign capabilities for any Taxonomy
|
22 |
* Some specialized support for WooCommerce Post Types
|
23 |
+
* Negation: any capability can be granted, not granted, or blocked
|
24 |
+
* Integration with PressPermit and PublishPress for comprehensive publishing solutions
|
25 |
+
* Network: Copy any role to all sites, or auto-copy to future sites
|
26 |
+
* Backup (automatic / manual) and restore roles and capabilities to revert your changes
|
|
|
|
|
27 |
|
28 |
Capability Manager Enhanced is professionally developed and supported by the experienced <a href="https://publishpress.com">PublishPress</a> team.
|
29 |
|
30 |
It has been a reliable tool since 2012, when PublishPress team member Kevin Behrens forked it from Jordi Canals' abandoned Capability Manager plugin.
|
31 |
|
32 |
+
For additional versatility and convenience, try <a href="https://wordpress.org/plugins/press-permit-core">PressPermit</a> plugin integration. Capabilities added indirectly by supplemental type-specific roles (Page Contributor, Product Editor, etc.) will be highlighted in the CME role editor.
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
|
34 |
== Screenshots ==
|
35 |
|
36 |
+
1. View or modify Capabilities for any Role
|
37 |
+
2. Users Menu
|
38 |
3. Network: copy Role to existing or future Sites
|
39 |
4. Role operations
|
40 |
+
5. Permissions Menu (PressPermit integration)
|
41 |
6. Shading of Capabilities granted by supplemental Type-Specific Roles
|
42 |
+
7. Enforce Type-Specific Capabilities
|
43 |
+
8. Enforce Taxonomy-Specific Capabilities
|
44 |
+
9. Detailed Taxonomy Capabilities
|
45 |
+
10. Backup / Restore tool
|
46 |
|
47 |
== Frequently Asked Questions ==
|
48 |
|
49 |
+
= How can I grant capabilities for a custom post type? =
|
50 |
|
51 |
The custom post type must be defined to impose type-specific capability requirements. This is normally done by setting the "capability type" property equal to the post type name.
|
52 |
|
54 |
|
55 |
You may need to adjust your custom post type definition by enabling the map_meta_cap property. If you are calling register_post_type manually, just add this property to the options array.
|
56 |
|
57 |
+
= Even after I added capabilities, WordPress is not working the way I want. =
|
58 |
|
59 |
Keep in mind that this plugin's main purpose is to expose switches (defined capabilities). The wiring of those switches is up to the WordPress core or other plugins. If granting or removing a capability does not cause the expected results, your issue is probably with the other package. With that context in mind, you are still welcome to <a href="https://publishpress.com/contact/">contact us</a> about it.
|
60 |
|
61 |
+
= Can role management be delegated? =
|
62 |
+
|
63 |
+
Yes. Users with the 'manage_capabilities' capability can edit roles. This Capability is created at install time and assigned to Administrators. You can add it to any role, but non-administrators cannot manage roles or users that have a higher role level than their own.
|
64 |
+
|
65 |
= Where can I find more information about this plugin, usage and support ? =
|
66 |
|
67 |
+
* Feel free to <a href="https://publishpress.com/contact/">submit a help ticket</a> if you can't find an answer in the <a href="https://publishpress.com/knowledge-base/how-to-use-capability-manager/">documentation</a>.
|
68 |
|
69 |
== Changelog ==
|
70 |
|
71 |
+
= 1.8.2-beta =
|
72 |
+
* Change : Reinstate support for users who can edit_published_posts but not publish_posts (with correct status filtering)
|
73 |
+
|
74 |
+
= 1.8.1 - 25 Oct 2019 =
|
75 |
+
* Fixed : Automatic publication of blank auto-drafts, WooCommerce posts save with incorrect post status (since 1.8)
|
76 |
+
|
77 |
+
= 1.8 - 24 Oct 2019 =
|
78 |
+
* Feature : WooCommerce, PublishPress, PressPermit capabilities grouped in sections on role editor screen
|
79 |
+
* Feature : Plugin API - plugins can hook into "cme_plugin_capabilities" filter to register their capabilities
|
80 |
+
* Feature : Work around WordPress issue preventing users with edit_published_posts (but not publish_posts) capability from updating published posts (https://core.trac.wordpress.org/ticket/47443)
|
81 |
+
* Feature : Work around WordPress issue allowing users with edit_published_posts (but not publish_posts) to unpublish published posts
|
82 |
+
* Fixed : If a unique edit/delete capability is already defined, don't change the definition
|
83 |
+
* Fixed : Removed add_users from the Core WordPress Capabilities section because it is was replaced by promote_users
|
84 |
+
* Fixed : PHP Notices on Role Capabilities screen for undefined index, under some configurations
|
85 |
+
* Fixed : HTML validation errors on Manage Capabilities screen
|
86 |
+
* Fixed : PHP 5.x : Notice for undefined constant PHP_INT_MIN on wp-admin Posts / Pages listing
|
87 |
+
* Change : Move Role Capabilities menu item to Permissions menu if PressPermit plugin is active (restoring previous behavior with Press Permit Core)
|
88 |
+
* Change : Edit Roles link in CME row of Plugins list
|
89 |
+
* Change : PublishPress icon, footer on Roles and Capabilities screen
|
90 |
+
|
91 |
= 1.7.5 - 24 May 2019 =
|
92 |
+
* Fixed : Users' inclusion or non-inclusion in Authors dropdown was not updated based on role edit
|
93 |
|
94 |
= 1.7.4 - 1 May 2019 =
|
95 |
* Fixed : On some sites, capabilities added dynamically by other code were forced into stored role definition (and could not be removed).
|