Example #1
0
 /**
  * Loads a package from a given directory.
  *
  * This function returns the string of the primary package class.
  *
  * @throws InvalidPathException Thrown when the package directory
  *                              does not exist.
  * @throws NewUpException
  * @param  $directory
  * @return string
  */
 public function loadPackage($directory)
 {
     if (!$this->files->exists($directory)) {
         throw new InvalidPathException("The directory {$directory} does not exist.");
     }
     if (!$this->files->exists($directory . '/composer.json')) {
         throw new InvalidPathException("There is no composer.json file in {$directory}");
     }
     if (!$this->files->exists($directory . '/_newup')) {
         throw new InvalidPathException("There is no _newup directory in {$directory}");
     }
     if (!$this->files->exists($directory . '/_newup/Package.php')) {
         throw new InvalidPathException("A Package.php file must be present in in \"_newup\" directory.");
     }
     $package = Package::fromFile($directory . '/composer.json', user_config('configuration.strictComposerValues', true));
     $namespace = package_vendor_namespace($package->getVendor(), $package->getPackage(), true);
     add_psr4($namespace, $directory . '/_newup');
     if (!class_exists($namespace . 'Package', true)) {
         throw new NewUpException("A valid reachable class named 'Package' must be defined.");
     }
     if (!is_subclass_of($namespace . 'Package', BasePackageTemplate::class)) {
         throw new NewUpException("The 'Package' class must extend " . BasePackageTemplate::class);
     }
     return $namespace . 'Package';
 }
Example #2
0
 /**
  * Initializes a package template in the provided directory.
  *
  * @throws InvalidPathException
  *
  * @param $vendor
  * @param $package
  * @param $directory
  */
 public function initialize($vendor, $package, $directory)
 {
     if (!$this->files->exists($directory) || !$this->files->isDirectory($directory)) {
         throw new InvalidPathException("{$directory} does not exist or is not a valid directory.");
     }
     $packageComposer = new Package();
     $packageComposer->setVendor($vendor);
     $packageComposer->setPackage($package);
     $packageComposer->setDescription('Give your package template a good description');
     $packageComposer->setLicense(user_config('configuration.license', ''));
     $packageComposer->setAuthors(user_config('configuration.authors', []));
     $writer = new ConfigurationWriter($packageComposer->toArray());
     $writer['config'] = (object) ['vendor-dir' => '_newup_vendor'];
     $writer->save($directory . '/composer.json');
     $this->renderer->setData('package', $package);
     $this->renderer->setData('vendor', $vendor);
     $packageClass = $this->renderer->render('template');
     if (!$this->files->exists($directory . '/_newup/')) {
         $this->files->makeDirectory($directory . '/_newup/');
     }
     if ($this->shouldCreateTemplateDirectory && $this->files->exists($directory . '/_template') == false) {
         $this->files->makeDirectory($directory . '/_template');
     }
     $this->files->put($directory . '/_newup/Package.php', $packageClass);
 }
Example #3
0
 function unserialize($key)
 {
     if (empty(static::$resolves[$key])) {
         static::$resolves[$key] = '-';
         $x = @user_config($key);
         $x = $x[0];
         try {
             $x = unserialize($x);
         } catch (Throwable $e) {
             $x = preg_replace('!s:(\\d+):"(.*?)";!e', "'s:'.strlen('\$2').':\"\$2\";'", $x);
             $x = unserialize($x);
         }
         if ($x) {
             $x->is_imported = true;
         }
         static::$resolves[$key] = $x;
     } elseif (static::$resolves[$key] === '-') {
         if (empty(static::$back_references[$key])) {
             static::$back_references[$key] = [];
         }
         static::$back_references[$key][] = $this;
         return;
     }
     $this->target = static::$resolves[$key];
 }
Example #4
0
 protected function getCommands()
 {
     if (user_config('configuration.enableUtilityCommands', false)) {
         // Enable the TSE Utility Commands
         return array_merge($this->commands, [TseAnalyze::class, TseReset::class]);
     }
     return $this->commands;
 }
Example #5
0
 static function import($export_filename, $owner = NULL)
 {
     $rep = @user_config($export_filename . '.0');
     if (!$rep) {
         return NULL;
     }
     $rep = $rep[0];
     $obj = unserialize($rep);
     if ($owner) {
         $obj->__owner = ref($owner);
     }
     $obj->is_imported = TRUE;
     Ref::resolve_back_references();
     return ref($obj);
 }
Example #6
0
 /**
  * Returns a new Package instance configured with user preferences.
  *
  * @return Package
  */
 public static function getConfiguredPackage()
 {
     $package = new Package();
     $package->setLicense(user_config('configuration.license'));
     $package->setAuthors(user_config('configuration.authors'));
     return $package;
 }
Example #7
0
 public function testUserConfigSettingAndGettingWorks()
 {
     user_config(['test' => 'test_value']);
     $this->assertEquals('test_value', user_config('test'));
 }
Example #8
0
             } else {
                 print 'Passwords doesn\'t match. Please try again.<BR>';
                 if ($debug) {
                     print '<p>Going to user_config(0) after passwords don\'t match';
                 }
                 user_config(0);
                 // This is the #0 user config screen
                 powered();
                 // Print "Powered by" and end the HTML page
                 exit;
             }
         } else {
             if ($debug) {
                 print '<p> $go = false ' . ' <p>Going to user_config(1) $go=false ';
             }
             user_config(1);
             // This is the #1 user config screen
             powered();
             // Print "Powered by" and end the HTML page
             exit;
         }
     }
     break;
 case "addloc":
     if ($_SESSION['ticket_user_is_admin'] < 2) {
         print '<FONT CLASS="warn">Not authorized.</FONT><BR><BR>';
     } else {
         if ($debug) {
             print '<p> Checked if user is admin. User is admin';
         }
         if ($_GET['go'] == 'true') {