diff --git a/app/Http/Controllers/Course/CourseCartController.php b/app/Http/Controllers/Course/CourseCartController.php
index 408b418c..02c9ef4e 100644
--- a/app/Http/Controllers/Course/CourseCartController.php
+++ b/app/Http/Controllers/Course/CourseCartController.php
@@ -26,6 +26,11 @@ class CourseCartController extends Controller
*/
public function index(Request $request)
{
+ $system = app('system_settings');
+ if (($system?->fields['show_course_cart'] ?? true) === false) {
+ abort(404);
+ }
+
$coupon = null;
$couponCode = $request->input('coupon');
@@ -56,6 +61,11 @@ class CourseCartController extends Controller
*/
public function store(Request $request)
{
+ $system = app('system_settings');
+ if (($system?->fields['show_course_cart'] ?? true) === false) {
+ abort(404);
+ }
+
$this->cartService->addToCart(Auth::user()->id, $request->course_id);
return redirect(route('course-cart.index'))->with('success', 'Course added to cart successfully.');
@@ -66,6 +76,11 @@ class CourseCartController extends Controller
*/
public function update(Request $request, CourseCart $courseCart)
{
+ $system = app('system_settings');
+ if (($system?->fields['show_course_cart'] ?? true) === false) {
+ abort(404);
+ }
+
$this->cartService->clearCart(Auth::user()->id);
return back()->with('success', 'Cart updated successfully.');
@@ -76,6 +91,11 @@ class CourseCartController extends Controller
*/
public function destroy($course_cart)
{
+ $system = app('system_settings');
+ if (($system?->fields['show_course_cart'] ?? true) === false) {
+ abort(404);
+ }
+
$this->cartService->removeFromCart(Auth::user()->id, $course_cart);
return back()->with('success', 'Course removed from cart successfully.');
diff --git a/app/Http/Controllers/StudentController.php b/app/Http/Controllers/StudentController.php
index 39efbd61..22b87c13 100644
--- a/app/Http/Controllers/StudentController.php
+++ b/app/Http/Controllers/StudentController.php
@@ -30,6 +30,19 @@ class StudentController extends Controller
*/
public function index(Request $request, string $tab)
{
+ $system = app('system_settings');
+ $fields = $system?->fields ?? [];
+ $showExams = $fields['show_student_exams'] ?? true;
+ $showWishlist = $fields['show_student_wishlist'] ?? true;
+
+ if ($tab === 'exams' && !$showExams) {
+ abort(404);
+ }
+
+ if ($tab === 'wishlist' && !$showWishlist) {
+ abort(404);
+ }
+
if ($tab !== 'courses' && !$request->user()->hasVerifiedEmail()) {
return redirect()
->route('student.index', ['tab' => 'courses'])
@@ -66,6 +79,13 @@ class StudentController extends Controller
public function show_exam(Request $request, int $id, string $tab)
{
+ $system = app('system_settings');
+ $fields = $system?->fields ?? [];
+
+ if (($fields['show_student_exams'] ?? true) === false) {
+ abort(404);
+ }
+
$user = Auth::user();
$exam = $this->examEnrollment->getEnrolledExam($id, $user);
$attempts = $this->examAttempt->getExamAttempts(['exam_id' => $id, 'user_id' => $user->id]);
diff --git a/resources/js/layouts/navbar/partials/actions.tsx b/resources/js/layouts/navbar/partials/actions.tsx
index 8571be7a..c3243b76 100644
--- a/resources/js/layouts/navbar/partials/actions.tsx
+++ b/resources/js/layouts/navbar/partials/actions.tsx
@@ -19,6 +19,7 @@ const Actions = ({ language }: { language: boolean }) => {
const { screen } = useScreen();
const [open, setOpen] = useState(false);
const sortedItems = navbar.navbar_items.sort((a, b) => a.sort - b.sort);
+ const showCart = system.fields?.show_course_cart !== false;
const actionElements = () =>
sortedItems.map((item) => {
@@ -28,7 +29,7 @@ const Actions = ({ language }: { language: boolean }) => {
return
Enable/disable course cart page and icon.
+Toggle visibility of the student exams tab.
+Toggle visibility of the student wishlist tab.
+