From 4550ab2e4399842aa22752ff974bf9888bb31e42 Mon Sep 17 00:00:00 2001 From: Andri Desmana Date: Tue, 13 Jun 2023 17:39:50 +0700 Subject: [PATCH] Command Admin CLI --- app/Console/Commands/CreateAdminCommand.php | 91 +++++++++++++++++++++ database/seeders/AdminSeeder.php | 38 --------- database/seeders/DatabaseSeeder.php | 2 - database/seeders/LaundrySettingSeeder.php | 25 ------ readme.md | 8 +- 5 files changed, 95 insertions(+), 69 deletions(-) create mode 100644 app/Console/Commands/CreateAdminCommand.php delete mode 100644 database/seeders/AdminSeeder.php delete mode 100644 database/seeders/LaundrySettingSeeder.php diff --git a/app/Console/Commands/CreateAdminCommand.php b/app/Console/Commands/CreateAdminCommand.php new file mode 100644 index 00000000..ec11f36e --- /dev/null +++ b/app/Console/Commands/CreateAdminCommand.php @@ -0,0 +1,91 @@ +ask("Nama untuk Administrator"); + $admin['email'] = $this->ask("Email untuk Administrator"); + $admin['status'] = 'Active'; + $admin['auth'] = 'Admin'; + $admin['password'] = $this->secret("Password untuk Administrator"); + $admin['password_confirmation'] = $this->secret("Konfirmasi Password untuk Administrator"); + + $cekUser = User::where('email', $admin['email'])->where('auth','Admin')->first(); + if($cekUser) { + $this->error("User Administrator sudah dibuat!"); + return -1; + } + + $validator = Validator::make($admin,[ + 'name' => ['required','string','max:255'], + 'email' => ['required','string','email','max:255','unique:'.User::class], + 'password' => ['required','confirmed',Password::defaults()] + ]); + + if ($validator->fails()) { + foreach ($validator->errors()->all() as $error) { + $this->error($error); + } + + return -1; + } + DB::transaction(function() use($admin, $cekUser){ + $role = Role::firstOrNew(['name' => 'Admin']); + $role->name = 'Admin'; + $role->save(); + + $admin['password'] = bcrypt($admin['password']); + $newAdmin = User::create($admin); + $newAdmin->assignRole('Admin'); + + $getIdAdmin = User::where('auth','Admin')->first(); + + $setting = new LaundrySetting; + $setting->user_id = $getIdAdmin->id; + $setting->target_day = 0; + $setting->target_month = 0; + $setting->target_year = 0; + $setting->save(); + + $notif = new notifications_setting; + $notif->user_id = $setting->user_id; + $notif->telegram_order_masuk = 0; + $notif->telegram_order_selesai = 0; + $notif->email = 0; + $notif->save(); + }); + + $this->info("User " .$admin['email']. " Berhasil dibuat :)"); + } +} diff --git a/database/seeders/AdminSeeder.php b/database/seeders/AdminSeeder.php deleted file mode 100644 index 6428ce1a..00000000 --- a/database/seeders/AdminSeeder.php +++ /dev/null @@ -1,38 +0,0 @@ - 'Administrator', - 'email' => 'admin@laundry.com', - 'status' => 'Active', - 'auth' => 'Admin', - 'password' => bcrypt('123456') - ]); - - // Set role admin - $role = Role::create(['name' => 'Admin']); - $user->assignRole('Admin'); - - // Set default setting notif - $notif = notifications_setting::create([ - 'user_id' => $user->id, - 'telegram_order_masuk' => 0, - 'telegram_order_selesai' => 0, - 'email' => 0 - ]); - } -} diff --git a/database/seeders/DatabaseSeeder.php b/database/seeders/DatabaseSeeder.php index d7916bcb..0189cf27 100644 --- a/database/seeders/DatabaseSeeder.php +++ b/database/seeders/DatabaseSeeder.php @@ -12,9 +12,7 @@ class DatabaseSeeder extends Seeder */ public function run() { - $this->call(AdminSeeder::class); $this->call(SettingPageSeeder::class); - $this->call(LaundrySettingSeeder::class); $this->call(RoleSeeder::class); $this->call(IndoBankSeeder::class); $this->call(addRoleSeeder::class); diff --git a/database/seeders/LaundrySettingSeeder.php b/database/seeders/LaundrySettingSeeder.php deleted file mode 100644 index 12a4df37..00000000 --- a/database/seeders/LaundrySettingSeeder.php +++ /dev/null @@ -1,25 +0,0 @@ -first(); - - $set = LaundrySetting::create([ - 'user_id' => $user->id, - 'target_day' => 0, - 'target_month' => 0, - 'target_year' => 0, - ]); - } -} diff --git a/readme.md b/readme.md index d6c11114..4fcdad8d 100644 --- a/readme.md +++ b/readme.md @@ -7,7 +7,7 @@ * Version 3.1 use PHP 8.0 (Framework Laravel 9) [Versi 3.1](https://github.com/andes2912/laundry/tree/3.1) * Database (eg: MySQL) * Web Server (eg: Apache, Nginx, IIS) - + ## Framework Laundry dibangun menggunakan [Laravel](http://laravel.com), the best existing PHP framework, as the foundation framework. @@ -20,9 +20,9 @@ Laundry dibangun menggunakan [Laravel](http://laravel.com), the best existing PH * Run `cp .env.example .env` for create .env file * Run `php artisan migrate --seed` for migration database * Run `php artisan storage:link` for create folder storage -* Detail login, Email : `admin@laundry.com` Password `123456` +* Run `php artisan create:admin` for create user Administrator * Run `php artisan queue:listen` for run queue - + Note : Aplikasi ini akan terus saya update.
Kalau ada pertanyaan bisa kontak aku di email ini andridesmana29@outlook.com

@@ -58,7 +58,7 @@ Kalau ada pertanyaan bisa kontak aku di email ini andridesmana29@outlook.com< * Dashboard Customer * Ubah thema (untuk saat ini hanya ada Dark & White) * Notification List - + ## Sponsors