where('permission', 'viewForum') ->pluck('group_id'); if ($this->extensionEnabled('flarum-tags')) { /** @var Collection $tags */ $tags = $discussion->tags; $filters['tags'] = $tags->pluck('id')->toArray(); $tagPermissions = Permission::query() ->whereIn( 'permission', $tags->pluck('id')->map(function (int $id) { return "tag$id.viewForum"; }) )->get(); $permissions = $tags->map(function (Tag $tag) use ($tagPermissions) { $permissions = $tagPermissions->where('permission', "tag$tag->id.viewForum"); if ($tag->is_restricted) { $permissions = $permissions->add(['group_id' => Group::ADMINISTRATOR_ID]); } return $permissions->pluck('group_id'); })->flatten(); } if (! $discussion->is_private && $permissions->isEmpty()) { $permissions = $globalPermission; } return $permissions->toArray(); } protected function extensionEnabled(string $extension): bool { /** @var ExtensionManager $manager */ $manager = resolve(ExtensionManager::class); return $manager->isEnabled($extension); } }