private function createGenerateKeysSetting() { $this->generateKeys = new SystemSetting('generateKeys', Piwik::translate('LoginEncrypted_SettingsGenerateKeysTitle')); $this->generateKeys->readableByCurrentUser = true; $this->generateKeys->type = static::TYPE_BOOL; $this->generateKeys->uiControlType = static::CONTROL_CHECKBOX; $this->generateKeys->description = Piwik::translate('LoginEncrypted_SettingsGenerateKeysDescription'); $this->generateKeys->defaultValue = false; $this->generateKeys->transform = function ($value, $setting) { // check if check box got activated, and generate keys if so if ($value != $setting->defaultValue) { $publickey = Crypto::generateKeys($this->keyLength->getValue()); $this->publicKey->setValue($publickey['e'] . ', ' . $publickey['n']); } return $setting->defaultValue; // reset checkbox }; $this->addSetting($this->generateKeys); }
public function setValue($value) { $newNumWorkers = $value; $oldNumWorkers = $this->getValue(); parent::setValue($value); if ($newNumWorkers && $oldNumWorkers) { try { $manager = Factory::makeQueueManager(Factory::makeBackend()); $manager->setNumberOfAvailableQueues($newNumWorkers); $manager->moveSomeQueuesIfNeeded($newNumWorkers, $oldNumWorkers); } catch (\Exception $e) { // it is ok if this fails. then it is most likely not enabled etc. } } }