diff --git a/app/Entities/Users/UsersRepository.php b/app/Entities/Users/UsersRepository.php index 6698031..36b05b5 100755 --- a/app/Entities/Users/UsersRepository.php +++ b/app/Entities/Users/UsersRepository.php @@ -57,6 +57,8 @@ class UsersRepository extends BaseRepository { $user = $this->requireById($userId); + \DB::table('agency_workers')->where('worker_id', $userId)->delete(); + return $user->delete(); } } diff --git a/app/Http/Controllers/Users/UsersController.php b/app/Http/Controllers/Users/UsersController.php index 884e614..dfbdc82 100755 --- a/app/Http/Controllers/Users/UsersController.php +++ b/app/Http/Controllers/Users/UsersController.php @@ -2,9 +2,9 @@ namespace App\Http\Controllers\Users; +use App\Entities\Users\User; use App\Entities\Users\UsersRepository; use App\Http\Controllers\Controller; -use App\Http\Requests\Users\CreateRequest; use App\Http\Requests\Users\DeleteRequest; use App\Http\Requests\Users\UpdateRequest; use Illuminate\Http\Request; @@ -19,9 +19,9 @@ class UsersController extends Controller $this->repo = $repo; } - public function index(Request $req) + public function index(Request $request) { - $users = $this->repo->getUsers($req->get('q')); + $users = $this->repo->getUsers($request->get('q')); return view('users.index', compact('users')); } @@ -30,45 +30,59 @@ class UsersController extends Controller return view('users.create'); } - public function store(CreateRequest $req) + public function store(Request $request) { - $userData = $req->except(['_token', 'password_confirmation']); - $user = $this->repo->create($userData); + $userData = $request->validate([ + 'name' => 'required|min:5', + 'email' => 'required|email|unique:users,email', + 'password' => 'between:6,15|confirmed', + 'password_confirmation' => 'required_with:password', + ]); + + $user = $this->repo->create($userData); + flash()->success(trans('user.created')); + return redirect()->route('users.index'); } - public function show($userId) + public function show(User $user) { - $user = $this->repo->requireById($userId); return view('users.show', compact('user')); } - public function edit($userId) + public function edit(User $user) { - $user = $this->repo->requireById($userId); + $this->authorize('update', $user); return view('users.edit', compact('user')); } - public function update(UpdateRequest $req, $userId) + public function update(UpdateRequest $request, User $user) { - $userData = $req->except(['_method', '_token', 'password_confirmation']); - $user = $this->repo->update($userData, $userId); + $this->authorize('update', $user); + + $userData = $request->except(['_method', '_token', 'password_confirmation']); + + $user->update($userData); + flash()->success(trans('user.updated')); - return redirect()->route('users.edit', $userId); + return redirect()->route('users.edit', $user->id); } - public function delete($userId) + public function delete(User $user) { - $user = $this->repo->requireById($userId); + $this->authorize('delete', $user); + return view('users.delete', compact('user')); } - public function destroy(DeleteRequest $req, $userId) + public function destroy(DeleteRequest $request, User $user) { - if ($userId == $req->get('user_id')) { - $this->repo->delete($userId); + $this->authorize('delete', $user); + + if ($request->get('user_id')) { + $this->repo->delete($user->id); flash()->success(trans('user.deleted')); } else { flash()->error(trans('user.undeleted')); diff --git a/resources/views/users/agency/edit.blade.php b/resources/views/users/agency/edit.blade.php index 06b694b..fd9b633 100644 --- a/resources/views/users/agency/edit.blade.php +++ b/resources/views/users/agency/edit.blade.php @@ -1,9 +1,10 @@ -@extends('layouts.app') +@extends('layouts.dashboard') -@section('content') -