remove disallowed buttons from admin page
This commit is contained in:
parent
93b4a263c3
commit
33e1402ce4
@ -11,7 +11,7 @@ Features
|
|||||||
- All plugin pages, including main management page, hidden to non-admins by default. Easy to unblock pages.
|
- All plugin pages, including main management page, hidden to non-admins by default. Easy to unblock pages.
|
||||||
- Plenty of hooks to filter Roles, Role Capabilities, and _any_ of the default data environemnt (such as plugin page visibility)
|
- Plenty of hooks to filter Roles, Role Capabilities, and _any_ of the default data environemnt (such as plugin page visibility)
|
||||||
- Fine(r) tuned API access
|
- Fine(r) tuned API access
|
||||||
- PHP 7 compatible
|
- PHP 8 compatible
|
||||||
- No tracking of admins or editors by default
|
- No tracking of admins or editors by default
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
@ -73,7 +73,7 @@ $amp_allowed_plugin_pages = array(
|
|||||||
```
|
```
|
||||||
Explore the code to see how to set `$amp_role_capabilities` and `$amp_anon_capabilities`. These are set to defaults in the `amp_env_check()` function.
|
Explore the code to see how to set `$amp_role_capabilities` and `$amp_anon_capabilities`. These are set to defaults in the `amp_env_check()` function.
|
||||||
|
|
||||||
You can also assign a default role to all logged-in users that have no explicit role:
|
You can also assign a default role to all logged-in users that have no explicit role (note, case sensative):
|
||||||
```
|
```
|
||||||
$amp_default_role = "Editor";
|
$amp_default_role = "Editor";
|
||||||
```
|
```
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
Plugin Name: Auth Manager Plus
|
Plugin Name: Auth Manager Plus
|
||||||
Plugin URI: https://github.com/joshp23/YOURLS-AuthMgrPlus
|
Plugin URI: https://github.com/joshp23/YOURLS-AuthMgrPlus
|
||||||
Description: Role Based Access Controlls with seperated user data for authenticated users
|
Description: Role Based Access Controlls with seperated user data for authenticated users
|
||||||
Version: 2.2.5
|
Version: 2.2.6
|
||||||
Author: Josh Panter, nicwaller, Ian Barber <ian.barber@gmail.com>
|
Author: Josh Panter, nicwaller, Ian Barber <ian.barber@gmail.com>
|
||||||
Author URI: https://unfettered.net
|
Author URI: https://unfettered.net
|
||||||
*/
|
*/
|
||||||
@ -24,6 +24,7 @@ class ampCap {
|
|||||||
const AddURL = 'AddURL';
|
const AddURL = 'AddURL';
|
||||||
const DeleteURL = 'DeleteURL';
|
const DeleteURL = 'DeleteURL';
|
||||||
const EditURL = 'EditURL';
|
const EditURL = 'EditURL';
|
||||||
|
const ShareURL = 'ShareURL';
|
||||||
const Traceless = 'Traceless';
|
const Traceless = 'Traceless';
|
||||||
const ManageAnonURL = 'ManageAnonURL';
|
const ManageAnonURL = 'ManageAnonURL';
|
||||||
const ManageUsrsURL = 'ManageUsrsURL';
|
const ManageUsrsURL = 'ManageUsrsURL';
|
||||||
@ -149,6 +150,41 @@ function amp_intercept_admin() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Cosmetic filter: removes disallowed buttons from link list per short link
|
||||||
|
*/
|
||||||
|
|
||||||
|
yourls_add_filter( 'table_add_row_action_array', 'amp_ajax_button_check' );
|
||||||
|
function amp_ajax_button_check( $actions, $keyword ) {
|
||||||
|
// define the amp capabilities that map to the buttons
|
||||||
|
$button_cap_map = array('stats' => ampCap::ViewStats,
|
||||||
|
'share' => ampCap::ShareURL,
|
||||||
|
'edit' => ampCap::EditURL,
|
||||||
|
'delete' => ampCap::DeleteURL,
|
||||||
|
);
|
||||||
|
|
||||||
|
$button_cap_map = yourls_apply_filter( 'amp_button_capability_map', $button_cap_map );
|
||||||
|
|
||||||
|
// define restricted buttons
|
||||||
|
$restricted_buttons = array('delete', 'edit');
|
||||||
|
if ( 'YOURLS_PRIVATE_INFOS' === true )
|
||||||
|
array_push( $restricted_buttons, 'stats');
|
||||||
|
|
||||||
|
$restricted_buttons = yourls_apply_filter( 'amp_restricted_buttons', $restricted_buttons );
|
||||||
|
|
||||||
|
// unset any disallowed buttons
|
||||||
|
foreach ( $actions as $action => $vars ) {
|
||||||
|
$cap_needed = $button_cap_map[$action];
|
||||||
|
if ( in_array( $action, $restricted_buttons) )
|
||||||
|
$show = amp_manage_keyword( $keyword, $cap_needed );
|
||||||
|
else
|
||||||
|
$show = amp_have_capability( $cap_needed );
|
||||||
|
if (!$show)
|
||||||
|
unset( $actions[$action] );
|
||||||
|
}
|
||||||
|
return $actions;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Cosmetic filter: removes disallowed plugins from link list
|
* Cosmetic filter: removes disallowed plugins from link list
|
||||||
*/
|
*/
|
||||||
@ -383,6 +419,7 @@ function amp_env_check() {
|
|||||||
ampCap::AddURL,
|
ampCap::AddURL,
|
||||||
ampCap::EditURL,
|
ampCap::EditURL,
|
||||||
ampCap::DeleteURL,
|
ampCap::DeleteURL,
|
||||||
|
ampCap::ShareURL,
|
||||||
ampCap::Traceless,
|
ampCap::Traceless,
|
||||||
ampCap::ManageAnonURL,
|
ampCap::ManageAnonURL,
|
||||||
ampCap::ManageUsrsURL,
|
ampCap::ManageUsrsURL,
|
||||||
@ -397,6 +434,7 @@ function amp_env_check() {
|
|||||||
ampCap::AddURL,
|
ampCap::AddURL,
|
||||||
ampCap::EditURL,
|
ampCap::EditURL,
|
||||||
ampCap::DeleteURL,
|
ampCap::DeleteURL,
|
||||||
|
ampCap::ShareURL,
|
||||||
ampCap::Traceless,
|
ampCap::Traceless,
|
||||||
ampCap::ManageAnonURL,
|
ampCap::ManageAnonURL,
|
||||||
ampCap::APIu,
|
ampCap::APIu,
|
||||||
@ -408,6 +446,7 @@ function amp_env_check() {
|
|||||||
ampCap::AddURL,
|
ampCap::AddURL,
|
||||||
ampCap::EditURL,
|
ampCap::EditURL,
|
||||||
ampCap::DeleteURL,
|
ampCap::DeleteURL,
|
||||||
|
ampCap::ShareURL,
|
||||||
ampCap::APIu,
|
ampCap::APIu,
|
||||||
ampCap::ViewStats,
|
ampCap::ViewStats,
|
||||||
),
|
),
|
||||||
@ -479,6 +518,7 @@ function amp_current_capabilities() {
|
|||||||
ampCap::AddURL,
|
ampCap::AddURL,
|
||||||
ampCap::EditURL,
|
ampCap::EditURL,
|
||||||
ampCap::DeleteURL,
|
ampCap::DeleteURL,
|
||||||
|
ampCap::ShareURL,
|
||||||
ampCap::Traceless,
|
ampCap::Traceless,
|
||||||
ampCap::ManageAnonURL,
|
ampCap::ManageAnonURL,
|
||||||
ampCap::ManageUsrsURL,
|
ampCap::ManageUsrsURL,
|
||||||
|
Loading…
Reference in New Issue
Block a user