%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/rest/models/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/rest/models/ConfigureForm.php |
<?php /** * @link https://www.humhub.org/ * @copyright Copyright (c) 2018 HumHub GmbH & Co. KG * @license https://www.humhub.com/licences */ namespace humhub\modules\rest\models; use humhub\modules\rest\Module; use Yii; use yii\base\Model; class ConfigureForm extends Model { public $enabledForAllUsers; public $enabledUsers; public $jwtKey; public $jwtExpire; public $enableBasicAuth; public $apiModules; /** * @inheritdoc */ public function rules() { return [ [['jwtKey'], 'string', 'min' => 32, 'max' => 128], [['enabledUsers', 'apiModules'], 'safe'], [['enabledForAllUsers', 'enableBasicAuth'], 'boolean'], [['jwtExpire'], 'integer'] ]; } /** * @inheritdoc */ public function attributeLabels() { return [ 'jwtKey' => Yii::t('RestModule.base', 'JWT Key'), 'jwtExpire' => Yii::t('RestModule.base','JWT Token Expiration'), 'enabledForAllUsers' => Yii::t('RestModule.base', 'Enabled for all registered users'), 'enableBasicAuth' => Yii::t('RestModule.base','Allow HTTP Basic Authentication'), 'apiModules' => Yii::t('RestModule.base', 'Active additional REST API endpoints from the modules'), ]; } /** * @inheritdoc */ public function attributeHints() { return [ 'jwtKey' => 'If empty, a random key is generated automatically.', 'jwtExpire' => 'in seconds. 0 for no JWT token expiration.', 'enabledForAllUsers' => 'Please note, it is not recommended to enable the API for all users yet.', ]; } public function loadSettings() { /** @var Module $module */ $module = Yii::$app->getModule('rest'); $settings = $module->settings; $this->jwtKey = $settings->get('jwtKey'); if (empty($this->jwtKey)) { $settings->set('jwtKey', Yii::$app->security->generateRandomString(86)); $this->jwtKey = $settings->get('jwtKey'); } $this->enabledForAllUsers = (boolean)$settings->get('enabledForAllUsers'); $this->enabledUsers = (array)$settings->getSerialized('enabledUsers'); $this->jwtExpire = (int)$settings->get('jwtExpire'); $this->enableBasicAuth = (boolean)$settings->get('enableBasicAuth'); foreach ($module->getModulesWithRestApi() as $apiModule) { if ($module->isActiveModule($apiModule->id)) { $this->apiModules[] = $apiModule->id; } } return true; } public function saveSettings() { /** @var Module $module */ $module = Yii::$app->getModule('rest'); $module->settings->set('jwtExpire', (int)$this->jwtExpire); $module->settings->set('jwtKey', $this->jwtKey); $module->settings->set('enabledForAllUsers', $this->enabledForAllUsers); $module->settings->set('enableBasicAuth', (boolean)$this->enableBasicAuth); $module->settings->setSerialized('enabledUsers', (array)$this->enabledUsers); $apiModules = []; foreach ($module->getModulesWithRestApi() as $apiModule) { $apiModules[$apiModule->id] = is_array($this->apiModules) && in_array($apiModule->id, $this->apiModules); } $module->settings->setSerialized('apiModules', $apiModules); return true; } public static function getInstance() { $config = new static; $config->loadSettings(); return $config; } /** * Get options of modules with REST API endpoints * * @return array */ public function getApiModuleOptions() { /** @var Module $module */ $module = Yii::$app->getModule('rest'); $options = []; foreach ($module->getModulesWithRestApi() as $apiModule) { $options[$apiModule->id] = $apiModule->getName(); } return $options; } }