auth dan user profile

This commit is contained in:
2026-07-17 11:19:09 +07:00
parent 0c289ec244
commit e316d064ef
11 changed files with 188 additions and 28 deletions
@@ -28,9 +28,15 @@ class AuthController extends Controller
public function createAccount(Request $request)
{
$credentials = $request->validate([
'username' => 'required|string|max:255|unique:users,username',
'username' => 'required|string|min:6|max:255|unique:users,username',
'email' => 'required|string|email|max:255|unique:users,email',
'password' => 'required|string|min:8|confirmed',
], [
'username.unique' => 'Nama pengguna sudah digunakan.',
'username.min' => 'Nama pengguna minimal 6 karakter.',
'email.unique' => 'Email sudah digunakan.',
'password.confirmed' => 'Konfirmasi password tidak cocok.',
'password.min' => 'Password minimal 8 karakter.',
]);
$user = User::create([
@@ -89,6 +95,9 @@ class AuthController extends Controller
$request->validate([
'email_username' => 'required|string',
'password' => 'required|string',
], [
'email_username.required' => 'Email atau username harus diisi.',
'password.required' => 'Password harus diisi.',
]);
$login = $request->input('email_username');
@@ -99,18 +99,20 @@ class UserController extends Controller
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'username' => ['required', 'string', 'max:255', 'unique:users,username'],
'username' => ['required', 'string', 'max:255', 'min:6', 'unique:users,username'],
'nama' => ['required', 'string', 'max:255'],
'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],
'password' => ['required', 'string', 'min:8', 'confirmed'],
'role' => ['required', 'string'],
'telepon' => ['required', 'max:13'],
'desa_kelurahan_id' => ['required'],
'desa_kelurahan_id' => ['nullable', 'exists:desa_kelurahan,id'],
'ktp' => ['nullable', 'min:16', 'max:16'],
'kk' => ['nullable', 'min:16', 'max:16'],
'file_ktp' => ['nullable', 'file', 'mimes:jpeg,jpg,png,pdf', 'max:2048'],
'file_kk' => ['nullable', 'file', 'mimes:jpeg,jpg,pdf,png', 'max:2048'],
], [
'username.unique' => 'Nama pengguna sudah digunakan.',
'username.min' => 'Nama pengguna minimal 6 karakter.',
'password.confirmed' => 'Konfirmasi password tidak cocok!',
'password.min' => 'Password minimal 8 karakter!',
'email.unique' => 'Email sudah terdaftar.',
@@ -64,12 +64,26 @@ class ProfileController extends Controller
$validator = Validator::make($request->all(), [
'nama' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255'],
'telepon' => ['required', 'max:13'],
'desa_kelurahan_id' => ['required'],
'telepon' => ['nullable', 'max:13'],
'desa_kelurahan_id' => ['nullable', 'exists:master_desa_kelurahan,id'],
'ktp' => ['nullable', 'min:16', 'max:16'],
'file_ktp' => ['nullable', 'file', 'mimes:jpeg,jpg,png,pdf', 'max:2048'],
'kk' => ['nullable', 'min:16', 'max:16'],
'file_kk' => ['nullable', 'file', 'mimes:jpeg,jpg,png,pdf', 'max:2048'],
], [
'nama.required' => 'Nama wajib diisi.',
'email.required' => 'Email wajib diisi.',
'email.email' => 'Format email tidak sesuai.',
'telepon.max' => 'Nomor telepon tidak sesuai.',
'desa_kelurahan_id.exists' => 'Desa kelurahan tidak ditemukan.',
'ktp.min' => 'KTP harus terdiri dari 16 digit.',
'ktp.max' => 'KTP harus terdiri dari 16 digit.',
'kk.min' => 'KK harus terdiri dari 16 digit.',
'kk.max' => 'KK harus terdiri dari 16 digit.',
'file_ktp.mimes' => 'Format file harus dalam bentuk JPEG, JPG, PNG, atau PDF.',
'file_kk.mimes' => 'Format file harus dalam bentuk JPEG, JPG, PNG, atau PDF.',
'file_ktp.max' => 'Ukuran file maksimal 2MB.',
'file_kk.max' => 'Ukuran file maksimal 2MB.',
]);
if ($validator->fails()) {
@@ -143,12 +157,31 @@ class ProfileController extends Controller
$validator = Validator::make($request->all(), [
'nama' => ['required', 'string', 'max:255'],
'email' => ['required', 'email', 'max:255'],
'telepon' => ['required', 'max:13'],
'desa_kelurahan_id' => ['required'],
'telepon' => ['nullable', 'max:13'],
'desa_kelurahan_id' => ['nullable', 'exists:master_desa_kelurahan,id'],
'ktp' => ['nullable', 'min:16', 'max:16'],
'file_ktp' => ['nullable', 'file', 'mimes:jpeg,jpg,png,pdf', 'max:2048'],
'kk' => ['nullable', 'min:16', 'max:16'],
'file_kk' => ['nullable', 'file', 'mimes:jpeg,jpg,png,pdf', 'max:2048'],
], [
'nama.required' => 'Nama harus diisi.',
'nama.string' => 'Nama harus berupa string.',
'nama.max' => 'Nama tidak boleh lebih dari 255 karakter.',
'email.required' => 'Email harus diisi.',
'email.email' => 'Email harus berupa alamat email yang valid.',
'email.max' => 'Email tidak boleh lebih dari 255 karakter.',
'telepon.max' => 'Nomor telepon tidak boleh lebih dari 13 karakter.',
'desa_kelurahan_id.exists' => 'Desa kelurahan tidak ditemukan.',
'ktp.min' => 'Nomor KTP harus terdiri dari 16 karakter.',
'ktp.max' => 'Nomor KTP harus terdiri dari 16 karakter.',
'kk.min' => 'Nomor KK harus terdiri dari 16 karakter.',
'kk.max' => 'Nomor KK harus terdiri dari 16 karakter.',
'file_ktp.file' => 'File harus berupa file.',
'file_ktp.mimes' => 'File harus berupa file dengan ekstensi jpeg, jpg, png, atau pdf.',
'file_ktp.max' => 'Ukuran file tidak boleh lebih dari 2MB.',
'file_kk.file' => 'File harus berupa file.',
'file_kk.mimes' => 'File harus berupa file dengan ekstensi jpeg, jpg, png, atau pdf.',
'file_kk.max' => 'Ukuran file tidak boleh lebih dari 2MB.',
]);
if ($validator->fails()) {