'datetime', ]; const ADMIN = 1; public function manyRoles() { return $this->hasMany(PrincipalRoleLink::class); } public function getAppResourcesActionLink() { return $this->hasMany(Iam_App_Resource_Action_Link::class, 'user_xid', 'id'); } public function checkRoleWithPermission($resource, $permission = null) { // dd(\Auth::user()->id); $user = User::with('getAppResourcesActionLink')->where('id', \Auth::user()->id)->first(); $sidebarSlugs = array(); foreach ($user->getAppResourcesActionLink as $userResource) { $resourceSlug = Iam_App_Resources::find($userResource->app_resource_xid); array_push($sidebarSlugs, $resourceSlug->slug); } if (in_array($resource, $sidebarSlugs) || $user->role == 1) { return true; } else { return false; } // return true; // $checkRole = User::with('manyRoles.roles')->where('id', \Auth::user()->id)->get(); // $totalRolesAssigned = array(); // foreach ($checkRole as $data) { // foreach ($data->manyRoles as $role) { // array_push($totalRolesAssigned, $role->roles->slug); // } // } // if (in_array('super-admin', $totalRolesAssigned)) { // return true; // } // foreach ($totalRolesAssigned as $slug) { // $roleData = Role::where('slug', $slug)->first(); // if ($roleData) { // $appResource = AppResource::where('slug', $resource)->first(); // $permission = Permission::where('slug', $permission)->first(); // if ($appResource && $permission) { // $appResourceAction = AppResourceAction::where('app_resource_xid', $appResource->id)->where('app_action_xid', $permission->id)->first(); // if ($appResourceAction) { // $isRoleLinkWithResource = RoleAppResouceActionLink::where('app_resource_action_xid', $appResourceAction->id)->where('role_xid', $roleData->id)->exists(); // if ($isRoleLinkWithResource) { // return true; // } // } // } // } // } // return false; } public function scopeAdmins(Builder $query): void { $query->where('role', 1); } public function scopeUsers(Builder $query): void { $query->where('role', false); } public function scopeActive(Builder $query): void { $query->where('status', true); } // const path = 'https://jerichoalternatives.in/public/uploads/profile/img/'; public function getProfileImageAttribute($value) { if ($value) return imagePath('public/uploads/profile/img/') . $value; } public function activeInvestments() { return $this->hasMany(MonthlyUpdateMaster::class, 'users_id')->where('holding_status', 'Holding'); } public function investments() { return $this->hasMany(MonthlyUpdateMaster::class, 'users_id'); } public function total() { return $this->hasMany(Chat::class, 'user_id')->where(['by' => 'User', 'read_at' => null]); } }