Skip to content

Commit c364c6a

Browse files
committed
Only link read-only network snippets if the current user can edit them
1 parent 2719466 commit c364c6a

File tree

1 file changed

+26
-20
lines changed

1 file changed

+26
-20
lines changed

php/class-list-table.php

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ private function get_snippet_action_links( Snippet $snippet ) {
116116
if ( $snippet->active ) {
117117
$actions['deactivate'] = sprintf(
118118
$link_format,
119-
$snippet->network ? __( 'Network Deactivate', 'code-snippets' ) : __( 'Deactivate', 'code-snippets' ),
119+
$snippet->network ? esc_html__( 'Network Deactivate', 'code-snippets' ) : esc_html__( 'Deactivate', 'code-snippets' ),
120120
esc_url( add_query_arg( array(
121121
'action' => 'deactivate',
122122
'id' => $snippet->id,
@@ -125,7 +125,7 @@ private function get_snippet_action_links( Snippet $snippet ) {
125125
} else {
126126
$actions['activate'] = sprintf(
127127
$link_format,
128-
$snippet->network ? __( 'Network Activate', 'code-snippets' ) : __( 'Activate', 'code-snippets' ),
128+
$snippet->network ? esc_html__( 'Network Activate', 'code-snippets' ) : esc_html__( 'Activate', 'code-snippets' ),
129129
esc_url( add_query_arg( array(
130130
'action' => 'activate',
131131
'id' => $snippet->id,
@@ -135,13 +135,13 @@ private function get_snippet_action_links( Snippet $snippet ) {
135135

136136
$actions['edit'] = sprintf(
137137
$link_format,
138-
__( 'Edit', 'code-snippets' ),
138+
esc_html__( 'Edit', 'code-snippets' ),
139139
code_snippets()->get_snippet_edit_url( $snippet->id )
140140
);
141141

142142
$actions['export'] = sprintf(
143143
$link_format,
144-
__( 'Export', 'code-snippets' ),
144+
esc_html__( 'Export', 'code-snippets' ),
145145
esc_url( add_query_arg( array(
146146
'action' => 'export',
147147
'id' => $snippet->id,
@@ -150,24 +150,24 @@ private function get_snippet_action_links( Snippet $snippet ) {
150150

151151
$actions['delete'] = sprintf(
152152
'<a href="%2$s" class="delete" onclick="%3$s">%1$s</a>',
153-
__( 'Delete', 'code-snippets' ),
153+
esc_html__( 'Delete', 'code-snippets' ),
154154
esc_url( add_query_arg( array(
155155
'action' => 'delete',
156156
'id' => $snippet->id,
157157
) ) ),
158158
esc_js( sprintf(
159159
'return confirm("%s");',
160-
__( 'You are about to permanently delete the selected item.', 'code-snippets' ) . "\n" .
161-
__( "'Cancel' to stop, 'OK' to delete.", 'code-snippets' )
160+
esc_html__( 'You are about to permanently delete the selected item.', 'code-snippets' ) . "\n" .
161+
esc_html__( "'Cancel' to stop, 'OK' to delete.", 'code-snippets' )
162162
) )
163163
);
164164

165165
} else {
166166

167167
if ( $snippet->active ) {
168-
$actions['network_active'] = __( 'Network Active', 'code-snippets' );
168+
$actions['network_active'] = esc_html__( 'Network Active', 'code-snippets' );
169169
} else {
170-
$actions['network_only'] = __( 'Network Only', 'code-snippets' );
170+
$actions['network_only'] = esc_html__( 'Network Only', 'code-snippets' );
171171
}
172172
}
173173

@@ -188,7 +188,7 @@ private function get_shared_network_snippet_action_links( Snippet $snippet ) {
188188
if ( ! $this->is_network ) {
189189

190190
$action = $snippet->active ? 'deactivate' : 'activate';
191-
$label = $snippet->active ? __( 'Deactivate', 'code-snippets' ) : __( 'Activate', 'code-snippets' );
191+
$label = $snippet->active ? esc_html__( 'Deactivate', 'code-snippets' ) : esc_html__( 'Activate', 'code-snippets' );
192192
$activate_url = add_query_arg( array(
193193
'action' => $action . '-shared',
194194
'id' => $snippet->id,
@@ -204,13 +204,13 @@ private function get_shared_network_snippet_action_links( Snippet $snippet ) {
204204

205205
$actions['edit'] = sprintf(
206206
$link_format,
207-
__( 'Edit', 'code-snippets' ),
207+
esc_html__( 'Edit', 'code-snippets' ),
208208
code_snippets()->get_snippet_edit_url( $snippet->id, 'network' )
209209
);
210210

211211
$actions['export'] = sprintf(
212212
$link_format,
213-
__( 'Export', 'code-snippets' ),
213+
esc_html__( 'Export', 'code-snippets' ),
214214
add_query_arg(
215215
array(
216216
'action' => 'export',
@@ -222,7 +222,7 @@ private function get_shared_network_snippet_action_links( Snippet $snippet ) {
222222

223223
$actions['delete'] = sprintf(
224224
'<a href="%2$s" class="delete" onclick="%3$s">%1$s</a>',
225-
__( 'Delete', 'code-snippets' ),
225+
esc_html__( 'Delete', 'code-snippets' ),
226226
add_query_arg(
227227
array(
228228
'action' => 'delete',
@@ -232,8 +232,8 @@ private function get_shared_network_snippet_action_links( Snippet $snippet ) {
232232
),
233233
esc_js( sprintf(
234234
'return confirm("%s");',
235-
__( 'You are about to permanently delete the selected item.', 'code-snippets' ) . "\n" .
236-
__( "'Cancel' to stop, 'OK' to delete.", 'code-snippets' )
235+
esc_html__( 'You are about to permanently delete the selected item.', 'code-snippets' ) . "\n" .
236+
esc_html__( "'Cancel' to stop, 'OK' to delete.", 'code-snippets' )
237237
) )
238238
);
239239

@@ -258,11 +258,17 @@ protected function column_name( $snippet ) {
258258
apply_filters( 'code_snippets/list_table/row_actions_always_visible', true )
259259
);
260260

261-
$out = sprintf(
262-
'<a href="%s"><strong>%s</strong></a>',
263-
code_snippets()->get_snippet_edit_url( $snippet->id, $snippet->network ? 'network' : 'admin' ),
264-
$title
265-
);
261+
$out = sprintf('<strong>%s</strong>', esc_html( $title ) );
262+
263+
/* Add a link to the snippet if it isn't an unreadable network-only snippet */
264+
if ( $this->is_network || ! $snippet->network || current_user_can( code_snippets()->get_network_cap_name() ) ) {
265+
266+
$out = sprintf(
267+
'<a href="%s"><strong>%s</strong></a>',
268+
code_snippets()->get_snippet_edit_url( $snippet->id, $snippet->network ? 'network' : 'admin' ),
269+
$title
270+
);
271+
}
266272

267273
if ( $snippet->shared_network && ! current_user_can( apply_filters( 'code_snippets_network_cap', 'manage_network_snippets' ) ) ) {
268274
$out = sprintf( '<a><strong>%s</strong></a>', $title );

0 commit comments

Comments
 (0)