|
|
@ -2,9 +2,9 @@ |
|
|
|
|
|
|
|
|
namespace App\Http\Controllers\Users; |
|
|
namespace App\Http\Controllers\Users; |
|
|
|
|
|
|
|
|
|
|
|
use App\Entities\Users\User; |
|
|
use App\Entities\Users\UsersRepository; |
|
|
use App\Entities\Users\UsersRepository; |
|
|
use App\Http\Controllers\Controller; |
|
|
use App\Http\Controllers\Controller; |
|
|
use App\Http\Requests\Users\CreateRequest; |
|
|
|
|
|
use App\Http\Requests\Users\DeleteRequest; |
|
|
use App\Http\Requests\Users\DeleteRequest; |
|
|
use App\Http\Requests\Users\UpdateRequest; |
|
|
use App\Http\Requests\Users\UpdateRequest; |
|
|
use Illuminate\Http\Request; |
|
|
use Illuminate\Http\Request; |
|
|
@ -19,9 +19,9 @@ class UsersController extends Controller |
|
|
$this->repo = $repo; |
|
|
$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')); |
|
|
return view('users.index', compact('users')); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
@ -30,45 +30,59 @@ class UsersController extends Controller |
|
|
return view('users.create'); |
|
|
return view('users.create'); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function store(CreateRequest $req) |
|
|
|
|
|
|
|
|
public function store(Request $request) |
|
|
{ |
|
|
{ |
|
|
$userData = $req->except(['_token', 'password_confirmation']); |
|
|
|
|
|
|
|
|
$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); |
|
|
$user = $this->repo->create($userData); |
|
|
|
|
|
|
|
|
flash()->success(trans('user.created')); |
|
|
flash()->success(trans('user.created')); |
|
|
|
|
|
|
|
|
return redirect()->route('users.index'); |
|
|
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')); |
|
|
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')); |
|
|
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')); |
|
|
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')); |
|
|
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')); |
|
|
flash()->success(trans('user.deleted')); |
|
|
} else { |
|
|
} else { |
|
|
flash()->error(trans('user.undeleted')); |
|
|
flash()->error(trans('user.undeleted')); |
|
|
|