diff --git a/app/Http/Controllers/Backend/UserController.php b/app/Http/Controllers/Backend/UserController.php index 42a5a64..279c6d8 100644 --- a/app/Http/Controllers/Backend/UserController.php +++ b/app/Http/Controllers/Backend/UserController.php @@ -4,6 +4,12 @@ use App\Http\Controllers\Controller; use Illuminate\Http\Request; +use App\Models\User; +use App\Models\Role; +use App\Http\Requests\Backend\User\AddNewRequest; +use App\Http\Requests\Backend\User\UpdateRequest; +use Exception; +use Illuminate\Support\Facades\Hash; class UserController extends Controller { @@ -12,7 +18,8 @@ class UserController extends Controller */ public function index() { - // + $data = User::paginate(10); + return view('backend.user.index', compact('data')); } /** @@ -20,15 +27,41 @@ public function index() */ public function create() { - // + $role = Role::get(); + return view('backend.user.create', compact('role')); } /** * Store a newly created resource in storage. */ - public function store(Request $request) + public function store(AddNewRequest $request) { - // + try { + $data = new User(); + $data->name_en = $request->userName_en; + $data->name_bn = $request->userName_bn; + $data->email = $request->emailAddress; + $data->contact_en = $request->contactNumber_en; + $data->contact_bn = $request->contactNumber_bn; + $data->role_id = $request->roleId; + $data->language = 'en'; + $data->full_access = $request->fullAccess; + $data->status = $request->status; + $data->password = Hash::make($request->password); + + if ($request->hasFile('image')) { + $imageName = rand(111, 999) . time() . '.' . $request->image->extension(); + $request->image->move(public_path('uploads/users'), $imageName); + $data->image = $imageName; + } + if ($data->save()) + return redirect()->route('user.index')->with('success', 'Data SAVED'); + else + return redirect()->back()->withInput()->with('error', 'Please Try again'); + } catch (Exception $e) { + dd($e); + return redirect()->back()->withInput()->with('error', 'Please try again'); + } } /** @@ -42,17 +75,46 @@ public function show(string $id) /** * Show the form for editing the specified resource. */ - public function edit(string $id) + public function edit($id) { - // + $role=Role::get(); + $user=User::findOrFail(encryptor('decrypt',$id)); + return view('backend.user.edit',compact('role','user')); } /** * Update the specified resource in storage. */ - public function update(Request $request, string $id) + public function update(UpdateRequest $request, $id) { - // + try { + $data = User::findOrFail(encryptor('decrypt',$id)); + $data->name_en = $request->userName_en; + $data->name_bn = $request->userName_bn; + $data->email = $request->emailAddress; + $data->contact_en = $request->contactNumber_en; + $data->contact_bn = $request->contactNumber_bn; + $data->role_id = $request->roleId; + $data->language = 'en'; + $data->full_access = $request->fullAccess; + $data->status = $request->status; + + if($request->password) + $data->password = Hash::make($request->password); + + if ($request->hasFile('image')) { + $imageName = rand(111, 999) . time() . '.' . $request->image->extension(); + $request->image->move(public_path('uploads/users'), $imageName); + $data->image = $imageName; + } + if ($data->save()) + return redirect()->route('user.index')->with('success', 'Data SAVED'); + else + return redirect()->back()->withInput()->with('error', 'Please Try again'); + } catch (Exception $e) { + dd($e); + return redirect()->back()->withInput()->with('error', 'Please try again'); + } } /** diff --git a/app/Http/Middleware/checkRole.php b/app/Http/Middleware/checkRole.php index 98d43e7..0476131 100644 --- a/app/Http/Middleware/checkRole.php +++ b/app/Http/Middleware/checkRole.php @@ -20,7 +20,7 @@ public function handle(Request $request, Closure $next): Response if (!Session::has('userId') || Session::has('userId') == null) { return redirect()->route('logOut'); } else { - $user = User::findorFail(currentUserId()); + $user = User::find(currentUserId()); if (!$user) { return redirecty()->route('logOut'); } else if ($user->full_access == "1") { diff --git a/app/Http/Requests/Backend/User/AddNewRequest.php b/app/Http/Requests/Backend/User/AddNewRequest.php new file mode 100644 index 0000000..56bda9b --- /dev/null +++ b/app/Http/Requests/Backend/User/AddNewRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(): array + { + return [ + 'userName_en' => 'required|max:255', + 'roleId' => 'required|max:2', + 'contactNumber_en' => 'required|unique:users,contact_en', + 'emailAddress' => 'required|unique:users,email', + 'password' => 'required' + ]; + } +} diff --git a/app/Http/Requests/Backend/User/UpdateRequest.php b/app/Http/Requests/Backend/User/UpdateRequest.php new file mode 100644 index 0000000..a3c6097 --- /dev/null +++ b/app/Http/Requests/Backend/User/UpdateRequest.php @@ -0,0 +1,32 @@ +|string> + */ + public function rules(Request $r): array + { + $id = encryptor('decrypt', $r->uptoken); + return [ + 'userName_en' => 'required', + 'contactNumber_en' => 'required|unique:users,contact_en,' . $id, + 'emailAddress' => 'required|unique:users,email,' . $id, + ]; + } +} diff --git a/public/uploads/users/1501700288480.jpg b/public/uploads/users/1501700288480.jpg new file mode 100644 index 0000000..e887733 Binary files /dev/null and b/public/uploads/users/1501700288480.jpg differ diff --git a/resources/views/backend/dashboard.blade.php b/resources/views/backend/dashboard.blade.php index 0130e6b..b2abd92 100644 --- a/resources/views/backend/dashboard.blade.php +++ b/resources/views/backend/dashboard.blade.php @@ -2,7 +2,6 @@ @section('title', 'Dashboard') @section('content') -
@@ -530,7 +529,6 @@ class="la la-trash-o">
- diff --git a/resources/views/backend/layouts/app.blade.php b/resources/views/backend/layouts/app.blade.php index fcad749..0f6f66a 100644 --- a/resources/views/backend/layouts/app.blade.php +++ b/resources/views/backend/layouts/app.blade.php @@ -1,7 +1,7 @@ - + @@ -15,6 +15,8 @@ + @stack('styles') + @@ -23,426 +25,430 @@ +
- - - - - -
-
- +
+
+ +
-
- - @yield('content') + @yield('content') - - @@ -456,6 +462,8 @@ class="ti-arrow-right"> + @stack('scripts') + diff --git a/resources/views/backend/user/create.blade.php b/resources/views/backend/user/create.blade.php new file mode 100644 index 0000000..6229e06 --- /dev/null +++ b/resources/views/backend/user/create.blade.php @@ -0,0 +1,143 @@ +@extends('backend.layouts.app') +@section('title', 'Add User') + +@section('content') + + +
+ +
+ +
+
+
+

Add User

+
+
+
+ +
+
+ +
+
+
+
+
Basic Info
+
+
+
+ @csrf +
+
+
+ + +
+ @if($errors->has('userName_en')) + {{ $errors->first('userName_en') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+ @if($errors->has('contactNumber_en')) + {{ $errors->first('contactNumber_en') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+ @if($errors->has('emailAddress')) + {{ $errors->first('emailAddress') }} + @endif +
+
+
+ + +
+ @if($errors->has('roleId')) + {{ $errors->first('roleId') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+ +
+
+
+
+ + +
+ @if($errors->has('password')) + {{ $errors->first('password') }} + @endif +
+
+ + +
+
+
+
+
+
+
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/backend/user/edit.blade.php b/resources/views/backend/user/edit.blade.php new file mode 100644 index 0000000..95bb4f4 --- /dev/null +++ b/resources/views/backend/user/edit.blade.php @@ -0,0 +1,149 @@ +@extends('backend.layouts.app') +@section('title', 'Edit User') + +@section('content') + + +
+ +
+ +
+
+
+

Add User

+
+
+
+ +
+
+ +
+
+
+
+
Basic Info
+
+
+
+ @csrf + @method('PATCH') + +
+
+
+ + +
+ @if($errors->has('userName_en')) + {{ $errors->first('userName_en') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+ @if($errors->has('contactNumber_en')) + {{ $errors->first('contactNumber_en') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+ @if($errors->has('emailAddress')) + {{ $errors->first('emailAddress') }} + @endif +
+
+
+ + +
+ @if($errors->has('roleId')) + {{ $errors->first('roleId') }} + @endif +
+
+
+ + +
+
+
+
+ + +
+
+
+ +
+ +
+
+
+
+ + +
+ @if($errors->has('password')) + {{ $errors->first('password') }} + @endif +
+
+ + +
+
+
+
+
+
+
+ +
+
+ + +@endsection \ No newline at end of file diff --git a/resources/views/backend/user/index.blade.php b/resources/views/backend/user/index.blade.php new file mode 100644 index 0000000..7d0ba6a --- /dev/null +++ b/resources/views/backend/user/index.blade.php @@ -0,0 +1,170 @@ +@extends('backend.layouts.app') +@section('title', 'User List') + +@push('styles') + + + +@endpush +@section('content') + + +
+ +
+ +
+
+
+

User List

+
+
+
+ +
+
+ +
+ +
+
+
+
+
+

All Students List

+ + Add new +
+
+
+ + + + + + + + + + + + + + @forelse ($data as $d) + + + + + + + + + + @empty + + + + @endforelse + +
{{__('#')}}{{__('Name')}}{{__('Email')}}{{__('Contact')}}{{__('Role')}}{{__('Status')}}{{__('Action')}}
{{$d->name_en}}{{$d->email}}{{$d->contact_en}}{{$d->role?->type}}@if($d->status==1){{__('Active')}} @else{{__('Inactive')}} @endif + + + +
No User Found
+
+
+
+
+
+
+ @forelse ($data as $d) +
+
+
+ +
+
+
+
+ +
+

{{$d->name_en}}

+

{{$d->role?->type}}

+
    +
  • + #Sl.{{$d->id}} +
  • +
  • + Phone No. + :{{$d->contact_en}} +
  • +
  • + Email:{{$d->email}} +
  • +
  • + Created At. + :{{$d->created_at}} +
  • +
+ Read More +
+
+
+
+ @empty +
+
+
+
+

User Not Found

+
+
+
+
+ @endforelse +
+
+
+
+
+ +
+
+ + +@endsection + +@push('scripts') + + + +@endpush \ No newline at end of file diff --git a/routes/web.php b/routes/web.php index e02b023..4e32794 100644 --- a/routes/web.php +++ b/routes/web.php @@ -24,7 +24,7 @@ Route::middleware(['checkrole'])->group(function () { Route::get('/dashboard', [dashboard::class, 'index'])->name('dashboard'); - Route::resource('/user', user::class)->except(['update', 'store']); + Route::resource('/user', user::class); });