[enh] New config panel
This commit is contained in:
parent
bde18966d5
commit
a80fe4ecbe
2 changed files with 144 additions and 0 deletions
66
config_panel.toml
Normal file
66
config_panel.toml
Normal 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
78
scripts/config
Normal 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
|
||||
|
||||
}
|
||||
|
Loading…
Reference in a new issue