/** * Adds plugin-specific caps to all roles so that 3rd party plugins can manage them */ function add_caps() { $version = get_option('post_forking_cap_version'); // Bail Early if we have already set the caps and aren't updating them if ($version !== false && $this->cap_version <= (int) $version) { return; } add_option('post_forking_cap_version', $this->cap_version, '', 'yes'); global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach ($wp_roles->role_names as $role => $label) { //if the role is a standard role, map the default caps, otherwise, map as a subscriber $caps = array_key_exists($role, $this->defaults) ? $this->defaults[$role] : $this->defaults['subscriber']; //loop and assign foreach ($caps as $cap => $grant) { //check to see if the user already has this capability, if so, don't re-add as that would override grant if (!isset($wp_roles->roles[$role]['capabilities'][$cap])) { $wp_roles->add_cap($role, $cap, $grant); } else { $wp_roles->remove_cap($role, $cap); $wp_roles->add_cap($role, $cap, $grant); } } } }
/** * Init dokan user roles * * @since Dokan 1.0 * @global WP_Roles $wp_roles */ function user_roles() { global $wp_roles; if (class_exists('WP_Roles') && !isset($wp_roles)) { $wp_roles = new WP_Roles(); } add_role('seller', __('Seller', 'dokan'), array('read' => true, 'publish_posts' => true, 'edit_posts' => true, 'delete_published_posts' => true, 'edit_published_posts' => true, 'delete_posts' => true, 'manage_categories' => true, 'moderate_comments' => true, 'unfiltered_html' => true, 'upload_files' => true, 'dokandar' => true)); $wp_roles->add_cap('shop_manager', 'dokandar'); $wp_roles->add_cap('administrator', 'dokandar'); }
public function action_plugins_loaded() { global $wpdb; $db_version = get_option('un_version'); if ($db_version == UN_VERSION) { return; } if (!$db_version) { add_option('un_version', UN_VERSION); $wpdb->query("UPDATE {$wpdb->postmeta} \n\t\t\t\tINNER JOIN {$wpdb->posts} ON {$wpdb->posts}.ID = {$wpdb->postmeta}.post_id\n\t\t\t\tSET meta_key = '_email' \n\t\t\t\tWHERE meta_key = 'email' AND post_type = 'feedback'\n\t\t\t\t"); } if (version_compare($db_version, '0.4') == -1) { $wpdb->query($wpdb->prepare("UPDATE {$wpdb->posts} SET post_type = %s WHERE post_type = %s", FEEDBACK, 'feedback')); global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach (un_get_capable_roles() as $role) { foreach (un_get_feedback_capabilities() as $cap) { $wp_roles->add_cap($role, $cap); } } } if (version_compare($db_version, '0.6') == -1) { $options = array(UN_USE_FONT, UN_FEEDBACK_BUTTON_TEXT, UN_FEEDBACK_BUTTON_COLOR, UN_FEEDBACK_BUTTON_TEXT_COLOR, UN_FEEDBACK_BUTTON_POSITION, UN_FEEDBACK_FORM_TITLE, UN_FEEDBACK_FORM_TEXT, UN_FEEDBACK_FORM_SHOW_SUMMARY, UN_FEEDBACK_FORM_SHOW_TYPE, UN_FEEDBACK_FORM_SHOW_EMAIL, UN_SUBMIT_FEEDBACK_BUTTON_TEXT, UN_THANKYOU_TITLE, UN_THANKYOU_TEXT, UN_ADMIN_NOTIFY_ON_FEEDBACK, UN_SUBMIT_FEEDBACK_BUTTON_TEXT, UN_SHOW_POWERED_BY, UN_FEEDBACK_BUTTON_SHOW_BORDER, UN_DISABLE_ON_MOBILES, UN_ENABLED, UN_LOAD_IN_FOOTER); foreach ($options as $option) { $value = get_option('un_' . $option); if ($value) { un_set_option($option, $value); } delete_option('un_' . $option); } } update_option('un_version', UN_VERSION); }
function un_do_db_upgrade() { global $un_default_options, $wp_roles, $wpdb; $icons = array('idea' => 'icon-lightbulb', 'question' => 'icon-question-sign', 'problem' => 'icon-exclamation-sign', 'praise' => 'icon-heart'); $plural = array('idea' => __('Ideas', 'usernoise'), 'question' => __('Questions', 'usernoise'), 'problem' => __('Problems', 'usernoise'), 'praise' => __('Praises', 'usernoise')); $index = 0; $wpdb->un_termmeta = $wpdb->prefix . "un_termmeta"; if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->un_termmeta}'") != $wpdb->un_termmeta) { require_once ABSPATH . 'wp-admin/includes/upgrade.php'; $sql = "CREATE TABLE `{$wpdb->un_termmeta}` (\n\t\t\t`meta_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,\n\t\t\t`un_term_id` bigint(20) unsigned NOT NULL DEFAULT '0',\n\t\t\t`meta_key` varchar(255) DEFAULT NULL,\n\t\t\t`meta_value` longtext,\n\t\t\tPRIMARY KEY (`meta_id`),\n\t\t\tKEY `un_term_id` (`un_term_id`),\n\t\t\tKEY `meta_key` (`meta_key`)\n\t\t);"; dbDelta($sql); } foreach (array('idea' => __('Idea', 'usernoise'), 'question' => __('Question', 'usernoise'), 'problem' => __('Problem', 'usernoise'), 'praise' => __('Praise', 'usernoise')) as $type => $value) { if (null == ($term = get_term_by('slug', $type, 'feedback_type', ARRAY_A))) { $term = wp_insert_term($value, FEEDBACK_TYPE, array('slug' => $type)); } if (null == un_get_term_meta($term['term_id'], 'icon')) { un_add_term_meta($term['term_id'], 'icon', $icons[$type], true); un_add_term_meta($term['term_id'], 'plural', $plural[$type], true); un_add_term_meta($term['term_id'], 'position', $index, true); } $index++; } if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach (un_get_capable_roles() as $role) { foreach (un_get_feedback_capabilities() as $cap) { $wp_roles->add_cap($role, $cap); } } update_option('un_db_revision', '2'); }
function add_cap($cap, $grant = true) { global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $this->capabilities[$cap] = $grant; $wp_roles->add_cap($this->name, $cap, $grant); }
function wlb_install() { $WP_Roles = new WP_Roles(); foreach (array('wlb_branding', 'wlb_navigation', 'wlb_login', 'wlb_color_scheme', 'wlb_options', 'wlb_role_manager', 'wlb_license', 'wlb_downloads', 'wlb_dashboard_tool') as $cap) { $WP_Roles->add_cap(WLB_ADMIN_ROLE, $cap); } include WLB_PATH . 'includes/install.php'; if (function_exists('handle_wlb_install')) { handle_wlb_install('MWLB', WLB_PATH, WLB_PATH . 'options-panel/'); } }
/** * * @return type */ public function addCapability() { $roles = new WP_Roles(); $capability = trim(aam_Core_Request::post('capability')); if ($capability) { $normalized = str_replace(' ', '_', strtolower($capability)); //add the capability to administrator's role as default behavior $roles->add_cap('administrator', $normalized); $response = array('status' => 'success', 'capability' => $normalized); } else { $response = array('status' => 'failure'); } return json_encode($response); }
public static function add_roles() { // moderator and admin role $parti_cap = array('ap_read_question' => true, 'ap_read_answer' => true, 'ap_new_question' => true, 'ap_new_answer' => true, 'ap_new_comment' => true, 'ap_edit_question' => true, 'ap_edit_answer' => true, 'ap_edit_comment' => true, 'ap_hide_question' => true, 'ap_hide_answer' => true, 'ap_delete_comment' => true, 'ap_vote_up' => true, 'ap_vote_down' => true, 'ap_vote_flag' => true, 'ap_vote_close' => true, 'ap_upload_cover' => true, 'ap_message' => true, 'ap_new_tag' => true); $editor_cap = array('ap_read_question' => true, 'ap_read_answer' => true, 'ap_new_question' => true, 'ap_new_answer' => true, 'ap_new_comment' => true, 'ap_edit_question' => true, 'ap_edit_answer' => true, 'ap_edit_comment' => true, 'ap_delete_question' => true, 'ap_delete_answer' => true, 'ap_delete_comment' => true, 'ap_vote_up' => true, 'ap_vote_down' => true, 'ap_vote_flag' => true, 'ap_vote_close' => true, 'ap_edit_others_question' => true, 'ap_edit_others_answer' => true, 'ap_edit_others_comment' => true, 'ap_upload_cover' => true, 'ap_message' => true, 'ap_new_tag' => true); $mod_cap = array('ap_read_question' => true, 'ap_read_answer' => true, 'ap_new_question' => true, 'ap_new_answer' => true, 'ap_new_comment' => true, 'ap_edit_question' => true, 'ap_edit_answer' => true, 'ap_edit_comment' => true, 'ap_delete_question' => true, 'ap_delete_answer' => true, 'ap_delete_comment' => true, 'ap_vote_up' => true, 'ap_vote_down' => true, 'ap_vote_flag' => true, 'ap_vote_close' => true, 'ap_edit_others_question' => true, 'ap_edit_others_answer' => true, 'ap_edit_others_comment' => true, 'ap_hide_others_question' => true, 'ap_hide_others_answer' => true, 'ap_hide_others_comment' => true, 'ap_delete_others_question' => true, 'ap_delete_others_answer' => true, 'ap_delete_others_comment' => true, 'ap_change_label' => true, 'ap_upload_cover' => true, 'ap_message' => true, 'ap_new_tag' => true); add_role('ap_participant', __('Participant', 'ap'), $parti_cap); add_role('ap_editor', __('Editor', 'ap'), $editor_cap); add_role('ap_moderator', __('Moderator', 'ap'), $mod_cap); // add capability to existing roles $roles = array('administrator', 'subscriber', 'ap_participant', 'ap_editor', 'ap_moderator'); $roles_obj = new WP_Roles(); foreach ($roles as $role_name) { if ($role_name == 'administrator') { foreach ($mod_cap as $k => $grant) { $roles_obj->add_cap($role_name, $k); } } elseif ($role_name == 'ap_participant') { foreach ($parti_cap as $k => $grant) { $roles_obj->add_cap($role_name, $k); } } elseif ($role_name == 'ap_editor') { foreach ($editor_cap as $k => $grant) { $roles_obj->add_cap($role_name, $k); } } elseif ($role_name == 'ap_moderator') { foreach ($mod_cap as $k => $grant) { $roles_obj->add_cap($role_name, $k); } } else { foreach ($parti_cap as $k => $grant) { $roles_obj->add_cap($role_name, $k); } } } }
/** * * * @version $Id$ * @copyright 2003 **/ function handle_rhc_install() { //----for taxonomy metadata support global $wpdb; $charset_collate = ''; if (!empty($wpdb->charset)) { $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}"; } if (!empty($wpdb->collate)) { $charset_collate .= " COLLATE {$wpdb->collate}"; } $tables = $wpdb->get_results("show tables like '{$wpdb->prefix}taxonomymeta'"); if (!count($tables)) { $wpdb->query("CREATE TABLE {$wpdb->prefix}taxonomymeta (\r\n\t meta_id bigint(20) unsigned NOT NULL auto_increment,\r\n\t taxonomy_id bigint(20) unsigned NOT NULL default '0',\r\n\t meta_key varchar(255) default NULL,\r\n\t meta_value longtext,\r\n\t PRIMARY KEY (meta_id),\r\n\t KEY taxonomy_id (taxonomy_id),\r\n\t KEY meta_key (meta_key)\r\n\t ) {$charset_collate};"); } $tables = $wpdb->get_results("show tables like '{$wpdb->prefix}rhc_cache'"); if (!count($tables)) { $wpdb->query("CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}rhc_cache` (\r\n `request_md5` char(32) NOT NULL,\r\n `user_id` int(11) NOT NULL DEFAULT '0',\r\n `cdate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,\r\n `action` varchar(50) DEFAULT NULL,\r\n `response` longtext NOT NULL,\r\n PRIMARY KEY (`request_md5`,`user_id`)\r\n) {$charset_collate};"); } $tables = $wpdb->get_results("show tables like '{$wpdb->prefix}rhc_events'"); if (!count($tables)) { $wpdb->query("CREATE TABLE IF NOT EXISTS `{$wpdb->prefix}rhc_events` (\r\n `event_start` datetime NOT NULL,\r\n `event_end` datetime NOT NULL,\r\n `post_id` bigint(20) NOT NULL,\r\n `allday` tinyint(4) NOT NULL DEFAULT '0',\r\n `number` int(11) NOT NULL DEFAULT '0',\r\n PRIMARY KEY (`event_start`,`post_id`),\r\n KEY `event_end` (`event_end`,`post_id`),\r\n KEY `event_start` (`event_start`,`event_end`)\r\n) {$charset_collate};"); } //---- Capabilities for the rhcvents custom post type $WP_Roles = new WP_Roles(); foreach (array('calendarize_author', 'edit_' . RHC_CAPABILITY_TYPE, 'read_' . RHC_CAPABILITY_TYPE, 'delete_' . RHC_CAPABILITY_TYPE, 'delete_' . RHC_CAPABILITY_TYPE . 's', 'edit_' . RHC_CAPABILITY_TYPE . 's', 'edit_others_' . RHC_CAPABILITY_TYPE . 's', 'edit_published_' . RHC_CAPABILITY_TYPE . 's', 'delete_published_' . RHC_CAPABILITY_TYPE . 's', 'delete_private_' . RHC_CAPABILITY_TYPE . 's', 'delete_others_' . RHC_CAPABILITY_TYPE . 's', 'publish_' . RHC_CAPABILITY_TYPE . 's', 'read_private_' . RHC_CAPABILITY_TYPE . 's', 'manage_' . RHC_VENUE, 'manage_' . RHC_CALENDAR, 'manage_' . RHC_ORGANIZER, 'rhc_options', 'rhc_license') as $cap) { $WP_Roles->add_cap(RHC_ADMIN_ROLE, $cap); } //---- global $rhc_plugin; include RHC_PATH . 'includes/bundle_default_custom_fields.php'; if (isset($postinfo_boxes)) { //--save: $options = get_option($rhc_plugin->options_varname); $options = is_array($options) ? $options : array(); if (!isset($options['postinfo_boxes'])) { $options['postinfo_boxes'] = $postinfo_boxes; update_option($rhc_plugin->options_varname, $options); } //-- } add_option('rhc_options_redirect', true); add_option('rhc_setup', true); $rhc_plugin->update_option('data-last-modified', gmdate("D, d M Y H:i:s") . " GMT"); }
/** * Adds plugin-specific caps to all roles so that 3rd party plugins can manage them */ function add_caps() { global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach ($wp_roles->role_names as $role => $label) { //if the role is a standard role, map the default caps, otherwise, map as a subscriber $caps = array_key_exists($role, $this->defaults) ? $this->defaults[$role] : $this->defaults['subscriber']; //loop and assign foreach ($caps as $cap => $grant) { //check to see if the user already has this capability, if so, don't re-add as that would override grant if (!isset($wp_roles->roles[$role]['capabilities'][$cap])) { $wp_roles->add_cap($role, $cap, $grant); } } } }
function orbis_update_roles($roles) { global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach ($roles as $role => $data) { if (isset($data['display_name'], $data['capabilities'])) { $display_name = $data['display_name']; $capabilities = $data['capabilities']; if ($wp_roles->is_role($role)) { foreach ($capabilities as $cap => $grant) { $wp_roles->add_cap($role, $cap, $grant); } } else { $wp_roles->add_role($role, $display_name, $capabilities); } } } }
/** * * * @version $Id$ * @copyright 2003 **/ function handle_rhc_install() { //----for taxonomy metadata support global $wpdb; $charset_collate = ''; if (!empty($wpdb->charset)) { $charset_collate = "DEFAULT CHARACTER SET {$wpdb->charset}"; } if (!empty($wpdb->collate)) { $charset_collate .= " COLLATE {$wpdb->collate}"; } $tables = $wpdb->get_results("show tables like '{$wpdb->prefix}taxonomymeta'"); if (!count($tables)) { $wpdb->query("CREATE TABLE {$wpdb->prefix}taxonomymeta (\n\t meta_id bigint(20) unsigned NOT NULL auto_increment,\n\t taxonomy_id bigint(20) unsigned NOT NULL default '0',\n\t meta_key varchar(255) default NULL,\n\t meta_value longtext,\n\t PRIMARY KEY (meta_id),\n\t KEY taxonomy_id (taxonomy_id),\n\t KEY meta_key (meta_key)\n\t ) {$charset_collate};"); } //---- Capabilities for the rhcvents custom post type $WP_Roles = new WP_Roles(); foreach (array('calendarize_author', 'edit_' . RHC_CAPABILITY_TYPE, 'read_' . RHC_CAPABILITY_TYPE, 'delete_' . RHC_CAPABILITY_TYPE, 'edit_' . RHC_CAPABILITY_TYPE . 's', 'edit_others_' . RHC_CAPABILITY_TYPE . 's', 'edit_published_' . RHC_CAPABILITY_TYPE . 's', 'delete_published_' . RHC_CAPABILITY_TYPE . 's', 'delete_private_' . RHC_CAPABILITY_TYPE . 's', 'delete_others_' . RHC_CAPABILITY_TYPE . 's', 'publish_' . RHC_CAPABILITY_TYPE . 's', 'read_private_' . RHC_CAPABILITY_TYPE . 's', 'manage_' . RHC_VENUE, 'manage_' . RHC_CALENDAR, 'manage_' . RHC_ORGANIZER) as $cap) { $WP_Roles->add_cap(RHC_ADMIN_ROLE, $cap); } }
function eventon_init_caps() { global $wp_roles; //print_r($wp_roles); if (class_exists('WP_Roles')) { if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } } $capabilities = eventon_get_core_capabilities(); foreach ($capabilities as $cap_group) { foreach ($cap_group as $cap) { $wp_roles->add_cap('administrator', $cap); } } }
function sp_add_caps() { global $wp_roles; if (class_exists('WP_Roles') && !isset($wp_roles)) { $wp_roles = new WP_Roles(); } $wp_roles->add_cap('administrator', 'SPF Manage Options', false); $wp_roles->add_cap('administrator', 'SPF Manage Forums', false); $wp_roles->add_cap('administrator', 'SPF Manage User Groups', false); $wp_roles->add_cap('administrator', 'SPF Manage Permissions', false); $wp_roles->add_cap('administrator', 'SPF Manage Components', false); $wp_roles->add_cap('administrator', 'SPF Manage Admins', false); $wp_roles->add_cap('administrator', 'SPF Manage Users', false); $wp_roles->add_cap('administrator', 'SPF Manage Profiles', false); $wp_roles->add_cap('administrator', 'SPF Manage Toolbox', false); $wp_roles->add_cap('administrator', 'SPF Manage Plugins', false); $wp_roles->add_cap('administrator', 'SPF Manage Themes', false); $wp_roles->add_cap('administrator', 'SPF Manage Integration', false); }
/** * every time when new blog created - duplicate to it roles from the main blog (1) * @global wpdb $wpdb * @global WP_Roles $wp_roles * @param int $blog_id * @param int $user_id * */ public function duplicate_roles_for_new_blog($blog_id) { global $wpdb, $wp_roles; // get Id of 1st (main) blog $main_blog_id = $this->lib->get_main_blog_id(); if (empty($main_blog_id)) { return; } $current_blog = $wpdb->blogid; switch_to_blog($main_blog_id); $main_roles = new WP_Roles(); // get roles from primary blog $default_role = get_option('default_role'); // get default role from primary blog switch_to_blog($blog_id); // switch to the new created blog $main_roles->use_db = false; // do not touch DB $main_roles->add_cap('administrator', 'dummy_123456'); // just to save current roles into new blog $main_roles->role_key = $wp_roles->role_key; $main_roles->use_db = true; // save roles into new blog DB $main_roles->remove_cap('administrator', 'dummy_123456'); // remove unneeded dummy capability update_option('default_role', $default_role); // set default role for new blog as it set for primary one switch_to_blog($current_blog); // return to blog where we were at the begin }
/** * Fired for each blog when the plugin is activated. * * @since 1.0.0 */ private static function single_activate() { //Requirements Detection System - read the doc/example in the library file require_once plugin_dir_path(__FILE__) . 'includes/requirements.php'; new Plugin_Requirements(self::$plugin_name, self::$plugin_slug, array('WP' => new WordPress_Requirement('4.1.0'))); // @TODO: Define activation functionality here global $wp_roles; if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } foreach ($wp_roles->role_names as $role => $label) { //if the role is a standard role, map the default caps, otherwise, map as a subscriber $caps = array_key_exists($role, self::$plugin_roles) ? self::$plugin_roles[$role] : self::$plugin_roles['subscriber']; //loop and assign foreach ($caps as $cap => $grant) { //check to see if the user already has this capability, if so, don't re-add as that would override grant if (!isset($wp_roles->roles[$role]['capabilities'][$cap])) { $wp_roles->add_cap($role, $cap, $grant); } } } //Clear the permalinks flush_rewrite_rules(); }
public function addCapability($role, $cap) { global $wp_roles; /* * Check to make sure $wp_roles has been initialized and set. * If it hasn't it is initialized. This was done because this method * can be called before the $wp_roles has been initialized. */ if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } //$wpRole = get_role($role); if (!$this->hasCapability($role, $cap)) $wp_roles->add_cap($role, $cap); }
/** * Upgrade Helper for v1.9 * * Add new capabilities to author role * * @since 1.9 */ public function upgrade_helper_19() { global $wp_roles; if (class_exists('WP_Roles')) { if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } } $wp_roles->add_cap('author', 'edit_others_posts'); $wp_roles->add_cap('author', 'edit_others_pages'); }
/** * Add new capability * * @global WP_Roles $wp_roles * @return string */ protected function add_new_capability() { global $wp_roles; if (!current_user_can('ure_create_capabilities')) { return esc_html__('Insufficient permissions to work with User Role Editor', 'user-role-editor'); } $mess = ''; if (isset($_POST['capability_id']) && $_POST['capability_id']) { $user_capability = $_POST['capability_id']; // sanitize user input for security $valid_name = preg_match('/[A-Za-z0-9_\\-]*/', $user_capability, $match); if (!$valid_name || $valid_name && $match[0] != $user_capability) { // some non-alphanumeric charactes found! return 'Error! ' . esc_html__('Error: Capability name must contain latin characters and digits only!', 'user-role-editor'); } if ($user_capability) { $user_capability = strtolower($user_capability); if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $wp_roles->use_db = true; $administrator = $wp_roles->get_role('administrator'); if (!$administrator->has_cap($user_capability)) { $wp_roles->add_cap('administrator', $user_capability); $mess = sprintf(esc_html__('Capability %s is added successfully', 'user-role-editor'), $user_capability); } else { $mess = sprintf('Error! ' . esc_html__('Capability %s exists already', 'user-role-editor'), $user_capability); } } } return $mess; }
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; } }
private static function setupCustomCaps() { global $wp_roles; if (function_exists('wpcf_access_register_caps')) { cred_log('Access Active', 'access.log'); add_filter('types-access-area', array('CRED_CRED', 'register_access_cred_area')); add_filter('types-access-group', array('CRED_CRED', 'register_access_cred_group'), 10, 2); add_filter('types-access-cap', array('CRED_CRED', 'register_access_cred_caps'), 10, 3); } elseif (function_exists('ure_not_edit_admin') || class_exists('Members_Load')) { if (!isset($wp_roles) && class_exists('WP_Roles')) { $wp_roles = new WP_Roles(); } $wp_roles->use_db = true; if ($wp_roles->is_role('administrator')) { $administrator = $wp_roles->get_role('administrator'); } else { $administrator = false; trigger_error(__('Administrator Role not found! CRED capabilities will not work', 'wp-cred'), E_USER_NOTICE); } if ($administrator) { $forms = self::getAllFormsCached(); // register custom CRED Frontend capabilities specific to each form type //foreach ($wp_roles as $role) //{ foreach ($forms as $form) { $settings = isset($form->meta) ? maybe_unserialize($form->meta) : false; // caps for forms that create if ($settings && $settings->form_type == 'new') { $cred_cap = 'create_posts_with_cred_' . $form->ID; if (!$administrator->has_cap($cred_cap)) { $wp_roles->add_cap('administrator', $cred_cap); } /*if (!$role->has_cap($cred_cap)) $role->add_cap($cred_cap);*/ } elseif ($settings && $settings->form_type == 'edit') { $cred_cap = 'edit_own_posts_with_cred_' . $form->ID; if (!$administrator->has_cap($cred_cap)) { $wp_roles->add_cap('administrator', $cred_cap); } /*if (!$role->has_cap($cred_cap)) $role->add_cap($cred_cap);*/ $cred_cap = 'edit_other_posts_with_cred_' . $form->ID; if (!$administrator->has_cap($cred_cap)) { $wp_roles->add_cap('administrator', $cred_cap); } /*if (!$role->has_cap($cred_cap)) $role->add_cap($cred_cap);*/ } } // these caps do not require a specific form $cred_cap = 'delete_own_posts_with_cred'; if (!$administrator->has_cap($cred_cap)) { $wp_roles->add_cap('administrator', $cred_cap); } /*if (!$role->has_cap($cred_cap)) $role->add_cap($cred_cap);*/ $cred_cap = 'delete_other_posts_with_cred'; if (!$administrator->has_cap($cred_cap)) { $wp_roles->add_cap('administrator', $cred_cap); } /*if (!$role->has_cap($cred_cap)) $role->add_cap($cred_cap);*/ } //} } else { $forms = self::getAllFormsCached(); // register custom CRED Frontend capabilities specific to each form type foreach ($forms as $form) { $settings = isset($form->meta) ? maybe_unserialize($form->meta) : false; // caps for forms that create if ($settings && $settings->form_type == 'new') { $cred_cap = 'create_posts_with_cred_' . $form->ID; self::$caps[] = $cred_cap; } elseif ($settings && $settings->form_type == 'edit') { $cred_cap = 'edit_own_posts_with_cred_' . $form->ID; self::$caps[] = $cred_cap; $cred_cap = 'edit_other_posts_with_cred_' . $form->ID; self::$caps[] = $cred_cap; } } // these caps do not require a specific form $cred_cap = 'delete_own_posts_with_cred'; self::$caps[] = $cred_cap; $cred_cap = 'delete_other_posts_with_cred'; self::$caps[] = $cred_cap; add_filter('user_has_cap', array('CRED_CRED', 'default_cred_caps_filter'), 5, 3); } }
function duplicate_roles_for_new_blog($blog_id, $user_id) { global $wpdb, $global, $wp_roles; // get Id of 1st (main) blog $blogIds = $wpdb->get_col($wpdb->prepare("SELECT blog_id FROM {$wpdb->blogs} order by blog_id asc")); if (!isset($blogIds[0])) { return; } $current_blog = $wpdb->blogid; switch_to_blog($blogIds[0]); $main_roles = new WP_Roles(); // get roles from primary blog $default_role = get_option('default_role'); // get default role from primary blog switch_to_blog($blog_id); // switch to the new created blog $main_roles->use_db = false; // do not touch DB $main_roles->add_cap('administrator', 'dummy_123456'); // just to save current roles into new blog $main_roles->role_key = $wp_roles->role_key; $main_roles->use_db = true; // save roles into new blog DB $main_roles->remove_cap('administrator', 'dummy_123456'); // remove unneeded dummy capability update_option('default_role', $default_role); // set default role for new blog as it set for primary one switch_to_blog($current_blog); // return to blog where we were at the begin }
/** * Set Planner Role Capabilities * @static * @since 1.0 */ public static function set_roles() { global $wp_roles; if (PostPlanner_Loader::$settings['disable_user_roles'] == 0) { $roles = explode(',', PostPlanner_Loader::$settings['allowed_roles']); foreach ($roles as $role) { if ($role != '') { $role = get_role($role); if (is_object($role)) { $role->add_cap('publish_planners'); $role->add_cap('edit_planners'); $role->add_cap('edit_others_planners'); $role->add_cap('delete_others_planners'); $role->add_cap('read_private_planners'); $role->add_cap('delete_planners'); } } } } else { $wp_roles = new WP_Roles(); $wp_roles->add_cap('administrator', 'edit_planner'); $wp_roles->add_cap('administrator', 'read_planner'); $wp_roles->add_cap('administrator', 'delete_planner'); $wp_roles->add_cap('administrator', 'publish_planners'); $wp_roles->add_cap('administrator', 'edit_planners'); $wp_roles->add_cap('administrator', 'edit_others_planners'); $wp_roles->add_cap('administrator', 'edit_private_planners'); $wp_roles->add_cap('administrator', 'edit_others_planners'); $wp_roles->add_cap('administrator', 'delete_others_planners'); $wp_roles->add_cap('administrator', 'delete_private_planners'); $wp_roles->add_cap('administrator', 'delete_published_planners'); $wp_roles->add_cap('administrator', 'read_private_planners'); $wp_roles->add_cap('administrator', 'delete_planners'); } do_action('post_planner_set_roles'); }
/** * update_settings method */ static function update_settings() { $wpdb = Follow_Up_Emails::instance()->wpdb; $section = $_POST['section']; $imported = ''; if ($section == 'email') { // capability if (isset($_POST['roles'])) { $roles = get_editable_roles(); $wp_roles = new WP_Roles(); foreach ($roles as $key => $role) { if (in_array($key, $_POST['roles'])) { $wp_roles->add_cap($key, 'manage_follow_up_emails'); } else { $wp_roles->remove_cap($key, 'manage_follow_up_emails'); } } // make sure the admin has this capability $wp_roles->add_cap('administrator', 'manage_follow_up_emails'); } do_action('fue_settings_email_save', $_POST); } elseif ($section == 'crm') { // bcc if (isset($_POST['bcc'])) { update_option('fue_bcc', $_POST['bcc']); } // from/reply-to name if (isset($_POST['from_name'])) { update_option('fue_from_name', $_POST['from_name']); } // from/reply-to if (isset($_POST['from_email'])) { update_option('fue_from_email', $_POST['from_email']); } // daily summary emails if (isset($_POST['daily_emails'])) { update_option('fue_daily_emails', $_POST['daily_emails']); } if (isset($_POST['daily_emails_time_hour'])) { $previous_time = get_option('fue_daily_emails_time', '00:00 AM'); $time = $_POST['daily_emails_time_hour'] . ':' . $_POST['daily_emails_time_minute'] . ' ' . $_POST['daily_emails_time_ampm']; if ($previous_time != $time) { update_option('fue_daily_emails_time', $time); Follow_Up_Emails::instance()->scheduler->reschedule_daily_summary_email(); } } do_action('fue_settings_crm_save', $_POST); } elseif ($section == 'system') { // process importing request if (isset($_FILES['emails_file']) && is_uploaded_file($_FILES['emails_file']['tmp_name'])) { ini_set("auto_detect_line_endings", true); $fh = @fopen($_FILES['emails_file']['tmp_name'], 'r'); $columns = array(); $i = 0; while ($row = fgetcsv($fh)) { $i++; if ($i == 1) { foreach ($row as $idx => $col) { $columns[$idx] = $col; } continue; } $data = array(); foreach ($columns as $idx => $col) { if ($col == 'email_type') { $col = 'type'; // convert 'product' emails to 'storewide' if (in_array($row[$idx], array('product', 'normal', 'generic'))) { $row[$idx] = 'storewide'; } } elseif ($col == 'status') { if ($row[$idx] == -1) { $row[$idx] = FUE_Email::STATUS_ARCHIVED; } elseif ($row[$idx] == 0) { $row[$idx] = FUE_Email::STATUS_INACTIVE; } else { $row[$idx] = FUE_Email::STATUS_ACTIVE; } } $data[$col] = $row[$idx]; } fue_create_email($data); } $imported = '&imported=1'; } // restore settings file from backup if (isset($_FILES['settings_file']) && is_uploaded_file($_FILES['settings_file']['tmp_name'])) { ini_set("auto_detect_line_endings", true); $fh = @fopen($_FILES['settings_file']['tmp_name'], 'r'); $i = 0; while ($row = fgetcsv($fh)) { $i++; if ($i == 1) { continue; } update_option($row[0], $row[1]); } $imported = '&imported=1'; } // api if (!empty($_POST['api_enabled'])) { update_option('fue_api_enabled', 'yes'); } else { update_option('fue_api_enabled', 'no'); } // usage data if (isset($_POST['disable_usage_data']) && $_POST['disable_usage_data'] == 1) { update_option('fue_disable_usage_data', 1); } else { delete_option('fue_disable_usage_data'); } // email batches if (isset($_POST['email_batch_enabled']) && $_POST['email_batch_enabled'] == 1) { update_option('fue_email_batches', 1); update_option('fue_emails_per_batch', intval($_POST['emails_per_batch'])); update_option('fue_batch_interval', intval($_POST['email_batch_interval'])); } else { update_option('fue_email_batches', 0); } // disable logging if (isset($_POST['action_scheduler_disable_logging']) && $_POST['action_scheduler_disable_logging'] == 1) { update_option('fue_disable_action_scheduler_logging', 1); } else { update_option('fue_disable_action_scheduler_logging', 0); } // delete all action scheduler comments if (isset($_POST['action_scheduler_delete_logs']) && $_POST['action_scheduler_delete_logs'] == 1) { $comment_ids = $wpdb->get_col("SELECT comment_ID FROM {$wpdb->comments} WHERE comment_type = 'action_log'"); if ($comment_ids) { foreach ($comment_ids as $comment_id) { wp_delete_comment($comment_id, true); } } } do_action('fue_settings_system_save', $_POST); } else { do_action('fue_settings_save', $_POST); } wp_redirect("admin.php?page=followup-emails-settings&tab={$section}&settings_updated=1{$imported}"); exit; }
function ure_AddNewCapability() { global $wp_roles; $mess = ''; if (isset($_POST['capability_id']) && $_POST['capability_id']) { $user_capability = $_POST['capability_id']; // sanitize user input for security $valid_name = preg_match('/[A-Za-z0-9_\\-]*/', $user_capability, $match); if (!$valid_name || $valid_name && $match[0] != $user_capability) { // some non-alphanumeric charactes found! return 'Error! ' . __('Error: Capability name must contain latin characters and digits only!', 'ure'); } if ($user_capability) { $user_capability = strtolower($user_capability); if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $wp_roles->use_db = true; $administrator = $wp_roles->get_role('administrator'); if (!$administrator->has_cap($user_capability)) { $wp_roles->add_cap('administrator', $user_capability); $mess = sprintf(__('Capability %s is added successfully', 'ure'), $user_capability); } else { $mess = sprintf('Error! ' . __('Capability %s exists already', 'ure'), $user_capability); } } } return $mess; }
/** * Create roles and capabilities. */ public static function create_roles() { global $wp_roles; if (!class_exists('WP_Roles')) { return; } if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $capabilities = self::get_core_capabilities(); foreach ($capabilities as $cap_group) { foreach ($cap_group as $cap) { $wp_roles->add_cap('administrator', $cap); } } }
function ure_AddNewCapability() { global $wp_roles; $mess = ''; if (isset($_GET['new_user_capability']) && $_GET['new_user_capability']) { $user_capability = utf8_decode(urldecode($_GET['new_user_capability'])); // sanitize user input for security if (!preg_match('/^[A-Za-z_][A-Za-z0-9_]*/', $user_capability)) { return 'Error! ' . __('Error: Capability name must contain latin characters and digits only!', 'ure'); } if ($user_capability) { $user_capability = strtolower($user_capability); if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } $wp_roles->use_db = true; $administrator = $wp_roles->get_role('administrator'); if (!$administrator->has_cap($user_capability)) { $wp_roles->add_cap('administrator', $user_capability); $mess = sprintf(__('Capability %s is added successfully', 'ure'), $user_capability); } else { $mess = sprintf('Error! ' . __('Capability %s exists already', 'ure'), $user_capability); } } } return $mess; }
/** * Adds specified cap(s) to specified role(s) * * @param String/Array $role_names Role name(s) * @param String/Array $caps Capability(-es) to add. */ function add_caps($role_names, $caps) { $role = new WP_Roles(); if (!is_array($role_names)) { $role_names = array($role_names); } # add_cap() writes to database on every call if use_db is true, don't need that $role->use_db = false; foreach ((array) $role_names as $name) { if ($role->is_role($name)) { foreach ((array) $caps as $cap) { $role->add_cap($name, $cap); } } } $role->use_db = true; update_option($role->role_key, $role->roles); }
/** * Create roles and capabilities. */ public static function create_roles() { global $wp_roles; if (!class_exists('WP_Roles')) { return; } if (!isset($wp_roles)) { $wp_roles = new WP_Roles(); } // Customer role add_role('customer', __('Customer', 'woocommerce'), array('read' => true)); // Shop manager role add_role('shop_manager', __('Shop manager', 'woocommerce'), array('level_9' => true, 'level_8' => true, 'level_7' => true, 'level_6' => true, 'level_5' => true, 'level_4' => true, 'level_3' => true, 'level_2' => true, 'level_1' => true, 'level_0' => true, 'read' => true, 'read_private_pages' => true, 'read_private_posts' => true, 'edit_users' => true, 'edit_posts' => true, 'edit_pages' => true, 'edit_published_posts' => true, 'edit_published_pages' => true, 'edit_private_pages' => true, 'edit_private_posts' => true, 'edit_others_posts' => true, 'edit_others_pages' => true, 'publish_posts' => true, 'publish_pages' => true, 'delete_posts' => true, 'delete_pages' => true, 'delete_private_pages' => true, 'delete_private_posts' => true, 'delete_published_pages' => true, 'delete_published_posts' => true, 'delete_others_posts' => true, 'delete_others_pages' => true, 'manage_categories' => true, 'manage_links' => true, 'moderate_comments' => true, 'unfiltered_html' => true, 'upload_files' => true, 'export' => true, 'import' => true, 'list_users' => true)); $capabilities = self::get_core_capabilities(); foreach ($capabilities as $cap_group) { foreach ($cap_group as $cap) { $wp_roles->add_cap('shop_manager', $cap); $wp_roles->add_cap('administrator', $cap); } } }
/** * 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))); } } }