Esempio n. 1
0
 /**
  * Give administrators full access to all plugin pages
  */
 public function allow_admins()
 {
     $caps = parent::get_caps();
     // give permission to administrator to change slider settings
     if (current_user_can('manage_options')) {
         global $wp_roles;
         foreach ($caps as $cap) {
             if (!current_user_can($cap)) {
                 $wp_roles->add_cap('administrator', $cap);
             }
         }
     }
 }
Esempio n. 2
0
 /**
  * Save capabilities
  */
 private function save_caps()
 {
     if (isset($_POST['fa_nonce'])) {
         if (check_admin_referer('fapro_save_settings', 'fa_nonce')) {
             if (!current_user_can('manage_options')) {
                 wp_die(__('Sorry, you are not allowed to do this.', 'fapro'), __('Access denied', 'fapro'));
             }
             // get roles
             global $wp_roles;
             $roles = $wp_roles->get_names();
             // get plugin capabilities
             $capabilities = parent::get_caps();
             // remove administrator and subscriber roles
             unset($roles['administrator']);
             // remove capabilities
             foreach ($roles as $role => $name) {
                 $r = get_role($role);
                 foreach ($capabilities as $cap) {
                     $r->remove_cap($cap);
                 }
             }
             unset($roles['subscriber']);
             if (isset($_POST['caps'])) {
                 // allow capabilities for given roles
                 foreach ($roles as $role => $name) {
                     $r = get_role($role);
                     if (isset($_POST['caps'][$role])) {
                         foreach ($capabilities as $cap) {
                             if (isset($_POST['caps'][$role][$cap])) {
                                 $r->add_cap($cap);
                             } else {
                                 $r->remove_cap($cap);
                             }
                         }
                     } else {
                         foreach ($capabilities as $cap) {
                             $r->remove_cap($cap);
                         }
                     }
                 }
             }
             // end if
         }
         // end if check admin referer
     }
     // end if
 }