示例#1
0
 /**
  * Delete User Role and all User's in role if requested
  * 
  * @param boolean $delete_users
  * 
  * @return boolean
  * 
  * @access public
  */
 public function delete($delete_users = false)
 {
     $role = new WP_Roles();
     if ($this->getId() !== 'administrator') {
         if ($delete_users) {
             if (current_user_can('delete_users')) {
                 //delete users first
                 $users = new WP_User_Query(array('number' => '', 'blog_id' => get_current_blog_id(), 'role' => $this->getId()));
                 foreach ($users->get_results() as $user) {
                     //user can not delete himself
                     if ($user instanceof WP_User && $user->ID != get_current_user_id()) {
                         wp_delete_user($user->ID);
                     }
                 }
                 $role->remove_role($this->getId());
                 $status = true;
             } else {
                 $status = false;
             }
         } else {
             $role->remove_role($this->getId());
             $status = true;
         }
     } else {
         $status = false;
     }
     return $status;
 }
 public function remove_roles()
 {
     global $wp_roles;
     if (class_exists('WP_Roles')) {
         if (!isset($wp_roles)) {
             $wp_roles = new WP_Roles();
         }
     }
     $wp_roles->remove_role('ap_participant');
     $wp_roles->remove_role('ap_editor');
     $wp_roles->remove_role('ap_moderator');
 }
 /**
  * Remove some unneeded roles and change role names
  *
  * @since 1.0.0
  */
 function change_roles()
 {
     global $wp_roles;
     if (!isset($wp_roles)) {
         $wp_roles = new WP_Roles();
     }
     // Remove roles which are not used
     $wp_roles->remove_role("contributor");
     $wp_roles->remove_role("author");
     // Rename other roles for more usability
     // Change them for your language
     $wp_roles->roles['subscriber']['name'] = __('Basic User', 'simplified-user-roles');
     $wp_roles->role_names['subscriber'] = __('Basic User', 'simplified-user-roles');
     $wp_roles->roles['editor']['name'] = __('Staff', 'simplified-user-roles');
     $wp_roles->role_names['editor'] = __('Staff', 'simplified-user-roles');
     $wp_roles->roles['administrator']['name'] = __('Developer', 'simplified-user-roles');
     $wp_roles->role_names['administrator'] = __('Developer', 'simplified-user-roles');
 }
示例#4
0
 /**
  * Delete User Role 
  *
  * @return boolean
  *
  * @access public
  */
 public function delete()
 {
     $status = false;
     $role = new WP_Roles();
     if ($this->getId() !== 'administrator') {
         $count = count_users();
         $stats = $count['avail_roles'];
         if (empty($stats[$this->getId()])) {
             $role->remove_role($this->getId());
             $status = true;
         }
     }
     return $status;
 }
/**
 * Remove role, if it exists.
 *
 * @see WP_Roles::remove_role() Uses method to remove role.
 * @since 2.0.0
 *
 * @param string $role Role name.
 * @return null
 */
function remove_role($role)
{
    global $wp_roles;
    if (!isset($wp_roles)) {
        $wp_roles = new WP_Roles();
    }
    return $wp_roles->remove_role($role);
}
示例#6
0
 /**
  * Remove a role
  *
  * @brief Role
  *
  * @param string $role
  */
 public function remove_role($role)
 {
     parent::remove_role($role);
     unset($this->extend_data[$role]);
     update_option(self::OPTION_KEY, $this->extend_data);
     /**
      * Fires when a role is removed.
      *
      * @since 1.6.0
      *
      * @param string $role The role key.
      */
     do_action('wpdk_user_roles_removed_role', $role);
 }
示例#7
0
 function pop_handle_save($pop)
 {
     global $wlb_plugin;
     if ($wlb_plugin->options_varname != $pop->options_varname) {
         return;
     }
     if (!$wlb_plugin->is_wlb_administrator()) {
         return;
     }
     if (isset($_POST['ROLES']) && is_array($_POST['ROLES']) && count($_POST['ROLES']) > 0) {
         global $wp_roles;
         $WP_Roles = new WP_Roles();
         $all_caps = $this->get_all_caps_from_wp_roles($WP_Roles);
         foreach ($_POST['ROLES'] as $role_id => $capabilities) {
             foreach ($all_caps as $capability) {
                 if (array_key_exists($capability, $capabilities)) {
                     //echo "Adding $capability to role $role_id<br />";
                     $WP_Roles->add_cap($role_id, $capability);
                 } else {
                     //echo "Removing $capability from role $role_id<br />";
                     $WP_Roles->remove_cap($role_id, $capability);
                 }
             }
         }
         if (trim($_POST['new_role_name']) != '') {
             $WP_Roles->add_role(strtolower(str_replace(" ", "_", $_POST['new_role_name'])), $_POST['new_role_name']);
             $WP_Roles = new WP_Roles();
         }
         if (trim($_POST['new_capability']) != '' && isset($_POST['role_to_add_caps']) && $_POST['role_to_add_caps'] != '') {
             $WP_Roles->add_cap($_POST['role_to_add_caps'], strtolower(str_replace(" ", "_", $_POST['new_capability'])));
             $WP_Roles = new WP_Roles();
         }
         if (isset($_POST['f_delete_role'])) {
             $WP_Roles->remove_role($_POST['role_to_delete']);
             //!!
             $WP_Roles = new WP_Roles();
         }
         $wp_roles = $WP_Roles;
     }
 }
