PluginProbe
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses / 2.10.0
FluentCommunity – Ultra-Fast High-Performance Social Network, Community, LMS & Online Courses v2.10.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 1.1.0 All 77 releases
← All changes | Modules/Course/Http/Controllers/CourseController.php +20 -4 2.7.02.10.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) {
@@ -526,9 +530,9 @@
526 530 {
527 531 $user = $this->getUser();
528 532 $isCourseCreator = $user && $user->hasCourseCreatorAccess();
529 533
530 - $courses = Course::where(function ($q) use ($isCourseCreator, $user) {
534 + $coursesQuery = Course::where(function ($q) use ($isCourseCreator, $user) {
531 535 if ($isCourseCreator) {
532 536 $q->where('status', 'published')
533 537 ->orWhere('created_by', $user->ID);
534 538 } else {
@@ -533,11 +537,23 @@
533 537 ->orWhere('created_by', $user->ID);
534 538 } else {
535 539 $q->where('status', 'published');
536 540 }
537 - })
538 - ->with(['creator'])
539 - ->paginate();
541 + });
542 +
543 + if (!($user && $user->isCommunityModerator())) {
544 + $userId = get_current_user_id();
545 + $coursesQuery->where(function ($q) use ($userId) {
546 + $q->whereIn('privacy', ['public', 'private'])
547 + ->orWhereHas('space_pivot', function ($sub) use ($userId) {
548 + $sub->where('user_id', $userId)
549 + ->where('role', 'student');
550 + })
551 + ->orWhere('created_by', $userId);
552 + });
553 + }
554 +
555 + $courses = $coursesQuery->with(['creator'])->paginate();
540 556
541 557 $formattedCourses = [];
542 558 foreach ($courses as $course) {
543 559 $course->sectionsCount = CourseTopic::where('space_id', $course->id)->count();