Skip to content

Conversation

@pandigresik
Copy link
Contributor

Deskripsi

  • Deskripsi detail mencakup semua perubahan yang dilakukan:
    • Validasi akses di UserController
    • Aktivasi tombol Profile di header
    • Penyembunyian field Pengurus untuk non super-admin
    • Pemisahan route untuk akses profil
    • Penambahan redirect khusus untuk non super-admin

Saya akan memberikan detail perubahan pada setiap file yang telah di-commit:

1. app/Http/Controllers/User/UserController.php

Perubahan:

  • Baris 24: Menambahkan import use Illuminate\Support\Facades\Auth;
  • Baris 124-128: Menambahkan validasi akses pada method edit():
    if(!Auth::user()->hasRole(['super-admin'])){
        if($id != Auth::user()->id){
            abort(403, 'Anda tidak berhak mengubah user tersebut');
        }
    }
  • Baris 156-158: Menambahkan redirect khusus untuk non super-admin pada method update():
    if(!Auth::user()->hasRole(['super-admin'])){
        return redirect()->route('dashboard')->with('success', 'User berhasil diperbarui!');    
    }

Fungsionalitas:

  • Memastikan hanya super-admin yang dapat mengedit profil pengguna lain
  • Pengguna biasa hanya dapat mengedit profilnya sendiri (berdasarkan ID)
  • Setelah update, non super-admin akan diarahkan ke dashboard, bukan ke halaman index user

2. resources/views/layouts/fragments/header.blade.php

Perubahan:

  • Baris 81: Mengaktifkan tombol Profile yang sebelumnya dikomentari:
    // Sebelumnya:
    {{-- <a href="#" class="btn btn-default btn-flat">Profile</a> --}}
    
    // Menjadi:
    <a href="{{ route('setting.user.edit', Auth::id()) }}" class="btn btn-default btn-flat">Profile</a>

Fungsionalitas:

  • Menambahkan link langsung ke halaman edit profil pengguna yang sedang login
  • Menggunakan ID pengguna yang sedang login sebagai parameter route

3. resources/views/user/form.blade.php

Perubahan:

  • Baris 2: Menambahkan direktif @role('super-admin') di awal form
  • Baris 18: Menambahkan direktif @endrole di akhir field Pengurus

Fungsionalitas:

  • Field "Pengurus" sekarang hanya akan ditampilkan untuk pengguna dengan role super-admin
  • Pengguna biasa tidak akan melihat atau dapat mengubah field ini

4. routes/web.php

Perubahan:

  • Baris 844-845: Memindahkan route edit dan update keluar dari grup middleware yang ada
  • Baris 849-853: Membuat grup route baru tanpa middleware untuk edit dan update:
    Route::group(['prefix' => 'user', 'controller' => UserController::class], function () {                
        Route::get('edit/{id}', 'edit')->name('setting.user.edit');
        Route::put('update/{id}', 'update')->name('setting.user.update');                
        Route::get('photo-profil/{id}', 'photo')->name('setting.user.photo');
        Route::put('update-photo/{id}', 'updatePhoto')->name('setting.user.uphoto');
    });

Fungsionalitas:

  • Memisahkan route edit dan update dari grup middleware yang membatasi akses
  • Memungkinkan pengguna biasa mengakses halaman edit profil mereka sendiri
  • Route photo-profil dan update-photo juga dipindahkan untuk konsistensi

Ringkasan Implementasi

Perubahan ini secara keseluruhan mengimplementasikan fitur profil pengguna dengan kontrol akses yang ketat:

  1. Super-admin dapat mengedit profil siapa pun dan melihat semua field
  2. Pengguna biasa hanya dapat mengedit profilnya sendiri dengan field yang terbatas
  3. Akses navigasi ke profil tersedia langsung dari header
  4. Pengalihan halaman yang berbeda berdasarkan role setelah update profil

Masalah Terkait (Related Issue)

Langkah untuk mereproduksi (Steps to Reproduce)

Daftar Periksa (Checklist)

Tangkapan Layar (Screenshot)

simplescreenrecorder-2025-12-07_11.41.49.mp4

- Menambahkan validasi akses di UserController untuk membatasi pengeditan profil
  * Hanya super-admin yang dapat mengedit profil pengguna lain
  * Pengguna biasa hanya dapat mengedit profilnya sendiri
- Mengaktifkan tombol Profile di header untuk akses cepat ke halaman profil
- Menyembunyikan field Pengurus di form user untuk non super-admin
- Memisahkan route edit dan update user dari grup middleware untuk akses profil
- Menambahkan redirect ke dashboard untuk non super-admin setelah update profil

Change-Id: I1234567890abcdef
@vickyrolanda vickyrolanda changed the base branch from master to dev December 14, 2025 22:07
@vickyrolanda vickyrolanda merged commit bcb864b into dev Dec 14, 2025
@vickyrolanda vickyrolanda deleted the dev-profile branch December 14, 2025 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants