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