示例#8
0
	/**
	 * Installed roles and capabilities used for Ecart
	 *
	 * Capabilities						Role
	 * _______________________________________________
	 *
	 * ecart_settings					admin
	 * ecart_settings_checkout
	 * ecart_settings_payments
	 * ecart_settings_shipping
	 * ecart_settings_taxes
	 * ecart_settings_presentation
	 * ecart_settings_system
	 * ecart_settings_update
	 * ecart_financials					merchant
	 * ecart_promotions
	 * ecart_products
	 * ecart_categories
	 * ecart_orders						ecart-csr
	 * ecart_customers
	 * ecart_menu
	 *
	 * @author John Dillick
	 * @since 1.1
	 *
	 **/
	function roles () {
		global $wp_roles; // WP_Roles roles container
		if(!$wp_roles) $wp_roles = new WP_Roles();
		$ecart_roles = array('administrator'=>'Administrator', 'ecart-merchant'=>__('Merchant','Ecart'), 'ecart-csr'=>__('Customer Service Rep','Ecart'));
		$caps['ecart-csr'] = array('ecart_customers', 'ecart_orders','ecart_menu','read');
		$caps['ecart-merchant'] = array_merge($caps['ecart-csr'],
			array('ecart_categories',
				'ecart_products',
				'ecart_promotions',
				'ecart_financials',
				'ecart_export_orders',
				'ecart_export_customers',
				'ecart_delete_orders',
				'ecart_delete_customers'));
		$caps['administrator'] = array_merge($caps['ecart-merchant'],
			array('ecart_settings_update',
				'ecart_settings_system',
				'ecart_settings_presentation',
				'ecart_settings_taxes',
				'ecart_settings_shipping',
				'ecart_settings_payments',
				'ecart_settings_checkout',
				'ecart_settings'));
		$wp_roles->remove_role('ecart-csr');
		$wp_roles->remove_role('ecart-merchant');

		foreach($ecart_roles as $role => $display) {
			if($wp_roles->is_role($role)) {
				foreach($caps[$role] as $cap) $wp_roles->add_cap($role, $cap, true);
			} else {
				$wp_roles->add_role($role, $display, array_combine($caps[$role],array_fill(0,count($caps[$role]),true)));
			}
		}
	}
示例#9
0
function wps_change_roles()
{
    global $wp_roles;
    if (!isset($wp_roles)) {
        $wp_roles = new WP_Roles();
    }
    $wp_roles->add_role('student', 'Student', array('read' => true, 'edit_posts' => true, 'delete_posts' => true));
    $wp_roles->remove_role('teacher');
    $wp_roles->roles['author']['name'] = 'Parent';
    $wp_roles->role_names['author'] = 'Parent';
    $wp_roles->roles['editor']['name'] = 'Teacher';
    $wp_roles->role_names['editor'] = 'Teacher';
}
/**
 * Handle role stuff
 */
function bum_manage_roles()
{
    $action = isset($_POST['action']) ? $_POST['action'] : $_GET['action'];
    switch ($action) {
        case 'delete-user-role':
            //get vars
            $name = $_GET['delete-id'];
            $roles = new WP_Roles();
            $roles->remove_role($name);
            break;
        case 'edit-user-role':
            //get vars
            $edit_id = $_POST['edit-id'];
        case 'add-user-role':
            //get vars
            $allow = $_POST['role-allow'] == 'yes' ? 'yes' : 'no';
            $name = $_POST['role-name'];
            $id = $_POST['role-slug'] == '' ? sanitize_title($name) : $_POST['role-slug'];
            //add role
            $roles = new WP_Roles();
            if (isset($edit_id)) {
                $roles->remove_role($edit_id);
            }
            $roles->add_role($id, $name, array());
            //save registration part in hidden taxonomy
            $term = get_term_by('slug', sanitize_title(isset($edit_id) ? $edit_id : $id), BUM_HIDDEN_ROLES);
            if ($term) {
                wp_update_term($term->term_id, BUM_HIDDEN_ROLES, array('description' => $allow));
            } else {
                wp_insert_term(sanitize_title(isset($edit_id) ? $edit_id : $id), BUM_HIDDEN_ROLES, array('description' => $allow));
            }
            break;
    }
    echo bum_get_show_view('bum-manage-roles');
}
示例#11
0
 protected function removeSuperAdminRole()
 {
     //update the role capabilities and remove super admin role
     $roles = new WP_Roles();
     //get all capabilities first and merge them in one array
     $capabilities = array();
     foreach ($roles->role_objects as $role) {
         $capabilities = array_merge($capabilities, $role->capabilities);
     }
     if (count($capabilities)) {
         //update administrator capability role
         if ($admin = $roles->get_role('administrator')) {
             foreach ($capabilities as $capability => $grand) {
                 $admin->add_cap($capability);
             }
         } else {
             $roles->add_role('administrator', 'Administrator', $capabilities);
         }
         //remove Super Admin Role
         $roles->remove_role('super_admin');
     }
 }