public function list_roles() { if (!$this->can_list()) { $this->main->permission_denied(); } $mode = $this->get_mode(); switch ($mode[0]) { case 'EDIT': $obj = new WPFront_User_Role_Editor_Add_Edit($this->main); $obj->add_edit_role($mode[1]); return; case 'DELETE': $obj = new WPFront_User_Role_Editor_Delete($this->main); $obj->delete_role($mode[1]); return; case 'DEFAULT_ROLE': $this->set_default_role($mode[1]); printf('<script type="text/javascript">window.location.replace("%s");</script>', $this->list_url()); return; } $obj = new WPFront_User_Role_Editor_Delete($this->main); if ($obj->is_pending_action()) { return; } include $this->main->pluginDIR() . 'templates/list-roles.php'; }
public function import_roles() { if (!$this->can_import()) { $this->main->permission_denied(); return; } if (!extension_loaded('simplexml')) { echo '<div class="error"><p>' . $this->__('This functionality requires SimpleXML extension, which is not loaded.') . '</p></div>'; return; } if (!empty($_POST['submit'])) { check_admin_referer('import-upload'); set_time_limit(0); if ($this->handle_upload()) { $this->roles_data = array(); global $wp_roles; foreach ($this->import_data->roles as $role) { $this->roles_data[$role->name] = (object) array('display_name' => $role->display_name, 'override' => FALSE); if (get_role($role->name) !== NULL) { $this->roles_data[$role->name]->override = TRUE; } } } } if (!empty($_POST['importroles'])) { $this->main->verify_nonce(); set_time_limit(0); if (!empty($_POST['file-id'])) { $this->file_id = $_POST['file-id']; $this->parse_contents(get_attached_file($this->file_id)); if (is_wp_error($this->import_data)) { $this->result = (object) array('success' => FALSE, 'message' => $this->import_data->get_error_message()); $this->import_data = NULL; } else { $this->roles_data = array(); if (!empty($_POST['import-roles'])) { $this->roles_data = $_POST['import-roles']; if (!is_array($this->roles_data)) { $this->roles_data = array(); } } foreach ($this->import_data->roles as $role) { if (array_key_exists($role->name, $this->roles_data)) { if (get_role($role->name) === NULL) { add_role($role->name, $role->display_name, $role->capabilities); } else { WPFront_User_Role_Editor_Add_Edit::update_role($role->name, $role->display_name, $role->capabilities); } } } $this->result = (object) array('success' => TRUE, 'message' => sprintf($this->__('%d role(s) imported.'), count($this->roles_data))); $this->import_data = NULL; } wp_delete_attachment($this->file_id); } } include $this->main->pluginDIR() . 'templates/personal-pro/import-roles.php'; }