Repository URL to install this package:
|
Version:
1.0.0 ▾
|
<?php namespace Modules\Users\Http\Controllers\Admin;
use Modules\Core\Http\Controllers\AdminController;
use Modules\Core\Services\Asset;
use Modules\Users\Contracts\Repositories\RoleRepository;
use Modules\Users\Contracts\Repositories\UserRepository;
use Modules\Users\Http\Requests\CreateUserRequest;
use Modules\Users\Http\Requests\UpdateUserRequest;
use Modules\Users\Services\UsersDataTable;
class UsersController extends AdminController
{
/**
* @var UserRepository
*/
private $user;
/**
* @var RoleRepository
*/
private $role;
public function __construct(UserRepository $user, RoleRepository $role)
{
parent::__construct();
$this->user = $user;
$this->role = $role;
Asset::add(config('core.assets.datatable'));
Asset::add(config('core.assets.moment'));
Asset::add(config('core.assets.daterange'));
}
public function index(UsersDataTable $dataTable)
{
return $dataTable->render('users::admin.index');
}
/**
* Show the form for creating a new resource.
*
* @return \Response
*/
public function create()
{
$roles = $this->role->all();
return view('users::admin.create', compact('roles'));
}
/**
* Store a newly created resource in storage.
*
* @param CreateUserRequest $request
* @return \Response
*/
public function store(CreateUserRequest $request)
{
$this->user->createWithRoles($request->except('roles'), $request->get('roles'));
flash(trans('users::users.messages.created'));
return redirect()->route('admin.users.index');
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Response
*/
public function edit($id)
{
if (!$user = $this->user->find($id)) {
flash()->error(trans('users::users.messages.not_found'));
return redirect()->route('admin.users.index');
}
$roles = $this->role->all();
$currentUser = \Auth::check() ? true : false;
return view('users::admin.edit', compact('user', 'roles', 'currentUser'));
}
/**
* Update the specified resource in storage.
*
* @param int $id
* @param UpdateUserRequest $request
* @return \Response
*/
public function update($id, UpdateUserRequest $request)
{
$this->user->updateAndSyncRoles($id, $request->except(['roles', 'permissions']), $request->get('roles'));
flash(trans('users::users.messages.updated'));
return redirect()->route('admin.users.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Response
*/
public function destroy($id)
{
$this->user->delete($id);
flash(trans('users::users.messages.deleted'));
if (request()->ajax() || request()->wantsJson()) {
return [
'success' => true,
];
} else {
return redirect()->route('admin.users.index');
}
}
}