From 2850902c641e38b942292a45810d44e68d52fd2a Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Thu, 19 Sep 2024 14:49:13 +0700 Subject: [PATCH] Update E-Sign --- app/Http/Controllers/UsersController.php | 38 +++++++++-- app/Http/Requests/User.php | 5 +- app/Models/User.php | 1 + .../2024_09_18_202452_update_users_table.php | 28 ++++++++ resources/views/users/create.blade.php | 12 +++- resources/views/users/profile.blade.php | 64 +++++++++++++++++++ routes/breadcrumbs.php | 5 ++ routes/web.php | 1 + 8 files changed, 145 insertions(+), 9 deletions(-) create mode 100644 database/migrations/2024_09_18_202452_update_users_table.php create mode 100644 resources/views/users/profile.blade.php diff --git a/app/Http/Controllers/UsersController.php b/app/Http/Controllers/UsersController.php index 28ee488..1c265bc 100644 --- a/app/Http/Controllers/UsersController.php +++ b/app/Http/Controllers/UsersController.php @@ -3,7 +3,9 @@ namespace Modules\Usermanagement\Http\Controllers; use App\Http\Controllers\Controller; + use Exception; use Illuminate\Http\Request; + use Illuminate\Support\Facades\Auth; use Maatwebsite\Excel\Facades\Excel; use Modules\Lpj\Models\Branch; use Modules\Usermanagement\Exports\UsersExport; @@ -158,12 +160,31 @@ //abort(403, 'Sorry! You are not allowed to update users.'); } - $user = User::find($id); - $user->update($request->all()); + $validated = $request->validated(); - if ($request->roles) { - $user->roles()->detach(); - $user->assignRole($request->roles); + if($validated) { + try{ + $user = User::find($id); + if ($request->hasFile('sign')) { + $sign = $request->file('sign'); + + $signName = time() . '.' . $sign->getClientOriginalExtension(); + + $sign->storeAs( + 'public/signatures/' . $user->id . '/', + $signName, + ); + + $validated['sign'] = $signName; + } + $user->update($validated); + if ($request->roles) { + $user->roles()->detach(); + $user->assignRole($request->roles); + } + } catch (Exception $e) { + return redirect()->back()->withErrors(['error' => 'Failed to update user. Please try again.']); + } } return redirect()->route('users.index')->with('success', 'User updated successfully.'); @@ -226,7 +247,6 @@ if ($validated) { $user = User::create($validated); - if ($user) { if ($request->roles) { $user->assignRole($request->roles); @@ -261,4 +281,10 @@ return Excel::download(new UsersExport, 'users.xlsx'); } + public function profile() + { + $user = Auth::user(); + return view('usermanagement::users.profile', compact('user')); + } + } diff --git a/app/Http/Requests/User.php b/app/Http/Requests/User.php index 57a7672..b5e8e48 100644 --- a/app/Http/Requests/User.php +++ b/app/Http/Requests/User.php @@ -24,9 +24,10 @@ 'name' => 'required|string|max:255', 'branch_id' => 'nullable|exists:branches,id', 'profile_photo_path' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', + 'sign' => 'nullable|image|mimes:jpeg,png,jpg|max:2048', ]; - if ($this->password) { + if ($this->password !==null) { $rules['password'] = 'required|string|min:8|confirmed'; } @@ -43,7 +44,7 @@ public function passedValidation() { - if ($this->password!=='') { + if ($this->password !== null) { $this->merge([ 'password' => Hash::make($this->password), ]); diff --git a/app/Models/User.php b/app/Models/User.php index e458631..30c2ec4 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -44,6 +44,7 @@ 'profile_photo_path', 'last_login_at', 'last_login_ip', + 'sign' ]; /** diff --git a/database/migrations/2024_09_18_202452_update_users_table.php b/database/migrations/2024_09_18_202452_update_users_table.php new file mode 100644 index 0000000..510da7c --- /dev/null +++ b/database/migrations/2024_09_18_202452_update_users_table.php @@ -0,0 +1,28 @@ +string('sign')->nullable()->after('branch_id'); + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('users', function (Blueprint $table) { + $table->dropColumn('sign'); + }); + } +}; diff --git a/resources/views/users/create.blade.php b/resources/views/users/create.blade.php index 1da7273..e6959ee 100644 --- a/resources/views/users/create.blade.php +++ b/resources/views/users/create.blade.php @@ -7,7 +7,7 @@ @section('content')
@if(isset($user->id)) -
+ @method('PUT') @else @@ -89,6 +89,16 @@ @enderror
+ @if(isset($user->id)) +
+ +
+ +
+
+ @endif