/** * 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); } } }
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); }