| @@ -1,8 +1,9 @@ | ||
| 1 | 1 | <?php |
| 2 | 2 | |
| 3 | 3 | use LearnPress\Models\UserItems\UserItemModel; |
| 4 | 4 | use LearnPress\Models\UserModel; |
| 5 | +use LearnPress\Services\UserService; | |
| 5 | 6 | |
| 6 | 7 | /** |
| 7 | 8 | * Common functions to process actions about user |
| 8 | 9 | * |
| @@ -130,180 +131,23 @@ | ||
| 130 | 131 | } |
| 131 | 132 | } |
| 132 | 133 | |
| 133 | 134 | /** |
| 134 | - * Add more 2 user roles teacher and student | |
| 135 | + * Add roles and add capabilities for roles | |
| 135 | 136 | */ |
| 136 | 137 | function learn_press_add_user_roles() { |
| 137 | - $course_cap = LP_COURSE_CPT . 's'; | |
| 138 | - $lesson_cap = LP_LESSON_CPT . 's'; | |
| 139 | - $order_cap = LP_ORDER_CPT . 's'; | |
| 138 | + $item_types = [ | |
| 139 | + LP_COURSE_CPT, | |
| 140 | + LP_LESSON_CPT, | |
| 141 | + LP_ORDER_CPT, | |
| 142 | + ]; | |
| 140 | 143 | |
| 141 | - if ( ! get_role( LP_TEACHER_ROLE ) ) { | |
| 142 | - add_role( LP_TEACHER_ROLE, 'LP Instructor' ); | |
| 144 | + foreach ( $item_types as $item_type ) { | |
| 145 | + UserService::instance()->add_capabilities_for_roles( $item_type ); | |
| 143 | 146 | } |
| 144 | - | |
| 145 | - $teacher = get_role( LP_TEACHER_ROLE ); | |
| 146 | - if ( $teacher ) { | |
| 147 | - $teacher->add_cap( 'read_private_' . $course_cap ); | |
| 148 | - $teacher->add_cap( 'delete_published_' . $course_cap ); | |
| 149 | - $teacher->add_cap( 'edit_published_' . $course_cap ); | |
| 150 | - $teacher->add_cap( 'edit_' . $course_cap ); | |
| 151 | - $teacher->add_cap( 'delete_' . $course_cap ); | |
| 152 | - // $teacher->add_cap( 'unfiltered_html' ); | |
| 153 | - if ( $teacher->has_cap( 'unfiltered_html' ) ) { | |
| 154 | - $teacher->remove_cap( 'unfiltered_html' ); | |
| 155 | - } | |
| 156 | - | |
| 157 | - if ( LP_Settings::get_option( 'required_review', 'yes' ) == 'yes' ) { | |
| 158 | - $teacher->remove_cap( 'publish_' . $course_cap ); | |
| 159 | - } else { | |
| 160 | - $teacher->add_cap( 'publish_' . $course_cap ); | |
| 161 | - } | |
| 162 | - | |
| 163 | - $teacher->add_cap( 'read_private_' . $lesson_cap ); | |
| 164 | - $teacher->add_cap( 'delete_published_' . $lesson_cap ); | |
| 165 | - $teacher->add_cap( 'edit_published_' . $lesson_cap ); | |
| 166 | - $teacher->add_cap( 'edit_' . $lesson_cap ); | |
| 167 | - $teacher->add_cap( 'delete_' . $lesson_cap ); | |
| 168 | - $teacher->add_cap( 'publish_' . $lesson_cap ); | |
| 169 | - $teacher->add_cap( 'upload_files' ); | |
| 170 | - $teacher->add_cap( 'read' ); | |
| 171 | - $teacher->add_cap( 'edit_posts' ); | |
| 172 | - } | |
| 173 | - | |
| 174 | - // administrator | |
| 175 | - $admin = get_role( 'administrator' ); | |
| 176 | - if ( $admin ) { | |
| 177 | - $admin->add_cap( 'lp_mcp_access' ); | |
| 178 | - | |
| 179 | - $admin->add_cap( 'read_private_' . $course_cap ); | |
| 180 | - $admin->add_cap( 'delete_' . $course_cap ); | |
| 181 | - $admin->add_cap( 'delete_published_' . $course_cap ); | |
| 182 | - $admin->add_cap( 'edit_' . $course_cap ); | |
| 183 | - $admin->add_cap( 'edit_published_' . $course_cap ); | |
| 184 | - $admin->add_cap( 'publish_' . $course_cap ); | |
| 185 | - $admin->add_cap( 'delete_private_' . $course_cap ); | |
| 186 | - $admin->add_cap( 'edit_private_' . $course_cap ); | |
| 187 | - $admin->add_cap( 'delete_others_' . $course_cap ); | |
| 188 | - $admin->add_cap( 'edit_others_' . $course_cap ); | |
| 189 | - | |
| 190 | - $admin->add_cap( 'read_private_' . $lesson_cap ); | |
| 191 | - $admin->add_cap( 'delete_' . $lesson_cap ); | |
| 192 | - $admin->add_cap( 'delete_published_' . $lesson_cap ); | |
| 193 | - $admin->add_cap( 'edit_' . $lesson_cap ); | |
| 194 | - $admin->add_cap( 'edit_published_' . $lesson_cap ); | |
| 195 | - $admin->add_cap( 'publish_' . $lesson_cap ); | |
| 196 | - $admin->add_cap( 'delete_private_' . $lesson_cap ); | |
| 197 | - $admin->add_cap( 'edit_private_' . $lesson_cap ); | |
| 198 | - $admin->add_cap( 'delete_others_' . $lesson_cap ); | |
| 199 | - $admin->add_cap( 'edit_others_' . $lesson_cap ); | |
| 200 | - | |
| 201 | - $admin->add_cap( 'delete_' . $order_cap ); | |
| 202 | - $admin->add_cap( 'delete_published_' . $order_cap ); | |
| 203 | - $admin->add_cap( 'edit_' . $order_cap ); | |
| 204 | - $admin->add_cap( 'edit_published_' . $order_cap ); | |
| 205 | - $admin->add_cap( 'publish_' . $order_cap ); | |
| 206 | - $admin->add_cap( 'delete_private_' . $order_cap ); | |
| 207 | - $admin->add_cap( 'edit_private_' . $order_cap ); | |
| 208 | - $admin->add_cap( 'delete_others_' . $order_cap ); | |
| 209 | - $admin->add_cap( 'edit_others_' . $order_cap ); | |
| 210 | - } | |
| 211 | 147 | } |
| 212 | 148 | |
| 213 | 149 | /** |
| 214 | - * Remove capabilities added for MCP integration. | |
| 215 | - * | |
| 216 | - * @return void | |
| 217 | - */ | |
| 218 | -function learn_press_remove_mcp_capabilities() { | |
| 219 | - | |
| 220 | - $admin = get_role( 'administrator' ); | |
| 221 | - if ( $admin ) { | |
| 222 | - $admin->remove_cap( 'lp_mcp_access' ); | |
| 223 | - } | |
| 224 | -} | |
| 225 | -/* | |
| 226 | -function learn_press_current_user_is( $check_type = null ) { | |
| 227 | - global $current_user; | |
| 228 | - $user_roles = $current_user->roles; | |
| 229 | - $user_type = ''; | |
| 230 | - | |
| 231 | - if ( in_array( 'lpr_teacher', $user_roles ) ) { | |
| 232 | - $user_type = 'instructor'; | |
| 233 | - } elseif ( in_array( 'lp_teacher', $user_roles ) ) { | |
| 234 | - $user_type = 'instructor'; | |
| 235 | - } elseif ( in_array( 'administrator', $user_roles ) ) { | |
| 236 | - $user_type = 'administrator'; | |
| 237 | - } | |
| 238 | - | |
| 239 | - return $check_type ? $check_type == $user_type : $user_type; | |
| 240 | -}*/ | |
| 241 | - | |
| 242 | -/* | |
| 243 | -function learn_press_user_has_roles( $roles, $user_id = null ) { | |
| 244 | - $has_role = false; | |
| 245 | - if ( ! $user_id ) { | |
| 246 | - $user = wp_get_current_user(); | |
| 247 | - } else { | |
| 248 | - $user = get_user_by( 'id', $user_id ); | |
| 249 | - } | |
| 250 | - $available_roles = (array) $user->roles; | |
| 251 | - if ( is_array( $roles ) ) { | |
| 252 | - foreach ( $roles as $role ) { | |
| 253 | - if ( in_array( $role, $available_roles ) ) { | |
| 254 | - $has_role = true; | |
| 255 | - break; // only need one of roles is in available | |
| 256 | - } | |
| 257 | - } | |
| 258 | - } else { | |
| 259 | - if ( in_array( $roles, $available_roles ) ) { | |
| 260 | - $has_role = true; | |
| 261 | - } | |
| 262 | - } | |
| 263 | - | |
| 264 | - return $has_role; | |
| 265 | -}*/ | |
| 266 | - | |
| 267 | -/* | |
| 268 | -function learn_press_current_user_can_view_profile_section( $section, $user ) { | |
| 269 | - $current_user = wp_get_current_user(); | |
| 270 | - $view = true; | |
| 271 | - if ( $user->get_data( 'user_login' ) != $current_user->user_login && $section == LP_Settings::instance()->get( | |
| 272 | - 'profile_endpoints.orders', | |
| 273 | - 'profile-orders' | |
| 274 | - ) ) { | |
| 275 | - $view = false; | |
| 276 | - } | |
| 277 | - | |
| 278 | - return apply_filters( 'learn_press_current_user_can_view_profile_section', $view, $section, $user ); | |
| 279 | -}*/ | |
| 280 | - | |
| 281 | -/* | |
| 282 | -function learn_press_profile_tab_quizzes_content( $current, $tab, $user ) { | |
| 283 | - learn_press_get_template( | |
| 284 | - 'profile/tabs/quizzes.php', | |
| 285 | - array( | |
| 286 | - 'user' => $user, | |
| 287 | - 'current' => $current, | |
| 288 | - 'tab' => $tab, | |
| 289 | - ) | |
| 290 | - ); | |
| 291 | -}*/ | |
| 292 | - | |
| 293 | -/* | |
| 294 | -function learn_press_profile_tab_orders_content( $current, $tab, $user ) { | |
| 295 | - learn_press_get_template( | |
| 296 | - 'profile/tabs/orders.php', | |
| 297 | - array( | |
| 298 | - 'user' => $user, | |
| 299 | - 'current' => $current, | |
| 300 | - 'tab' => $tab, | |
| 301 | - ) | |
| 302 | - ); | |
| 303 | -}*/ | |
| 304 | - | |
| 305 | -/** | |
| 306 | 150 | * Get queried user in profile link |
| 307 | 151 | * |
| 308 | 152 | * @return false|WP_User |
| 309 | 153 | * @since 3.0.0 |
| @@ -932,9 +776,9 @@ | ||
| 932 | 776 | function learn_press_update_user_profile_change_password() { |
| 933 | 777 | try { |
| 934 | 778 | $user = wp_get_current_user(); |
| 935 | 779 | if ( ! $user ) { |
| 936 | - throw new Exception( 'error_lp_profile_update_pass', 'The user is invalid' ); | |
| 780 | + throw new Exception( __( 'The user is invalid', 'learnpress' ) ); | |
| 937 | 781 | } |
| 938 | 782 | |
| 939 | 783 | $old_pass = LP_Request::get_param( 'pass0', '', 'text', 'post' ); |
| 940 | 784 | if ( empty( $old_pass ) ) { |