/**
  * Assign appropriate CoursePress capabilities for roles
  *
  * @since 1.2.3.3.
  *
  */
 public function assign_role_capabilities($user_id, $role, $old_role)
 {
     $capability_types = self::$capabilities['instructor'];
     if ('administrator' == $role) {
         self::assign_admin_capabilities($user_id);
     } else {
         $user = new Instructor($user_id);
         $instructor_courses = $user->get_assigned_courses_ids();
         // Remove all CoursePress capabilities
         foreach ($capability_types as $key => $value) {
             $user->remove_cap($key);
         }
         // If they are an instructor, give them their appropriate capabilities back
         if (!empty($instructor_courses)) {
             CoursePress::instance()->assign_instructor_capabilities($user_id);
         }
     }
 }
Ejemplo n.º 2
0
 function drop_instructor_capabilities($user_id)
 {
     if (user_can($user_id, 'manage_options')) {
         return;
     }
     $role = new Instructor($user_id);
     $global_option = !is_multisite();
     delete_user_option($user_id, 'role_ins', $global_option);
     // Legacy
     delete_user_meta($user_id, 'role_ins', 'instructor');
     $role->remove_cap('can_edit_posts');
     $role->remove_cap('read');
     $role->remove_cap('upload_files');
     $capabilities = array_keys(CoursePress_Capabilities::$capabilities['instructor']);
     foreach ($capabilities as $cap) {
         $role->remove_cap($cap);
     }
     CoursePress_Capabilities::grant_private_caps($user_id);
 }