shell bypass 403
<?php
namespace Modules\RolePermission\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Routing\Controller;
use Illuminate\Support\Facades\DB;
use Brian2694\Toastr\Facades\Toastr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Cache;
use Illuminate\Support\Facades\Validator;
use Modules\RolePermission\Entities\Role;
use Modules\RolePermission\Entities\Permission;
use Modules\SidebarManager\Entities\PermissionSection;
class PermissionController extends Controller
{
public function __construct()
{
// $this->middleware(['auth:admin', 'permission']);
}
public function index(Request $request)
{
$role_id = $request['id'];
if ($role_id == null || $role_id == 1) {
return redirect(route('permission.roles.index'));
}
if ($role_id == 3) {
$backend = 0;
} else {
$backend = 1;
}
$query = Permission::where('status', 1)->where('backend', $backend);
if (!showEcommerce()) {
$query->where('ecommerce', '!=', 1);
}
$PermissionList = $query->get();
$role = Role::with('permissions')->find($role_id);
$data['role'] = $role;
$query = PermissionSection::query();
if (!showEcommerce()) {
$query->where('ecommerce', '!=', 1);
}
$data['sections'] = $query->with('permissions')->orderBy('position')->get();
$data['permissions'] = Permission::orderBy('position', 'asc')->get();
// $mainManuIgnore = [];
// if (!isModuleActive('Calender')) {
// $mainManuIgnore[] = 'calendar_show';
// }
// if (!isModuleActive('Communicate')) {
// $mainManuIgnore[] = 'communicate';
// }
//
// if (!isModuleActive('Communicate')) {
// $mainManuIgnore[] = 'communicate';
// }
// if (!isModuleActive('Homework')) {
// $mainManuIgnore[] = 'homework_list';
// }
// $data['MainMenuList'] = $PermissionList->where('type', 1)// ->whereNotIn('route', $mainManuIgnore)
// ;
// $data['SubMenuList'] = $PermissionList->where('type', 2);
// $data['ActionList'] = $PermissionList->where('type', 3);
// $data['PermissionList'] = $PermissionList;
return view('rolepermission::permission', $data);
}
public function store(Request $request)
{
$validator = Validator::make($request->all(), [
'role_id' => "required",
'module_id' => "required|array"
]);
if ($validator->fails()) {
Toastr::error('Please Select Minimum one Permission', 'Failed');
return redirect()->back();
}
try {
$array = array_unique($request->module_id);
$module_array = [];
foreach ($array as $key => $value) {
$module_array[$key]['permission_id'] = $value;
$module_array[$key]['lms_id'] = Auth::user()->lms_id;
}
DB::beginTransaction();
$role = Role::findOrFail($request->role_id);
$role->permissions()->wherePivot('lms_id', Auth::user()->lms_id)->detach();
$role->permissions()->attach($module_array);
DB::commit();
Cache::forget('PermissionList_' . SaasDomain());
Cache::forget('RoleList_' . SaasDomain());
Toastr::success(trans('common.Operation successful'), trans('common.Success'));
return redirect()->back();
} catch (\Exception $e) {
DB::rollback();
GettingError($e->getMessage(), url()->current(), request()->ip(), request()->userAgent());
}
}
}