summaryrefslogtreecommitdiffstats
path: root/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php
diff options
context:
space:
mode:
Diffstat (limited to 'modules-available/sysconfig/inc/configmodule/sshconfig.inc.php')
-rw-r--r--modules-available/sysconfig/inc/configmodule/sshconfig.inc.php41
1 files changed, 28 insertions, 13 deletions
diff --git a/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php b/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php
index 61f69581..a62d1035 100644
--- a/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php
+++ b/modules-available/sysconfig/inc/configmodule/sshconfig.inc.php
@@ -5,7 +5,8 @@ ConfigModule::registerModule(
Dictionary::translateFileModule('sysconfig', 'config-module', 'sshconfig_title'), // Title
Dictionary::translateFileModule('sysconfig', 'config-module', 'sshconfig_description'), // Description
Dictionary::translateFileModule('sysconfig', 'config-module', 'group_sshconfig'), // Group
- false // Only one per config?
+ true, // Only one per config?
+ 500
);
class ConfigModule_SshConfig extends ConfigModule
@@ -13,7 +14,7 @@ class ConfigModule_SshConfig extends ConfigModule
const MODID = 'SshConfig';
const VERSION = 1;
- protected function generateInternal($tgz, $parent)
+ protected function generateInternal(string $tgz, ?string $parent)
{
if (!$this->validateConfig())
return false;
@@ -22,36 +23,50 @@ class ConfigModule_SshConfig extends ConfigModule
'failOnParentFail' => false,
'parent' => $parent
);
- // Create config module, which will also check if the pubkey is valid
return Taskmanager::submit('SshdConfigGenerator', $config);
}
- protected function moduleVersion()
+ protected function moduleVersion(): int
{
return self::VERSION;
}
- protected function validateConfig()
+ protected function validateConfig(): bool
{
- return isset($this->moduleData['publicKey']) && isset($this->moduleData['allowPasswordLogin']) && isset($this->moduleData['listenPort']);
+ // UPGRADE
+ if (isset($this->moduleData['allowPasswordLogin']) && !isset($this->moduleData['allowedUsersLogin'])) {
+ $this->moduleData['allowPasswordLogin'] = strtoupper($this->moduleData['allowPasswordLogin']);
+ if (!in_array($this->moduleData['allowPasswordLogin'], ['NO', 'USER_ONLY', 'YES'])) {
+ $this->moduleData['allowPasswordLogin'] = 'NO';
+ }
+ $this->moduleData['allowedUsersLogin'] = 'ALL';
+ }
+ return isset($this->moduleData['allowPasswordLogin']) && isset($this->moduleData['allowedUsersLogin'])
+ && isset($this->moduleData['listenPort']);
}
- public function setData($key, $value)
+ public function setData(string $key, $value): bool
{
switch ($key) {
case 'publicKey':
- break;
+ if ($value === false) {
+ error_log('Unsetting publicKey');
+ unset($this->moduleData[$key]);
+ return true;
+ }
+ return false;
case 'allowPasswordLogin':
- if ($value === true || $value === 'yes')
- $value = 'yes';
- elseif ($value === false || $value === 'no')
- $value = 'no';
- else
+ if (!in_array($value, ['NO', 'USER_ONLY', 'YES']))
+ return false;
+ break;
+ case 'allowedUsersLogin';
+ if (!in_array($value, ['ROOT_ONLY', 'USER_ONLY', 'ALL']))
return false;
break;
case 'listenPort':
if (!is_numeric($value) || $value < 1 || $value > 65535)
return false;
+ $value = (int)$value;
break;
default:
return false;