/home/mip/mip/app/Modules/Likod/Controllers/Settings/UserController.php
<?php
namespace QxCMS\Modules\Likod\Controllers\Settings;
use Illuminate\Http\Request;
use QxCMS\Modules\Likod\Requests\Settings\UserRequest;
use QxCMS\Http\Requests;
use QxCMS\Http\Controllers\Controller;
use QxCMS\Modules\Likod\Repositories\Settings\Users\UserRepositoryInterface as User;
use DB;
use Datatables;
use Auth;
use Lang;
use Gate;
class UserController extends Controller
{
protected $user;
protected $auth;
protected $prefix_name = '';
public function __construct(
User $user
)
{
$this->auth = Auth::guard('likod');
$this->prefix_name = config('modules.likod');
$this->user = $user;
}
public function index()
{
return view('Likod::settings.users.index');
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
$data['roles'] = $this->user->getRolelists();
return view('Likod::settings.users.create', $data);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(UserRequest $request)
{
$user = $this->user->create($request->all());
session()->flash('success', 'Successfully added.');
return redirect($this->prefix_name.'/settings/users');
}
/**
* Display the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function show($id)
{
}
/**
* Show the form for editing the specified resource.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function edit($hashid)
{
$id = decode($hashid);
$data['roles'] = $this->user->getRolelists($this->auth->user()->role_id);
$data['user'] = $this->user->findById($id);
return view('Likod::settings.users.edit', $data);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param int $id
* @return \Illuminate\Http\Response
*/
public function update(UserRequest $request, $hashid)
{
$id = decode($hashid);
$this->user->update($id, $request->all());
return redirect($this->prefix_name.'/settings/users');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($hashid)
{
$id = decode($hashid);
if(!$this->user->delete($id))
{
return $this->user->getAjaxResponse('error', 'User is currently used and connot be deleted.');
}
return $this->user->getAjaxResponse('success', 'Successfully deleted.');
}
/*
* Datatables
*/
public function getUsersData()
{
$users = $this->user->getUsersWithRole(['id', 'role_id', 'name', 'email']);
return Datatables::of($users)
->addColumn('action', function ($user) {
$html_out = '';
$html_out .= '<a href="'.url($this->prefix_name.'/settings/users/'.$user->hashid.'/edit').'" class="btn btn-xs btn-flat btn-warning" data-toggle="tooltip" data-placement="top" title="Edit"><i class="fa fa-pencil"></i></a> ';
$html_out .= '<a href="#delete-'.$user->hashid.'" class="btn btn-xs btn-flat btn-danger" id="btn-delete" data-action="'.url($this->prefix_name).'/settings/users/'.$user->hashid.'" data-toggle="tooltip" data-placement="top" title="Delete"><i class="fa fa-trash-o"></i></a>';
return $html_out;
})
->make(true);
}
}