Esempio n. 1
0
 public static function wpcf_process_change_role_caps_ajax()
 {
     if (!current_user_can('manage_options')) {
         _e('There are security problems. You do not have permissions.', 'wpcf-access');
         die;
     }
     if (!isset($_POST['wpnonce']) || !wp_verify_nonce($_POST['wpnonce'], 'wpcf-access-error-pages')) {
         die('verification failed');
     }
     $role = sanitize_text_field($_POST['role']);
     $caps = '';
     if (isset($_POST['caps'])) {
         $caps = array_map('sanitize_text_field', $_POST['caps']);
     }
     TAccess_Loader::load('CLASS/Admin_Edit');
     $model = TAccess_Loader::get('MODEL/Access');
     $default_caps = getDefaultCaps();
     $default_wordpress_caps = $default_caps[10];
     $access_roles = $model->getAccessRoles();
     $wocommerce_caps = get_woocommerce_caps();
     $wpml_caps_list = get_wpml_caps();
     $custom_caps = get_option('wpcf_access_custom_caps');
     //$toolset_caps_list = get_toolset_caps();
     $role_data = get_role($role);
     for ($i = 0, $caps_limit = count($default_wordpress_caps); $i < $caps_limit; $i++) {
         if (isset($access_roles[$role]['caps'][$default_wordpress_caps[$i]])) {
             unset($access_roles[$role]['caps'][$default_wordpress_caps[$i]]);
             $role_data->remove_cap($default_wordpress_caps[$i]);
         }
     }
     foreach ($wocommerce_caps as $cap => $cap_info) {
         if (isset($access_roles[$role]['caps'][$cap])) {
             unset($access_roles[$role]['caps'][$cap]);
             $role_data->remove_cap($cap);
         }
     }
     foreach ($wpml_caps_list as $cap => $cap_info) {
         if (isset($access_roles[$role]['caps'][$cap])) {
             unset($access_roles[$role]['caps'][$cap]);
             $role_data->remove_cap($cap);
         }
     }
     if (is_array($custom_caps)) {
         foreach ($custom_caps as $cap => $cap_info) {
             if (isset($access_roles[$role]['caps'][$cap])) {
                 unset($access_roles[$role]['caps'][$cap]);
                 $role_data->remove_cap($cap);
             }
         }
     }
     if (class_exists('WPDD_Layouts_Users_Profiles')) {
         foreach (WPDD_Layouts_Users_Profiles::ddl_get_capabilities() as $cap => $cap_info) {
             if (isset($access_roles[$role]['caps'][$cap])) {
                 unset($access_roles[$role]['caps'][$cap]);
                 $role_data->remove_cap($cap);
             }
         }
     }
     $access_caps = array('access_change_post_group' => __('Select access group for content', 'wpcf-access'), 'access_create_new_group' => __('Create new access groups', 'wpcf-access'));
     foreach ($access_caps as $cap => $cap_info) {
         if (isset($access_roles[$role]['caps'][$cap])) {
             unset($access_roles[$role]['caps'][$cap]);
             $role_data->remove_cap($cap);
         }
     }
     /*
     foreach ($toolset_caps_list as $cap => $cap_info){
     	if ( isset( $access_roles[$role]['caps'][$cap] ) ){
     		unset( $access_roles[$role]['caps'][$cap] );
     		$role_data->remove_cap($cap);
     	}
     }
     */
     for ($i = 0, $caps_limit = count($caps); $i < $caps_limit; $i++) {
         $cap = str_replace('cap_', '', $caps[$i]);
         $access_roles[$role]['caps'][$cap] = true;
         $role_data->add_cap($cap);
     }
     $model->updateAccessRoles($access_roles);
     die;
 }
Esempio n. 2
0
function wpcf_access_layouts_capabilities($data)
{
    if (class_exists('WPDD_Layouts_Users_Profiles')) {
        $wp_roles['label'] = __('Layouts capabilities', 'wpcf-access');
        $wp_roles['capabilities'] = WPDD_Layouts_Users_Profiles::ddl_get_capabilities();
        $data[] = $wp_roles;
    }
    return $data;
}