middleware(function ($request, $next) { $this->user = Auth::guard('web')->user(); return $next($request); }); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(PermissionsDataTable $dataTable) { /* if (is_null($this->user) || !$this->user->can('permission.read')) { abort(403, 'Sorry !! You are Unauthorized to view any permission !'); }*/ return $dataTable->render('pages.users.permissions.index'); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { /*if (is_null($this->user) || !$this->user->can('permission.create')) { abort(403, 'Sorry !! You are Unauthorized to create any permission !'); }*/ // Validation Data $validate = $request->validate([ 'name' => 'required|max:100|unique:permission_groups' ], [ 'name.requried' => 'Please give a permission name' ]); if($validate){ try{ // Process Data $group = PermissionGroup::create(['name' => $request->name]); $group_name = strtolower($request->name); $data = [ $group_name.'.create', $group_name.'.read', $group_name.'.update', $group_name.'.delete', $group_name.'.authorize', $group_name.'.report' ]; foreach($data as $permission){ Permission::create([ 'name' => $permission, 'guard_name' => 'web', 'permission_group_id' => $group->id ]); } echo json_encode(['status' => 'success', 'message' => 'Permission created successfully.']); }catch(\Exception $e){ echo json_encode(['status' => 'error', 'message' => 'Permission created failed.']); } } return false; } /** * 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($id) { /*if (is_null($this->user) || !$this->user->can('permission.update')) { abort(403, 'Sorry !! You are Unauthorized to edit any permission !'); }*/ $permission = PermissionGroup::find($id); echo json_encode($permission); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { /* if (is_null($this->user) || !$this->user->can('permission.update')) { abort(403, 'Sorry !! You are Unauthorized to edit any permission !'); }*/ // Validation Data $validated = $request->validate([ 'name' => 'required|max:100|unique:permission_groups,name,' . $id ], [ 'name.requried' => 'Please give a permission name' ]); if ($validated) { try { // Process Data $group = PermissionGroup::find($id); $group->name = $request->name; if($group->save()){ $permissions = Permission::where('permission_group_id', $group->id)->get(); $data = [ $group_name . '.create', $group_name . '.read', $group_name . '.update', $group_name . '.delete', $group_name . '.authorize', $group_name . '.report' ]; $i = 0; foreach($permissions as $permission){ $permission->name = $data[$i]; $permission->save(); $i++; } } echo json_encode(['status' => 'success', 'message' => 'Permission updated successfully.']); } catch (\Exception $e) { echo json_encode(['status' => 'error', 'message' => 'Permission updated failed.']); } } return false; } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { /*if (is_null($this->user) || !$this->user->can('permission.delete')) { abort(403, 'Sorry !! You are Unauthorized to delete any role !'); }*/ $permission = PermissionGroup::find($id); if (!is_null($permission)) { if($permission->delete()){ Permission::where('permission_group_id',$id)->delete(); } } echo json_encode(['status' => 'success', 'message' => 'Permission deleted successfully.']); } }