コード例 #1
0
 /**
  * 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);
             }
         }
     }
 }
コード例 #2
0
ファイル: installer.php プロジェクト: abcode619/wpstuff
 /**
  * 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');
 }
コード例 #3
0
ファイル: migrations.php プロジェクト: congtrieu112/anime
 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);
 }
コード例 #4
0
ファイル: db-upgrade.php プロジェクト: congtrieu112/anime
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');
}
コード例 #5
0
 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);
 }
コード例 #6
0
ファイル: white-label-branding.php プロジェクト: emjayoh/bhag
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/');
    }
}
コード例 #7
0
ファイル: capability.php プロジェクト: dot2006/jobify
 /**
  *
  * @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);
 }
コード例 #8
0
ファイル: activate.php プロジェクト: jessor/anspress
 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);
             }
         }
     }
 }
コード例 #9
0
/**
 * 
 *
 * @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");
}
コード例 #10
0
 /**
  * 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);
             }
         }
     }
 }
コード例 #11
0
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);
            }
        }
    }
}
コード例 #12
0
/**
 * 
 *
 * @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);
    }
}
コード例 #13
0
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);
        }
    }
}
コード例 #14
0
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);
}
コード例 #15
0
 /**
  * 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();
 }
コード例 #17
0
ファイル: class.options.php プロジェクト: realfluid/umbaugh
	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);
	}
コード例 #18
0
ファイル: oasiswf.php プロジェクト: andyUA/kabmin-new
 /**
  * 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');
 }
コード例 #19
0
 /**
  * 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;
 }
コード例 #20
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;
     }
 }
コード例 #21
0
ファイル: CRED.php プロジェクト: adisonc/MaineLearning
 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);
     }
 }
コード例 #22
0
 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');
 }
コード例 #24
0
 /**
  * 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;
 }
コード例 #25
0
ファイル: ure-lib.php プロジェクト: vsalx/rattieinfo
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;
}
コード例 #26
0
 /**
  * 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);
         }
     }
 }
コード例 #27
0
ファイル: ure-lib.php プロジェクト: kitfrench/Futurestep
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;
}
コード例 #28
0
 /**
  * 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);
 }
コード例 #29
0
 /**
  * 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);
         }
     }
 }
コード例 #30
0
ファイル: Install.php プロジェクト: robbiespire/paQui
	/**
	 * 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)));
			}
		}
	}