Skip to content
Snippets Groups Projects
1.278_jsonapi_dangerous_routes_config.php 1.22 KiB
Newer Older
<?php

class JsonapiDangerousRoutesConfig extends Migration
{
    public function description()
    {
        return 'Adds system config option allowing possibly dangerous JSONAPI routes '
            .'(e.g. root-users may delete users).';
    }

    /**
     * @SuppressWarnings(ShortMethodName)
     */
    public function up()
    {
        $query = "INSERT INTO `config` (
                    `field`, `value`, `type`, `range`, `section`,
                    `mkdate`, `chdate`,
                    `description`
                  ) VALUES (
                    'JSONAPI_DANGEROUS_ROUTES_ALLOWED', '0', 'boolean', 'global', 'global',
                    UNIX_TIMESTAMP(), UNIX_TIMESTAMP(),
                    'Wenn diese Einstellung gesetzt ist, dürfen auch potentiell gefährliche JSONAPI-Routen genutzt werden. (Zum Beispiel dürfen dann root-Nutzer auch andere Nutzer löschen.)'
                  )";
        DBManager::get()->exec($query);
    }

    public function down()
    {
        $query = "DELETE `config`, `config_values`
                  FROM `config`
                  LEFT JOIN `config_values` USING (`field`)
                  WHERE `field` = 'JSONAPI_DANGEROUS_ROUTES_ALLOWED'";
        DBManager::get()->exec($query);
    }
}