can('view_actions_log'); } /** * Resolves what the caller asked for against what they may have, so a * controller cannot widen the scope by passing `true`. */ public function resolve(User $viewer, bool $requested): bool { return $requested && $this->mayViewInstallWide($viewer); } /** * @return Builder */ public function requests(User $viewer, bool $installWide): Builder { $query = ApiRequestLog::query(); return $installWide ? $query : $query->ownedBy($viewer); } /** * @return Builder */ public function tokens(User $viewer, bool $installWide): Builder { $query = PersonalAccessToken::query(); return $installWide ? $query : $query->where('tokenable_type', $viewer->getMorphClass())->where('tokenable_id', $viewer->id); } }