[enh] New config panel

This commit is contained in:
ljf 2020-11-03 21:28:45 +01:00
parent ed74358979
commit 471d9abf2b
2 changed files with 144 additions and 0 deletions

66
config_panel.toml Normal file
View file

@ -0,0 +1,66 @@
version = "0.1"
name = "APP configuration panel"
[main]
name = "Main configuration"
[main.config_file]
name = ""
[main.config_file.warning]
ask = "Here you can display a warning to user."
type = "warning"
[main.config_file.outgoing_email]
ask = "Outgoing email From"
type = "string"
help = "Email from which comes email from this app"
[main.config_file.expiration]
ask = "Default expiration"
type = "date"
[main.config_file.logo]
ask = "Outgoing email From"
type = "file"
default = ""
optional = true
help = "You should upload a CA certificate to start"
source="__FINALPATH__/img/logo.png"
[main.auth]
name = "Authentication"
[main.auth.user]
ask = "Username"
type = "string"
default = ""
optional = true
pattern = "^[^/ ]+$"
[main.auth.passphrase]
ask = "Password"
type = "password"
default = ""
optional = true
[advanced]
name = "Advanced configuration"
[manual.dns]
name = "DNS"
[manual.dns.dns0]
ask = "First resolver"
type = "string"
default = ""
optional = true
pattern = "^([0-9.]{8,16}|[0-9a-fA-F:]+)$"
[manual.dns.dns1]
ask = "Second resolver"
type = "string"
default = ""
optional = true
pattern = "^([0-9.]{8,16}|[0-9a-fA-F:]+)$"

78
scripts/config Normal file
View file

@ -0,0 +1,78 @@
#!/bin/bash
#=================================================
# GENERIC STARTING
#=================================================
# IMPORT GENERIC HELPERS
#=================================================
source _common.sh
source /usr/share/yunohost/helpers
#=================================================
# RETRIEVE ARGUMENTS
#=================================================
app=$YNH_APP_INSTANCE_NAME
final_path=$(ynh_app_setting_get $app final_path)
#=================================================
# SPECIFIC GETTERS FOR TOML SHORT KEY
#=================================================
get__user() {
if [ -s $final_path/keys/credentials ]
then
sed -n 1p $final_path/keys/credentials
fi
}
get__passphrase() {
if [ -s $final_path/keys/credentials ]
then
sed -n 2p $final_path/keys/credentials
fi
}
#=================================================
# SPECIFIC VALIDATORS FOR TOML SHORT KEYS
#=================================================
validate__user() {
[[ -n "$passphrase" && -z "$user" ]] &&
echo 'A Username is needed when you suggest a Password'
}
validate__passphrase() {
[[ -n "$user" && -z "$passphrase" ]] &&
echo 'A Password is needed when you suggest a Username'
}
#=================================================
# SPECIFIC SETTERS FOR TOML SHORT KEYS
#=================================================
set__user() {
if [ -z "$user" ]
then
echo "$user\n$passphrase" > $final_path/keys/credentials
else
echo "" > $final_path/keys/credentials
fi
}
set__passphrase() {
:
}
#=================================================
# OVERWRITING APPLY STEP
#=================================================
ynh_panel_apply() {
_ynh_panel_apply
# Start vpn client
systemctl reload APP
}