Skip to content

Fix: Administrator utama bisa mengubah email hanya untuk akunnya sendiri - #1772

Merged
analisopendesa merged 5 commits into
rilis-devfrom
fix/izinkan_ubah_email
Oct 14, 2026
Merged

analisopendesa merged 5 commits into
rilis-devfrom
fix/izinkan_ubah_email

Conversation

@pandigresik

Copy link
Copy Markdown
Contributor

Pull Request: Fix: Administrator utama bisa mengubah email hanya untuk akunnya sendiri

Description

Sebelumnya field Email pada form edit pengguna (resources/views/user/form.blade.php) selalu readonly untuk semua kondisi edit, sehingga administrator utama tidak bisa mengubah email akunnya sendiri. PR ini membuat field Email dapat diubah hanya ketika pengguna yang sedang login mengedit datanya sendiri, sedangkan saat mengedit pengguna lain field Email tetap readonly.

Changes made:

  1. Fix (View): Kondisi field Email di resources/views/user/form.blade.php diubah dari empty($user) menjadi empty($user) || auth()->id() == $user->id, sehingga email editable saat edit profil sendiri
  2. Test (Feature): Menambahkan test_edit_form_email_is_readonly_when_editing_another_user — memastikan email tetap readonly saat super-admin mengedit user lain
  3. Test (Feature): Menambahkan test_edit_form_email_is_editable_when_editing_own_profile — memastikan email tidak readonly saat user mengedit dirinya sendiri (test ini gagal sebelum perbaikan, lulus sesudahnya / TDD)
  4. Refactor (Test): Penyesuaian pint pada tests/Feature/UserControllerTest.php: urutan import, hapus import Hash yang tidak terpakai, dan penamaan method test_get_data_user_returns_json_response (snake_case)

Reason for change:

  • Point 1: Field Email selalu readonly pada mode edit membuat administrator utama tidak dapat memperbarui email akunnya sendiri (issue Bug: Administrator utama tidak bisa edit email #1771)
  • Point 2: Pembatasan "hanya bisa diubah untuk diri sendiri" menjaga email login/OTP tetap berada di bawah kendali pemilik akun
  • Point 3: Perubahan hanya di lapisan tampilan, tanpa mengubah aturan validasi UserRequest maupun alur update controller

Impact of change:

✅ Administrator utama: Dapat mengubah email akunnya sendiri melalui menu profil
✅ Keamanan: Saat mengedit user lain, field Email tetap terkunci (readonly)
✅ Regresi: Seluruh test CRUD pengguna tetap lulus (26 test)

Related Issue

  • Solution for fix related to issue #1771

Steps to Reproduce

Before fix (problem):

  1. Login sebagai administrator utama
  2. Buka menu Pengaturan → Pengguna, klik Ubah pada akun sendiri
  3. Perhatikan field Email
  4. ❌ Field Email selalu readonly, tidak bisa diubah
  5. ❌ Tidak ada cara mengubah email akun sendiri dari halaman edit

After fix (solution):

  1. Login sebagai administrator utama
  2. Buka menu Pengaturan → Pengguna, klik Ubah pada akun sendiri
  3. Perhatikan field Email
  4. ✅ Field Email dapat diedit dan disimpan
  5. ✅ Saat mengedit pengguna lain, field Email tetap readonly

Testing on related features:

  • Form tambah pengguna (email editable) ✅ Working
  • Form edit pengguna lain (email readonly) ✅ Working
  • Update profil sendiri (nama, telepon, alamat, foto) ✅ Working

Checklist

  • I have complied with script writing rules
  • I have followed pull request review process
  • I have created [unit test/integration test] to verify the fix
  • Manual testing has been done in development environment
  • No console errors or warnings
  • Code has been reviewed by [at least 1 person]

Technical Details

Technical Explanation

Perubahan kondisi pada bagian Email di resources/views/user/form.blade.php:

- @if (empty($user))
+ @if (empty($user) || auth()->id() == $user->id)
      {!! html()->text('email')->class('form-control')->placeholder('Email')->value(old('email', isset($user) ? $user->email : '')) !!}
  @else
      {!! html()->text('email', old('email', $user->email))->class('form-control')->placeholder('Email')->isReadonly() !!}
  @endif
  • Mode create ($user kosong): email tetap editable seperti sebelumnya
  • Mode edit diri sendiri (auth()->id() == $user->id): email editable (perbaikan bug)
  • Mode edit user lain: email tetap readonly

Catatan untuk reviewer: penguncian ini hanya berlaku di tampilan. UserController::update() beserta rules UserRequest tidak diubah, sehingga super-admin yang mengirim request manual untuk user lain masih dapat mengubah email (diperlukan keputusan terpisah bila ingin diperkuat di backend).

Configuration changes

Tidak ada perubahan konfigurasi

Dependencies added

No new dependencies

Testing

Manual Testing

  • Edit profil sendiri → field Email bisa diubah dan tersimpan
  • Edit user lain sebagai super-admin → field Email readonly
  • Tambah pengguna baru → field Email tetap editable
  • Regression: nama, telepon, telegram, foto, alamat, dan role tetap berfungsi

Automated Testing

  • Feature Test — UserControllerTest::test_edit_form_email_is_readonly_when_editing_another_user
  • Feature Test — UserControllerTest::test_edit_form_email_is_editable_when_editing_own_profile
  • php vendor/bin/pest tests/Feature/UserControllerTest.php tests/Feature/Settings/UserManagementCrudTest.php → 26 passed

Screenshots / Video

image

Before:

Field Email pada form edit selalu memiliki atribut readonly (abu-abu, tidak bisa diketik).

After:

Field Email dapat diketik saat mengedit akun sendiri; tetap readonly saat mengedit akun lain.

Breaking Changes

None

Migration Guide

Not required

References


Additional notes: Perubahan tampilan saja (1 baris Blade) + 2 test baru. Bila issue ini juga menuntut pembatasan di backend, perlu diskusi terpisah karena ada test lama test_update_updates_user_successfully_for_super_admin yang mengasumsikan super-admin dapat mengubah email user lain.

@github-actions

github-actions Bot commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1772

@analisopendesa
analisopendesa merged commit 629b2dd into rilis-dev Oct 14, 2026
@analisopendesa
analisopendesa deleted the fix/izinkan_ubah_email branch October 14, 2026 21:25
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