mirror of
https://github.com/YunoHost-Apps/gitlab_ynh.git
synced 2024-09-03 18:36:35 +02:00
Merge pull request #164 from YunoHost-Apps/new-config-panel
New config panel
This commit is contained in:
commit
a6dbc91039
5 changed files with 31 additions and 167 deletions
24
actions.json
24
actions.json
|
@ -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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
|
@ -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
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
19
config_panel.toml
Normal file
19
config_panel.toml
Normal file
|
@ -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"
|
|
@ -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
|
|
|
@ -6,65 +6,33 @@
|
||||||
# IMPORT GENERIC HELPERS
|
# IMPORT GENERIC HELPERS
|
||||||
#=================================================
|
#=================================================
|
||||||
|
|
||||||
source _common.sh
|
|
||||||
source /usr/share/yunohost/helpers
|
source /usr/share/yunohost/helpers
|
||||||
|
|
||||||
|
ynh_abort_if_errors
|
||||||
|
|
||||||
#=================================================
|
#=================================================
|
||||||
# RETRIEVE ARGUMENTS
|
# 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() {
|
set__use_web_account() {
|
||||||
# here you are supposed to read some config file/database/other then print the values
|
if [ -n "${use_web_account}" ]
|
||||||
# echo "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value"
|
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"
|
# Update the config of the app
|
||||||
|
ynh_app_setting_set --app=$app --key=use_web_account --value=$use_web_account
|
||||||
ynh_return "YNH_CONFIG_MAIN_USERS_USE_WEB_ACCOUNT=$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
|
# GENERIC FINALIZATION
|
||||||
#=================================================
|
#=================================================
|
||||||
# SELECT THE ACTION FOLLOWING THE GIVEN ARGUMENT
|
ynh_app_config_run $1
|
||||||
#=================================================
|
|
||||||
|
|
||||||
case $1 in
|
|
||||||
show) show_config;;
|
|
||||||
apply) apply_config;;
|
|
||||||
esac
|
|
Loading…
Reference in a new issue