Source of file CreateIndexTask.php
Size: 1,749 Bytes - Last Modified: 2021-12-23T10:38:36+00:00
/var/www/docs.ssmods.com/process/src/src/Task/CreateIndexTask.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 | <?php declare(strict_types = 1); namespace Suilven\FreeTextSearch\Task; use League\CLImate\CLImate; use SilverStripe\Control\Director; use SilverStripe\Dev\BuildTask; use SilverStripe\Security\Permission; use SilverStripe\Security\Security; use Suilven\FreeTextSearch\Factory\IndexCreatorFactory; class CreateIndexTask extends BuildTask { protected $title = 'Create Index'; protected $description = 'Create an index of a given name'; protected $enabled = true; /** @var string */ // * @phpstan-ignore-next-line private static $segment = 'create-index'; /** * Implement this method in the task subclass to * execute via the TaskRunner * * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingNativeTypeHint * @phpcsSuppress SlevomatCodingStandard.TypeHints.ReturnTypeHint.MissingAnyTypeHint * @param \SilverStripe\Control\HTTPRequest $request * @return \SilverStripe\Control\HTTPResponse|void */ public function run($request) { $climate = new CLImate(); // check this script is being run by admin // @phpstan-ignore-next-line $canAccess = (Director::isDev() || Director::is_cli() || Permission::check("ADMIN")); // for testing purposes $fail = $request->getVar('fail'); if (!\is_null($fail)) { $canAccess = false; } if (!$canAccess) { return Security::permissionFailure(null, 'Permission denied'); } $name = $request->getVar('index'); $climate->info('NAME: ' . $name); $factory = new IndexCreatorFactory(); $indexCreator = $factory->getIndexCreator(); $indexCreator->createIndex($name); } } |