Mif_E31230483_KlasifikasiTomat/ADMIN_SETUP_CREDENTIALS.md

4.9 KiB

🔑 Admin Credentials - Setup Guide

⚠️ IMPORTANT BEFORE YOU START

Sebelum menjalankan migration, pastikan Anda punya backup database atau tahu email/password admin yang ingin dipertahankan.


📋 Current Admins in Database

Lihat daftar admin saat ini dengan:

php artisan tinker

# Lihat semua user
>>> User::all()

# Lihat user dengan role admin
>>> User::where('role', 'admin')->get()

# Lihat user dengan role user (akan dihapus)
>>> User::where('role', 'user')->get()

🗑️ What Migration Will Do

Cleanup Migration (2025_02_05_cleanup_users_admin_only.php) akan:

// 1. Hapus semua user dengan role 'user'
DB::table('users')->where('role', 'user')->delete();

// 2. Set role 'admin' untuk semua user yang tersisa
DB::table('users')->update(['role' => 'admin']);

Langkah-Langkah Setup

BACKUP DULU! (Sangat Penting)

# Export database (sebelum migration)
# MySQL:
mysqldump -u root -p klasifikasi_tomat > backup_before_cleanup.sql

# Atau backup via phpMyAdmin

Jalankan Migration

cd c:\Project\klasifikasi-tomat
php artisan migrate

Verify Hasil

php artisan tinker

# Check semua user adalah admin
>>> User::pluck('role')
=> Illuminate\Support\Collection {
     0 => "admin",
     1 => "admin",
     2 => "admin",
   }

# Count total
>>> User::count()
=> 3

# Check no 'user' role exists
>>> User::where('role', 'user')->count()
=> 0  // Should be 0

👥 Admin Accounts to Keep

Tentukan mana admin yang ingin dipertahankan:

Email Password Keep?
admin1@gmail.com ?????
admin@gmail.com ?????
roihan@gmail.com ????? ⚠️ ?
tomat@gmail.com ????? ⚠️ ?

🔧 If You Need to Keep Non-Admin Users

Jika ada user 'user' yang ingin dipertahankan, jangan jalankan migration!

Alternatif:

UPDATE users SET role = 'admin' WHERE email = 'user_email@gmail.com';

Option B: Jalankan manual cleanup

-- Hapus user tertentu saja
DELETE FROM users WHERE id = 5;

-- Set admin role untuk sisanya
UPDATE users SET role = 'admin' WHERE role != 'admin';

Default Admin Credentials

Setelah migration selesai:

Login URL: http://localhost:8000/admin/login

Admin Accounts (dari database):
- admin1@gmail.com (password: sesuai database)
- admin@gmail.com (password: sesuai database)
- roihan@gmail.com (password: sesuai database) - jika dipertahankan

🆕 Tambah Admin Baru Setelah Setup

Gunakan admin panel di: /admin/manage-admin

1. Login dengan admin existing
2. Pergi ke "Kelola Akun Admin"
3. Click "Tambah Admin"
4. Isi form:
   - Nama: [nama lengkap]
   - Email: [email admin baru]
   - Password: [password]
   - Role: Admin (fixed)
5. Click "Simpan"

Atau gunakan tinker:

php artisan tinker

>>> User::create([
    'name' => 'Admin Baru',
    'email' => 'admin.baru@gmail.com',
    'password' => Hash::make('password123'),
    'role' => 'admin',
    'email_verified_at' => now()
])

🔐 Reset Admin Password

Jika lupa password admin:

php artisan tinker

>>> $admin = User::where('email', 'admin@gmail.com')->first()
>>> $admin->update(['password' => Hash::make('new_password')])
>>> exit

📊 Database Snapshot Sebelum Migration

Jalankan ini sebelum migration:

php artisan tinker

# Export semua user sebelum cleanup
>>> $users = User::all();
>>> $users->toJson()

# Copy hasil untuk backup

⚠️ Troubleshooting

Q: Migration gagal

A:

php artisan migrate:status  # Lihat status migration
php artisan migrate --step  # Run one migration at a time
php artisan migrate:reset   # Reset semua migration
php artisan migrate         # Jalankan lagi

Q: Lupa password admin

A:

php artisan tinker
>>> User::find(1)->update(['password' => Hash::make('new_password')])

Q: Perlu restore dari backup

A:

# Restore database dari SQL backup
mysql -u root -p klasifikasi_tomat < backup_before_cleanup.sql

Q: Ingin undo migration

A:

php artisan migrate:rollback --step=1
# Jika perlu rollback semua:
php artisan migrate:reset

📋 Admin Setup Checklist

  • Backup database sebelum migration
  • Tentukan admin mana yang ingin dipertahankan
  • Jalankan php artisan migrate
  • Verify dengan php artisan tinker
  • Test login dengan admin account
  • Test add/edit/delete admin
  • Test upload & classification
  • Semuanya working

🎯 Summary

Admin-Only System sudah siap!

✅ Database akan di-cleanup (remove 'user' role)
✅ Semua user akan menjadi 'admin'
✅ System fokus pada administrator saja
✅ Manual admin creation via panel atau tinker
✅ No public user registration

Next: Jalankan php artisan migrate dan ikuti verification steps! 🚀