PluginProbe
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses / 2.11.0
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses v2.11.0
2.11.0 2.10.0 2.10.01 2.9.1 2.9.0 2.8.1 2.8.0 2.7.7 2.7.5 2.7.0 2.6.01 2.6.0 2.5.0 2.4.01 trunk 1.0.90 1.0.91 1.0.92 1.0.93 1.0.94 1.0.95 1.0.96 1.0.97 1.0.98 1.0.99 All 78 releases
← All changes | Modules/Course/Http/Controllers/CourseController.php +25 -5 2.7.02.11.0 View file →
@@ -89,8 +89,9 @@
89 89 {
90 90 $user = $this->getUser();
91 91
92 92 $course = Course::findOrFail($courseId);
93 + /** @var Course $course */
93 94
94 95 $isCourseCreator = $course->isCourseAdmin($user);
95 96
96 97 if ($course->status !== 'published' && !$isCourseCreator) {
@@ -110,8 +111,9 @@
110 111 {
111 112 $user = $this->getUser();
112 113
113 114 $course = Course::where('slug', $slug)->firstOrFail();
115 + /** @var Course $course */
114 116
115 117 $isCourseCreator = $course->isCourseAdmin($user);
116 118
117 119 if ($course->status !== 'published' && !$isCourseCreator) {
@@ -146,8 +148,9 @@
146 148 public function getLessonBySlug(Request $request, $courseSlug, $lessonSlug)
147 149 {
148 150 $user = $this->getUser();
149 151
152 + /** @var Course $course */
150 153 $course = Course::where('slug', $courseSlug)->firstOrFail();
151 154
152 155 $isCourseCreator = $course->isCourseAdmin($user);
153 156
@@ -343,8 +346,9 @@
343 346 ]);
344 347 }
345 348
346 349 $course = Course::findOrFail($courseId);
350 + /** @var Course $course */
347 351
348 352 $isCourseCreator = $course->isCourseAdmin($user);
349 353
350 354 if ($course->status !== 'published' && !$isCourseCreator) {
@@ -509,9 +513,13 @@
509 513 'message' => __('Please enroll this course first', 'fluent-community')
510 514 ]);
511 515 }
512 516
513 - CourseHelper::resetCourseProgress($courseId, get_current_user_id());
517 + if (!CourseHelper::resetCourseProgress($courseId, get_current_user_id())) {
518 + return $this->sendError([
519 + 'message' => __('Your course progress could not be reset. Please try again.', 'fluent-community')
520 + ]);
521 + }
514 522
515 523 return [
516 524 'message' => __('Your course progress has been reset.', 'fluent-community'),
517 525 'track' => [
@@ -526,9 +534,9 @@
526 534 {
527 535 $user = $this->getUser();
528 536 $isCourseCreator = $user && $user->hasCourseCreatorAccess();
529 537
530 - $courses = Course::where(function ($q) use ($isCourseCreator, $user) {
538 + $coursesQuery = Course::where(function ($q) use ($isCourseCreator, $user) {
531 539 if ($isCourseCreator) {
532 540 $q->where('status', 'published')
533 541 ->orWhere('created_by', $user->ID);
534 542 } else {
@@ -533,11 +541,23 @@
533 541 ->orWhere('created_by', $user->ID);
534 542 } else {
535 543 $q->where('status', 'published');
536 544 }
537 - })
538 - ->with(['creator'])
539 - ->paginate();
545 + });
546 +
547 + if (!($user && $user->isCommunityModerator())) {
548 + $userId = get_current_user_id();
549 + $coursesQuery->where(function ($q) use ($userId) {
550 + $q->whereIn('privacy', ['public', 'private'])
551 + ->orWhereHas('space_pivot', function ($sub) use ($userId) {
552 + $sub->where('user_id', $userId)
553 + ->where('role', 'student');
554 + })
555 + ->orWhere('created_by', $userId);
556 + });
557 + }
558 +
559 + $courses = $coursesQuery->with(['creator'])->paginate();
540 560
541 561 $formattedCourses = [];
542 562 foreach ($courses as $course) {
543 563 $course->sectionsCount = CourseTopic::where('space_id', $course->id)->count();