From 7e3bcd27f77b3d05dc87c77a8b5750a08cc95ac7 Mon Sep 17 00:00:00 2001 From: Kay0u Date: Wed, 15 Sep 2021 15:28:21 +0200 Subject: [PATCH] New config panel version --- config_panel.toml | 21 +++++++++++++++++ scripts/config | 59 +++++++++-------------------------------------- 2 files changed, 32 insertions(+), 48 deletions(-) create mode 100644 config_panel.toml diff --git a/config_panel.toml b/config_panel.toml new file mode 100644 index 0000000..aaee3ed --- /dev/null +++ b/config_panel.toml @@ -0,0 +1,21 @@ +version = "1.0" +name = "GitLab configuration panel" + +[main] +name = "GitLab configuration" + + [main.overwrite_files] + name = "Overwriting config files" + + [main.overwrite_files.overwrite_nginx] + ask = "Overwrite the nginx config file ?" + type = "boolean" + help = "If the file is overwritten, a backup will be created." + + [main.users] + name = "External users" + + [main.users.use_web_account] + ask = "Authorized external user creation ?" + type = "boolean" + bind = "null" \ No newline at end of file diff --git a/scripts/config b/scripts/config index 277cb57..004b47f 100644 --- a/scripts/config +++ b/scripts/config @@ -6,65 +6,28 @@ # IMPORT GENERIC HELPERS #================================================= -source _common.sh source /usr/share/yunohost/helpers +ynh_abort_if_errors + #================================================= # RETRIEVE ARGUMENTS #================================================= -app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID} - - #================================================= -# LOAD VALUES +# SPECIFIC GETTERS FOR TOML SHORT KEY #================================================= -# Load the real value from the app config or elsewhere. -# Then get the value from the form. -# If the form has a value for a variable, take the value from the form, -# Otherwise, keep the value from the app config. - -# Overwrite nginx configuration -old_overwrite_nginx="$(ynh_app_setting_get --app=$app --key=overwrite_nginx)" -overwrite_nginx="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX:-$old_overwrite_nginx}" - -# use_web_account -old_use_web_account="$(ynh_app_setting_get --app=$app --key=use_web_account)" -use_web_account="${YNH_CONFIG_MAIN_USERS_USE_WEB_ACCOUNT:-$old_use_web_account}" - #================================================= -# SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND +# SPECIFIC SETTERS FOR TOML SHORT KEYS #================================================= -show_config() { - # here you are supposed to read some config file/database/other then print the values - # echo "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value" +set__use_web_account() { + if [ -n "${use_web_account}" ] + then + echo "ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | gitlab-rails console - ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx" - - ynh_return "YNH_CONFIG_MAIN_USERS_USE_WEB_ACCOUNT=$use_web_account" + # Update the config of the app + ynh_app_setting_set --app=$app --key=use_web_account --value=$use_web_account + fi } - -#================================================= -# MODIFY THE CONFIGURATION -#================================================= - -apply_config() { - # Change use_web_account - yunohost app action run $app web_account --args use_web_account=$use_web_account - - # Set overwrite_nginx - ynh_app_setting_set --app=$app --key=overwrite_nginx --value="$overwrite_nginx" -} - -#================================================= -# GENERIC FINALIZATION -#================================================= -# SELECT THE ACTION FOLLOWING THE GIVEN ARGUMENT -#================================================= - -case $1 in - show) show_config;; - apply) apply_config;; -esac \ No newline at end of file