Warning: session_start(): Session cannot be started after headers have already been sent in /home/tvrreohg/public_html/manga.php on line 13
middleware(['auth']);
$this->middleware('verified');
$this->section = new \stdClass();
$this->section->title = 'Roles';
$this->section->heading = 'Roles';
$this->section->slug = 'roles';
$this->section->folder = 'roles';
}
/**
* Display a listing of the resource.
*/
public function index()
{
//
$section = $this->section;
$roles = Role::with(['user'])->get();
return view($section->folder.'.index', compact('roles', 'section'));
}
/**
* Show the form for creating a new resource.
*/
public function create()
{
//
checkPermission('create-role');
$role = [];
$section = $this->section;
$section->heading = 'Roles';
$section->title = 'Create Roles';
$section->method = 'POST';
$section->route = $section->slug.'.store';
$permissions = Permission::get();
$rolePermissions = [];
return view($section->folder.'.form',compact('section', 'role','permissions','rolePermissions'));
}
/**
* Store a newly created resource in storage.
*/
public function store(StoreRoleRequest $request)
{
$section = $this->section;
//define custom validation messages for validator
$validationMessages = [
'name.unique' => 'Role name already exist. Please enter a unique role name',
];
// validate user input
$validator = Validator::make($request->all(), [
'name' => 'required|string|unique:roles,name'
], $validationMessages);
//validation fails
if ($validator->fails()) {
return redirect()->back()->withInput($request->input())->withErrors($validator);
} else {
$request->request->add([
'name'=>$request->name,
'user_id'=>auth()->user()->id
]);
$request->request->add(['author_id'=>auth()->user()->id,'author_ip' =>$request->ip()]);
$role = Role::create($request->all());
if($request->has('permissions')){
foreach ($request->permissions as $permission){
$item = RolePermission::create([
'role_id' => $role->id,
'permission_id' => $permission,
'user_id' => $request->user_id,
'author_id'=>auth()->user()->id,
'author_ip' =>$request->ip()
]);
}
}
$request->session()->flash('success', 'Record has been added successfully.');
return redirect()->route($section->slug.'.index');
}
//
}
/**
* Display the specified resource.
*/
public function show(Role $role)
{
//
}
/**
* Show the form for editing the specified resource.
*/
public function edit(Role $role)
{
checkPermission('update-role');
$section = $this->section;
$section->heading = 'Roles';
$section->title = 'Edit Role';
$section->method = 'PUT';
$section->route = [$section->slug.'.update', $role];
$permissions = Permission::get();
$rolePermissions = RolePermission::where('role_id', $role->id)->pluck('permission_id')->toArray();
return view($section->folder.'.form', compact('role', 'section', 'permissions', 'rolePermissions'));
}
/**
* Update the specified resource in storage.
*/
public function update(UpdateRoleRequest $request, Role $role)
{
$section = $this->section;
//define custom validation messages for validator
$validationMessages = [
'name.unique' => 'Role name already exist. Please enter a unique role name',
];
// validate user input
$validator = Validator::make($request->all(), [
'name' => 'string|unique:roles,name,'. $role->id . ',id',
], $validationMessages);
//validation fails
if ($validator->fails()) {
return redirect()->back()->withInput($request->input())->withErrors($validator);
} else {
$request->request->add(['user_id'=>auth()->user()->id]);
if($request->has('permissions')){
RolePermission::where('role_id', $role->id)->delete();
foreach ($request->permissions as $permission){
$item = RolePermission::create([
'role_id' => $role->id,
'permission_id' => $permission,
'user_id' => $request->user_id,
'author_id'=>auth()->user()->id,
'author_ip' =>$request->ip()
]);
}
}
$role->update($request->all());
$request->session()->flash('alert-success', 'Record has been updated successfully.');
return redirect()->route($section->slug . '.index');
}
}
/**
* Remove the specified resource from storage.
*/
public function destroy(Role $role)
{
//
$section = $this->section;
RolePermission::where('role_id', $role->id)->delete();
$role->delete();
request()->session()->flash('alert-success', 'Record has been deleted successfully.');
return redirect()->route($section->slug.'.index');
// return redirect()->route($section->slug.'.index')->with('alert-success', 'Record has been Delete successfully.');
}
}