1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- <?php
- namespace App\Http\Controllers\Panel\Authorization;
- use Illuminate\Http\Request;
- use Illuminate\Support\Facades\DB;
- use Illuminate\Support\Facades\View;
- use Illuminate\Support\Facades\Config;
- use Illuminate\Support\Facades\Session;
- class PermissionsController
- {
- protected $permissionModel;
- public function __construct()
- {
- $this->permissionModel = Config::get('laratrust.models.permission');
- }
- public function index()
- {
- return View::make('panel.authorization.permissions.index', [
- 'permissions' => $this->permissionModel::simplePaginate(10),
- ]);
- }
- public function create()
- {
- return View::make('panel.authorization.edit', [
- 'model' => null,
- 'type' => 'permission',
- ]);
- }
- public function store(Request $request)
- {
- $data = $request->validate([
- 'name' => 'required|string|unique:permissions,name',
- 'display_name' => 'nullable|string',
- 'description' => 'nullable|string',
- ]);
- $this->permissionModel::create($data);
- Session::flash('laratrust-success', 'Permission created successfully');
- return redirect(route('permissions.index'));
- }
- public function edit($id)
- {
- $permission = $this->permissionModel::findOrFail($id);
- return View::make('panel.authorization.edit', [
- 'model' => $permission,
- 'type' => 'permission',
- ]);
- }
- public function update(Request $request, $id)
- {
- $permission = $this->permissionModel::findOrFail($id);
- $data = $request->validate([
- 'display_name' => 'nullable|string',
- 'description' => 'nullable|string',
- ]);
- $permission->update($data);
- Session::flash('laratrust-success', 'Permission updated successfully');
- return redirect(route('permissions.index'));
- }
- public function destroy($id)
- {
- $usersAssignedToPermission = DB::table(Config::get('laratrust.tables.permission_user'))
- ->where(Config::get('laratrust.foreign_keys.permission'), $id)
- ->count();
- if ($usersAssignedToPermission > 0) {
- Session::flash('laratrust-warning', 'Permission is attached to one or more users. It can not be deleted');
- } else {
- Session::flash('laratrust-success', 'Permission deleted successfully');
- $this->permissionModel::destroy($id);
- }
- return redirect(route('permissions.index'));
- }
- }
|