%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/commands/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/humhub/commands/SettingsController.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2019 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\commands; use humhub\components\Module; use humhub\components\SettingsManager; use humhub\libs\DynamicConfig; use humhub\models\Setting; use Yii; use yii\console\Controller; use yii\console\ExitCode; use yii\helpers\Console; use yii\console\widgets\Table; /** * SettingsController provides CLI access to database settings * * @since 1.4 * @author Luke */ class SettingsController extends Controller { /** * Lists all stored settings * * @return int the exit code * @throws \Exception */ public function actionList() { $this->stdout("\n*** Showing all stored settings\n\n", Console::FG_GREY); $settings = []; foreach (Setting::find()->all() as $setting) { $settings[] = [$setting->name, $setting->value, $setting->module_id]; } echo Table::widget(['headers' => ['Name', 'Value', 'Module ID'], 'rows' => $settings]); return ExitCode::OK; } /** * Lists stored settings by given module id * * @param string $moduleId * @return int the exit code * @throws \Exception */ public function actionListModule($moduleId) { $module = $this->ansiFormat($moduleId, Console::FG_YELLOW); $this->stdout("\n*** Showing settings for module: $module\n\n", Console::FG_GREY); $settings = []; foreach (Setting::find()->andWhere(['module_id' => $moduleId])->all() as $setting) { $settings[] = [$setting->name, $setting->value]; } echo Table::widget(['headers' => ['Name', 'Value'], 'rows' => $settings]); return ExitCode::OK; } /** * Adds or updates a stored setting * * @param string $moduleId * @param string $name * @param $value * @return int the exit code */ public function actionSet($moduleId, $name, $value) { $settingsManager = new SettingsManager(['moduleId' => $moduleId]); $settingsManager->set($name, $value); $this->handleDynamicConfig($moduleId, $name); $this->stdout("\n*** Successfully set setting\n\n", Console::FG_GREEN); $this->stdout("Name:\t\t" . $name . "\n"); $this->stdout("Module ID:\t" . $moduleId . "\n\n"); $this->stdout("Value:\t\t" . $value . "\n"); return ExitCode::OK; } /** * Deletes a stored setting * * @param string $moduleId * @param string $name * @return int the exit code * @throws \Throwable * @throws \yii\db\StaleObjectException */ public function actionDelete($moduleId, $name) { $settingsManager = new SettingsManager(['moduleId' => $moduleId]); $settingsManager->delete($name); $this->handleDynamicConfig($moduleId, $name); $this->stdout("\n*** Successfully deleted setting\n\n", Console::FG_GREEN); $this->stdout("Name:\t\t" . $name . "\n"); $this->stdout("Module ID:\t" . $moduleId . "\n\n"); return ExitCode::OK; } /** * Handles dynamic config rewrite if required * * @param $moduleId * @param $name */ private function handleDynamicConfig($moduleId, $name) { if (DynamicConfig::needRewrite($moduleId, $name)) { // Force reload Yii::$app->settings->init(); DynamicConfig::rewrite(); } } }