Skip to content

Commit

Permalink
add kepala bengkel role
Browse files Browse the repository at this point in the history
  • Loading branch information
akechi17 committed Aug 13, 2024
1 parent 0ad671b commit b66fdbb
Show file tree
Hide file tree
Showing 11 changed files with 146 additions and 34 deletions.
3 changes: 2 additions & 1 deletion app/Exports/StudentsExport.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ private function getData($search = null, $status = null, $school = null, $depart
{
$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');
$isMentor = auth()->user()->hasRole('mentor');

$users = User::whereRelation('roles', 'name', 'student');
Expand All @@ -70,7 +71,7 @@ private function getData($search = null, $status = null, $school = null, $depart
$query->where('school_id', auth()->user()->schools()->first()->id);
});
}
if ($isKaprog) {
if ($isKaprog || $isKabeng) {
$users = $users->kaprog(auth()->user()->departments()->first()->id);
}
if ($isMentor) {
Expand Down
9 changes: 6 additions & 3 deletions app/Http/Controllers/CompanyController.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,12 @@ public function getData($school = null, $department = null, $search = null, $sta
$isAdmin = auth()->user()->hasRole('admin') || auth()->user()->hasRole('super-admin');
$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');
$isMentor = auth()->user()->hasRole('mentor');

if (!$isMentor) {
$school ??= auth()->user()?->schools()?->first()?->id;
$department = $isKaprog
$department = $isKaprog || $isKabeng
? auth()->user()->departments()->first()->id
: $department;
}
Expand Down Expand Up @@ -134,8 +135,9 @@ public function search(Request $request)
public function create()
{
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');

$departments = $isKaprog
$departments = $isKaprog || $isKabeng
? auth()->user()->departments()->get()
: Department::all();

Expand Down Expand Up @@ -198,8 +200,9 @@ public function edit($id)
$id = decrypt($id);
$company = Company::findOrFail($id);
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');

$departments = $isKaprog
$departments = $isKaprog || $isKabeng
? auth()->user()->departments()->get()
: Department::all();

Expand Down
3 changes: 2 additions & 1 deletion app/Http/Controllers/DashboardController.php
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,11 @@ public function index()
$user = auth()->user();
$isManager = $user->hasRole('manager');
$isKaprog = $user->hasRole('kepala program');
$isKabeng = $user->hasRole('kepala bengkel');
$isMentor = $user->hasRole('mentor');
$isTeacher = $user->hasRole('teacher');

if ($isKaprog) {
if ($isKaprog || $isKabeng) {
$departmentId = $user->departments()->first()->id;
$students = User::kaprog($departmentId)->count();
$companies = Company::where('department_id', $departmentId)->count();
Expand Down
9 changes: 5 additions & 4 deletions app/Http/Controllers/NewsController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ public function index(Request $request)

if ($category == 'department') {
if (! $departmentId) {
if (auth()->user()->hasRole('kepala program')) {
if (auth()->user()->hasRole('kepala program') || auth()->user()->hasRole('kepala bengkel')) {
$departmentId = auth()->user()->departments()->first()->id;
} else {
$departmentId = Department::where('school_id', $schoolId)->first()->id;
Expand All @@ -48,7 +48,8 @@ public function index(Request $request)
$news->withPath('/news')->withQueryString();

$isKaprog = auth()->user()->hasRole('kepala program');
$departments = $isKaprog
$isKabeng = auth()->user()->hasRole('kepala bengkel');
$departments = $isKaprog || $isKabeng
? auth()->user()->departments()->pluck('name', 'id')
: Department::where('school_id', $schoolId)->pluck('name', 'id');

Expand Down Expand Up @@ -78,7 +79,7 @@ public function create(Request $request)

if ($category == 'department') {
if (! $departmentId) {
if (auth()->user()->hasRole('kepala program')) {
if (auth()->user()->hasRole('kepala program') || auth()->user()->hasRole('kepala bengkel')) {
$departmentId = auth()->user()->departments()->first()->id;
} else {
$departmentId = Department::where('school_id', $schoolId)->first()->id;
Expand All @@ -90,7 +91,7 @@ public function create(Request $request)

! in_array($category, $acceptedCategory) ? abort(404) : $category = 'App\\Models\\' . ucfirst($category);

$departments = auth()->user()->hasRole('kepala program')
$departments = auth()->user()->hasRole('kepala program') || auth()->user()->hasRole('kepala bengkel')
? auth()->user()->departments()->pluck('name', 'id')
: Department::where('school_id', $schoolId)->pluck('name', 'id');

Expand Down
3 changes: 2 additions & 1 deletion app/Http/Controllers/NotificationController.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,8 @@ public function endDateReminder($day)
$query->where('department_id', $department->id);
})
->whereHas('roles', function ($query) {
$query->where('name', 'kepala program');
$query->where('name', 'kepala bengkel')
->orWhere('name', 'kepala program');
})
->get();

Expand Down
3 changes: 2 additions & 1 deletion app/Http/Controllers/StudentController.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ public function getData($search=null, $status=null, $school=null, $department=nu
{
$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');
$isTeacher = auth()->user()->hasRole('teacher');
$isMentor = auth()->user()->hasRole('mentor');

Expand All @@ -40,7 +41,7 @@ public function getData($search=null, $status=null, $school=null, $department=nu
$query->where('school_id', auth()->user()->schools()->first()->id);
});
}
if ($isKaprog) {
if ($isKaprog || $isKabeng) {
$users = $users->kaprog(auth()->user()->departments()->first()->id);
}
if ($isTeacher) {
Expand Down
43 changes: 41 additions & 2 deletions app/Http/Controllers/UserController.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ public function getData($search=null, $status=null, $school=null, $department=nu
$isSuperadmin = auth()->user()->hasRole('super-admin');
$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');
$isTeacher = auth()->user()->hasRole('teacher');

$users = User::query();
Expand Down Expand Up @@ -55,7 +56,7 @@ public function getData($search=null, $status=null, $school=null, $department=nu
if ($isManager) {
$users->manager(auth()->user()->schools()->first()->id);
}
if ($isKaprog) {
if ($isKaprog || $isKabeng) {
$users->kaprog(auth()->user()->departments()->first()->id);
}
if ($isTeacher) {
Expand Down Expand Up @@ -133,6 +134,7 @@ public function create()
{
$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');

if ($isManager) {
$roles = Role::where('name', '!=', 'admin')->where('name', '!=', 'super-admin')->pluck('name', 'id');
Expand Down Expand Up @@ -163,6 +165,18 @@ public function create()
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
} elseif ($isKabeng) {
$roles = Role::where('name', 'mentor')->pluck('name', 'id');
$schoolId = auth()->user()->schools()->first()->id;
$schools = School::find($schoolId)->pluck('name', 'id');
$departmentId = auth()->user()->departments()->first()->id;
$departments = Department::where('id', $departmentId)->pluck('name', 'id');
$courses = Course::where('department_id', $departmentId)->pluck('name', 'id');
$companies = Company::where('department_id', $departmentId)->get();
$modelIds = DB::table('model_has_roles')
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
} else {
$roles = auth()->user()->hasRole('super-admin')
? Role::pluck('name', 'id')
Expand Down Expand Up @@ -274,6 +288,7 @@ public function edit($id)

$isManager = auth()->user()->hasRole('manager');
$isKaprog = auth()->user()->hasRole('kepala program');
$isKabeng = auth()->user()->hasRole('kepala bengkel');

if ($isManager) {
$roles = Role::where('name', '!=', 'admin')->where('name', '!=', 'super-admin')->pluck('name', 'id');
Expand All @@ -288,6 +303,10 @@ public function edit($id)
->join('schools', 'departments.school_id', '=', 'schools.id')
->where('schools.id', $schoolId)
->get();
$modelIds = DB::table('model_has_roles')
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
} elseif ($isKaprog) {
$roles = Role::where('name', 'student')->orWhere('name', 'kepala program')->orWhere('name', 'mentor')->pluck('name', 'id');
$schoolId = auth()->user()->schools()->first()->id;
Expand All @@ -296,6 +315,22 @@ public function edit($id)
$departments = Department::where('id', $departmentId)->pluck('name', 'id');
$courses = Course::where('department_id', $departmentId)->pluck('name', 'id');
$companies = Company::where('department_id', $departmentId)->get();
$modelIds = DB::table('model_has_roles')
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
} elseif ($isKabeng) {
$roles = Role::where('name', 'mentor')->pluck('name', 'id');
$schoolId = auth()->user()->schools()->first()->id;
$schools = School::find($schoolId)->pluck('name', 'id');
$departmentId = auth()->user()->departments()->first()->id;
$departments = Department::where('id', $departmentId)->pluck('name', 'id');
$courses = Course::where('department_id', $departmentId)->pluck('name', 'id');
$companies = Company::where('department_id', $departmentId)->get();
$modelIds = DB::table('model_has_roles')
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
} else {
$roles = auth()->user()->hasRole('super-admin')
? Role::pluck('name', 'id')
Expand All @@ -305,9 +340,13 @@ public function edit($id)
$departments = Department::pluck('name', 'id');
$courses = Course::pluck('name', 'id');
$companies = Company::all();
$modelIds = DB::table('model_has_roles')
->where('role_id', 6)
->pluck('model_id');
$students = User::whereIn('id', $modelIds)->get();
}

return view('users.edit', compact('user', 'schools', 'departments', 'courses', 'roles', 'companies'));
return view('users.edit', compact('user', 'schools', 'departments', 'courses', 'roles', 'companies', 'students'));
} catch (\Exception $e) {
return redirect()->route('users.index')
->with('error', 'User tidak ditemukan');
Expand Down
2 changes: 1 addition & 1 deletion client
Submodule client updated from 7cfecc to 71d208
6 changes: 3 additions & 3 deletions resources/views/companies/index.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 w-16">
Phone
</th>
@role('superadmin|admin|manager|kepala program|student')
@role('superadmin|admin|manager|kepala program|kepala bengkel|student')
<th class="text-center text-uppercase text-secondary text-xxs font-weight-bolder opacity-7 w-5">
Rating
</th>
Expand All @@ -53,7 +53,7 @@
@endif
</a>
@endcan
@role('superadmin|admin|manager|kepala program')
@role('superadmin|admin|manager|kepala program|kepala bengkel')
@can('review-list')
<a href="{{ route('reviews.companies.index', ['company' => encrypt($data->id)]) }}"
class="btn btn-info text-xs" data-bs-toggle="tooltip" data-bs-placement="bottom"
Expand Down Expand Up @@ -87,7 +87,7 @@ class="bi bi-trash"></i></button>
@php
$rating = number_format($data->reviews()?->avg('rating'), 1);
@endphp
@role('superadmin|admin|manager|kepala program|student')
@role('superadmin|admin|manager|kepala program|kepala bengkel|student')
<td class="text-sm text-center">
@for($i = 0; $i < $rating; $i++)
<i class="bi bi-star-fill text-warning" style="font-size: 0.7rem;"></i>
Expand Down
2 changes: 1 addition & 1 deletion resources/views/users/create.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@
roleSelect.addEventListener('change', function() {
const selectedRole = roleSelect.options[roleSelect.selectedIndex].text.toLowerCase();
if (selectedRole === 'kepala program') {
if (selectedRole === 'kepala program' || selectedRole === 'kepala bengkel') {
departmentWrapper.classList.remove('d-none');
courseWrapper.classList.add('d-none');
companyWrapper.classList.add('d-none');
Expand Down
Loading

0 comments on commit b66fdbb

Please sign in to comment.