From 37ce3c15ea335ebf920523689532d954c731a8b5 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Thu, 3 Sep 2026 15:05:28 +0700 Subject: [PATCH] feat: enhance AcademicAdvisingLogService to filter logs based on student role; update RolePermissionSeeder to include view-academic-advising-logs permission; rename 'Pembimbing Akademik' to 'Dosen' in UI --- app/Services/Admin/Services/AcademicAdvisingLogService.php | 6 ++++++ database/seeders/RolePermissionSeeder.php | 1 + .../pages/admin/services/academic-advising-logs/columns.tsx | 2 +- .../pages/admin/services/academic-advising-logs/index.tsx | 4 ++-- 4 files changed, 10 insertions(+), 3 deletions(-) diff --git a/app/Services/Admin/Services/AcademicAdvisingLogService.php b/app/Services/Admin/Services/AcademicAdvisingLogService.php index 981ed8d..1947d73 100644 --- a/app/Services/Admin/Services/AcademicAdvisingLogService.php +++ b/app/Services/Admin/Services/AcademicAdvisingLogService.php @@ -13,6 +13,11 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i { return AcademicAdvisingLog::query() ->with([ + 'students' => function ($q) use ($user) { + if ($user->hasRole(UserRole::Mahasiswa->value)) { + $q->where('students.id', $user->student?->id); + } + }, 'students.user.profile', 'students.department', 'lecturer.user.profile', @@ -23,6 +28,7 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i ->orWhereHas('user.profile', fn ($q) => $q->where('full_name', 'like', "%{$search}%")))) ->when($lecturerId, fn ($q) => $q->where('lecturer_id', $lecturerId)) ->when($user->hasRole(UserRole::Dosen->value), fn ($q) => $q->where('lecturer_id', $user->lecturer?->id)) + ->when($user->hasRole(UserRole::Mahasiswa->value), fn ($q) => $q->whereHas('students', fn ($q) => $q->where('students.id', $user->student?->id))) ->latest() ->paginate($perPage, ['id', 'lecturer_id', 'topic', 'notes', 'created_at']); } diff --git a/database/seeders/RolePermissionSeeder.php b/database/seeders/RolePermissionSeeder.php index 1aed7cd..88d5ce5 100644 --- a/database/seeders/RolePermissionSeeder.php +++ b/database/seeders/RolePermissionSeeder.php @@ -40,6 +40,7 @@ public function run(): void 'mahasiswa' => [ 'view-dashboard', 'view-academic-terms', + 'view-academic-advising-logs', 'view-courses', 'view-course-registrations', 'view-letter-requests', diff --git a/resources/js/pages/admin/services/academic-advising-logs/columns.tsx b/resources/js/pages/admin/services/academic-advising-logs/columns.tsx index c13f82b..dcd8e17 100644 --- a/resources/js/pages/admin/services/academic-advising-logs/columns.tsx +++ b/resources/js/pages/admin/services/academic-advising-logs/columns.tsx @@ -58,7 +58,7 @@ export function createAcademicAdvisingLogColumns( }, { accessorKey: 'lecturer.user.profile.full_name', - header: () => Pembimbing Akademik, + header: () => Dosen, cell: ({ row }) => { const lecturer = row.original.lecturer; diff --git a/resources/js/pages/admin/services/academic-advising-logs/index.tsx b/resources/js/pages/admin/services/academic-advising-logs/index.tsx index 1672227..b951e4d 100644 --- a/resources/js/pages/admin/services/academic-advising-logs/index.tsx +++ b/resources/js/pages/admin/services/academic-advising-logs/index.tsx @@ -258,7 +258,7 @@ function ViewDetailDialog({

{log.lecturer?.user?.profile?.full_name ?? @@ -338,7 +338,7 @@ function AdvisingLogFields({ <>