diff --git a/actions.json b/actions.json deleted file mode 100644 index e283eca..0000000 --- a/actions.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - { - "id": "web_account", - "name": "External users", - "command": "/bin/bash scripts/actions/web_account", - "user": "root", - "accepted_return_codes": [ - 0 - ], - "description": { - "en": "Allow user to be created without yunohost account." - }, - "arguments": [ - { - "name": "use_web_account", - "type": "boolean", - "ask": { - "en": "Authorized external user creation ?" - }, - "default": true - } - ] - } -] \ No newline at end of file diff --git a/config_panel.json b/config_panel.json deleted file mode 100644 index 9366c54..0000000 --- a/config_panel.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "GitLab configuration panel", - "version": "0.1", - "panel": [ - { - "name": "GitLab configuration", - "id": "main", - "sections": [ - { - "name": "Overwriting config files", - "id": "overwrite_files", - "options": [ - { - "name": "overwrite_nginx", - "ask": { - "en": "Overwrite the nginx config file ?" - }, - "help": "If the file is overwritten, a backup will be created.", - "type": "boolean", - "default": true - } - ] - }, - { - "name": "External users", - "id": "users", - "options": [ - { - "name": "use_web_account", - "ask": { - "en": "Authorized external user creation ?" - }, - "help": "Allow user to be created without yunohost account.", - "type": "boolean", - "default": true - } - ] - } - ] - } - ] -} \ No newline at end of file diff --git a/config_panel.toml b/config_panel.toml new file mode 100644 index 0000000..c44664d --- /dev/null +++ b/config_panel.toml @@ -0,0 +1,19 @@ +version = "1.0" + +[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" \ No newline at end of file diff --git a/scripts/actions/web_account b/scripts/actions/web_account deleted file mode 100644 index 4f6111a..0000000 --- a/scripts/actions/web_account +++ /dev/null @@ -1,57 +0,0 @@ -#!/bin/bash - -#================================================= -# GENERIC STARTING -#================================================= -# IMPORT GENERIC HELPERS -#================================================= - -source scripts/_common.sh -source /usr/share/yunohost/helpers - -#================================================= -# RETRIEVE ARGUMENTS -#================================================= - -# Get use_web_account -use_web_account=${YNH_ACTION_USE_WEB_ACCOUNT} - -app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID} - -#================================================= -# CHECK IF ARGUMENTS ARE CORRECT -#================================================= - -#================================================= -# CHECK IF AN ACTION HAS TO BE DONE -#================================================= - -use_web_account_old=$(ynh_app_setting_get --app=$app --key=use_web_account) - -if [ $use_web_account -eq $use_web_account_old ] -then - ynh_die "use_web_account is already set as $use_web_account." 0 -fi - -#================================================= -# SPECIFIC ACTION -#================================================= -# SET USER CREATION POLICY -#================================================= -if [ $use_web_account -eq 0 ]; then - web_account="Enable" -else - web_account="Disable" -fi -ynh_script_progression --message=--message="$web_account web user creation..." --weight=13 - -echo "ApplicationSetting.last.update_attributes(password_authentication_enabled_for_web: $use_web_account, signup_enabled: $use_web_account)" | gitlab-rails console - -# Update the config of the app -ynh_app_setting_set --app=$app --key=use_web_account --value=$use_web_account - -#================================================= -# END OF SCRIPT -#================================================= - -ynh_script_progression --message="Execution completed" --last \ No newline at end of file diff --git a/scripts/config b/scripts/config index 277cb57..6e70251 100644 --- a/scripts/config +++ b/scripts/config @@ -6,65 +6,33 @@ # 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(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" -} - -#================================================= -# 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" + # Update the config of the app + ynh_app_setting_set --app=$app --key=use_web_account --value=$use_web_account + fi } #================================================= # 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 +ynh_app_config_run $1 \ No newline at end of file