request->add(['active'=>1]); parent::__construct($model, $with, $select, $name_model,null,$search); } public function store(Request $request) { $this->applyPageAccessInput($request, true); return parent::store($request); } public function update(Request $request, $id) { $this->applyPageAccessInput($request, false); return parent::update($request, $id); } private function applyPageAccessInput(Request $request, bool $creating): void { $actor = auth('user')->user(); if (!$actor instanceof User || !AdminPageAccess::hasFullAccess($actor)) { if ($creating && $actor instanceof User) { $request->merge(['page_access' => $actor->page_access]); } else { $request->replace($request->except('page_access')); } return; } if (!$request->exists('page_access')) { return; } $normalized = AdminPageAccess::normalize($request->input('page_access')); if (is_array($normalized) && !AdminPageAccess::hasAnyView($normalized)) { throw new UnprocessableEntityHttpException('حداقل مشاهدهٔ یک صفحه را انتخاب کنید'); } $request->merge(['page_access' => $normalized]); } public function me(){ $user = User::with($this->with) ->select($this->select) ->findOrFail(auth()->id()); // $permission = Permission::where('user_type',$user->user_type)->select('rid')->distinct('rid')->get()->pluck('rid')->toArray(); // $user['permission'] = $permission; $query = Setting::query(); $settings = $query->get(); $user->settings= $settings; $user->setAttribute('sms_billing_enabled', SmsWalletService::isBillingEnabled()); $user->setAttribute( 'sms_panel_access', SmsWalletService::isBillingEnabled() && SmsWalletService::isSmsPanelSuperAdmin($user) ); return response()->json($user); } public function updateMe(Request $request){ return parent::update($request,auth()->id()); } public function getByUserType($user_type){ $user = User::where('user_type',$user_type)->select('id','name','mobile')->get(); return response()->json($user); } public function listUser(){ $user = User::select('id','name','mobile','user_type')->get(); return response()->json($user); } }