Skip to content

Commit 5e6b65b

Browse files
authored
Merge pull request #4 from Morlin1129/main
add custom roles
2 parents 25888da + 0c0e751 commit 5e6b65b

File tree

1 file changed

+13
-11
lines changed

1 file changed

+13
-11
lines changed

vercel-webhook-deploy.php

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ public function __construct() {
4444
// Stop crons on uninstall
4545
register_deactivation_hook(__FILE__, array( $this, 'deactivate_scheduled_cron'));
4646

47+
add_action( 'wp_loaded', array($this, 'create_plugin_capabilities'));
4748
// Hook into the admin menu
4849
add_action( 'admin_menu', array( $this, 'create_plugin_settings_page' ) );
4950

@@ -245,20 +246,22 @@ function vercelDeploy() {
245246
});
246247
</script> <?php
247248
}
249+
public function create_plugin_capabilities() {
250+
$role = get_role('administrator');
251+
$role->add_cap( 'vercel_deploy_capability', true );
252+
$role->add_cap( 'vercel_adjust_settings_capability', true );
253+
}
248254

249255
/**
250256
* Plugin Menu Items Setup
251257
*
252258
* @since 1.0.0
253259
**/
254260
public function create_plugin_settings_page() {
255-
$run_deploys = apply_filters( 'vercel_deploy_capability', 'manage_options' );
256-
$adjust_settings = apply_filters( 'vercel_adjust_settings_capability', 'manage_options' );
257-
258-
if ( current_user_can( $run_deploys ) ) {
261+
if ( current_user_can('vercel_deploy_capability') ) {
259262
$page_title = __('Deploy to vercel', 'vercel-deploy-hooks');
260263
$menu_title = __('Deploy', 'vercel-deploy-hooks');
261-
$capability = $run_deploys;
264+
$capability = 'vercel_deploy_capability';
262265
$slug = 'deploy_webhook_fields';
263266
$callback = array( $this, 'plugin_settings_page_content' );
264267
$icon = 'dashicons-admin-plugins';
@@ -267,20 +270,20 @@ public function create_plugin_settings_page() {
267270
add_menu_page( $page_title, $menu_title, $capability, $slug, $callback, $icon, $position );
268271
}
269272

270-
if ( current_user_can( $adjust_settings ) ) {
273+
if ( current_user_can( 'vercel_adjust_settings_capability' ) ) {
271274
$sub_page_title = __('Schedule Builds', 'vercel-deploy-hooks');
272275
$sub_menu_title = __('Schedule Builds', 'vercel-deploy-hooks');
273-
$sub_capability = $adjust_settings;
276+
$sub_capability = 'vercel_adjust_settings_capability';
274277
$sub_slug = 'schedule_webhook_fields';
275278
$sub_callback = array( $this, 'plugin_settings_schedule_content' );
276279

277280
add_submenu_page( $slug, $sub_page_title, $sub_menu_title, $sub_capability, $sub_slug, $sub_callback );
278281
}
279282

280-
if ( current_user_can( $adjust_settings ) ) {
283+
if ( current_user_can( 'vercel_adjust_settings_capability' ) ) {
281284
$sub_page_title = __('Settings', 'vercel-deploy-hooks');
282285
$sub_menu_title = __('Settings', 'vercel-deploy-hooks');
283-
$sub_capability = $adjust_settings;
286+
$sub_capability = 'vercel_adjust_settings_capability';
284287
$sub_slug = 'developer_webhook_fields';
285288
$sub_callback = array( $this, 'plugin_settings_developer_content' );
286289

@@ -487,8 +490,7 @@ public function field_callback( $arguments ) {
487490
* @since 1.0.0
488491
**/
489492
public function add_to_admin_bar( $admin_bar ) {
490-
$run_deploys = apply_filters( 'vercel_deploy_capability', 'manage_options' );
491-
if ( current_user_can( $run_deploys ) ) {
493+
if ( current_user_can( 'vercel_deploy_capability' ) ) {
492494
$webhook_address = get_option( 'webhook_address' );
493495
if ( $webhook_address ) {
494496
$button = array(

0 commit comments

Comments
 (0)