. * * The interactive user interfaces in modified source and object code versions * of this program must display Appropriate Legal Notices, as required under * Section 5 of the GNU Affero General Public License version 3. * * In accordance with Section 7(b) of the GNU Affero General Public License version 3, * these Appropriate Legal Notices must retain the display of the "EspoCRM" word. ************************************************************************/ namespace Espo\Modules\Crm\Tools\Meeting; use Espo\Core\Utils\Metadata; use Espo\Entities\User; use Espo\Tools\App\AppParam; /** * @noinspection PhpUnused */ class MeetingServicesAppParam implements AppParam { public function __construct( private Metadata $metadata, private User $user, private MeetingServiceAvailabilityCheckerFactory $factory, ) {} /** * @return array */ public function get(): array { $output = []; /** @var array> $services */ $services = $this->metadata->get("app.meetingServices") ?? []; foreach ($services as $name => $item) { $enabled = $item['enabled'] ?? false; if (!$enabled) { continue; } $checker = $this->factory->create($name); if (!$checker->check($this->user)) { continue; } $output[] = [ 'name' => $name ]; } return $output; } }