6 changed files with 263 additions and 6 deletions
-
11actions.toml
-
40config_panel.toml
-
73scripts/actions/public_private
-
100scripts/config
-
4scripts/install
-
41scripts/upgrade
@ -0,0 +1,11 @@ |
|||||
|
[public_private] |
||||
|
name = "Move to public or private" |
||||
|
command = "/bin/bash scripts/actions/public_private" |
||||
|
accepted_return_codes = [0] |
||||
|
description = "Change the public access of the app." |
||||
|
|
||||
|
[public_private.arguments] |
||||
|
[public_private.arguments.is_public] |
||||
|
type = "boolean" |
||||
|
ask = "Is it a public app ?" |
||||
|
default = true |
||||
@ -0,0 +1,40 @@ |
|||||
|
version = "0.1" |
||||
|
name = "Wordpress configuration panel" |
||||
|
|
||||
|
[main] |
||||
|
name = "Wordpress configuration" |
||||
|
|
||||
|
|
||||
|
[main.is_public] |
||||
|
name = "Public access" |
||||
|
|
||||
|
[main.is_public.is_public] |
||||
|
ask = "Is it a public WordPress site ?" |
||||
|
type = "boolean" |
||||
|
default = true |
||||
|
|
||||
|
|
||||
|
[main.overwrite_files] |
||||
|
name = "Overwriting config files" |
||||
|
|
||||
|
[main.overwrite_files.overwrite_nginx] |
||||
|
ask = "Overwrite the nginx config file ?" |
||||
|
type = "boolean" |
||||
|
default = true |
||||
|
help = "If the file is overwritten, a backup will be created." |
||||
|
|
||||
|
[main.overwrite_files.overwrite_phpfpm] |
||||
|
ask = "Overwrite the php-fpm config file ?" |
||||
|
type = "boolean" |
||||
|
default = true |
||||
|
help = "If the file is overwritten, a backup will be created." |
||||
|
|
||||
|
|
||||
|
[main.global_config] |
||||
|
name = "Global configuration" |
||||
|
|
||||
|
[main.global_config.email_type] |
||||
|
ask = "Send HTML email to admin ?" |
||||
|
type = "boolean" |
||||
|
default = true |
||||
|
help = "Allow app scripts to send HTML mails instead of plain text." |
||||
@ -0,0 +1,73 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
#================================================= |
||||
|
# GENERIC STARTING |
||||
|
#================================================= |
||||
|
# IMPORT GENERIC HELPERS |
||||
|
#================================================= |
||||
|
|
||||
|
source /usr/share/yunohost/helpers |
||||
|
|
||||
|
#================================================= |
||||
|
# RETRIEVE ARGUMENTS |
||||
|
#================================================= |
||||
|
|
||||
|
# Get is_public |
||||
|
is_public=${YNH_ACTION_IS_PUBLIC} |
||||
|
|
||||
|
app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID} |
||||
|
|
||||
|
#================================================= |
||||
|
# CHECK IF ARGUMENTS ARE CORRECT |
||||
|
#================================================= |
||||
|
|
||||
|
#================================================= |
||||
|
# CHECK IF AN ACTION HAS TO BE DONE |
||||
|
#================================================= |
||||
|
|
||||
|
is_public_old=$(ynh_app_setting_get --app=$app --key=is_public) |
||||
|
|
||||
|
if [ $is_public -eq $is_public_old ] |
||||
|
then |
||||
|
ynh_die --message="is_public is already set as $is_public." --ret_code=0 |
||||
|
fi |
||||
|
|
||||
|
#================================================= |
||||
|
# SPECIFIC ACTION |
||||
|
#================================================= |
||||
|
# MOVE TO PUBLIC OR PRIVATE |
||||
|
#================================================= |
||||
|
|
||||
|
if [ $is_public -eq 0 ]; then |
||||
|
public_private="private" |
||||
|
else |
||||
|
public_private="public" |
||||
|
fi |
||||
|
ynh_script_progression --message="Moving the application to $public_private..." --weight=3 |
||||
|
|
||||
|
if [ $is_public -eq 0 ] |
||||
|
then |
||||
|
ynh_app_setting_delete --app=$app --key=unprotected_uris |
||||
|
else |
||||
|
ynh_app_setting_set --app=$app --key=unprotected_uris --value="/" |
||||
|
fi |
||||
|
|
||||
|
ynh_script_progression --message="Upgrading SSOwat configuration..." |
||||
|
# Regen ssowat configuration |
||||
|
yunohost app ssowatconf |
||||
|
|
||||
|
# Update the config of the app |
||||
|
ynh_app_setting_set --app=$app --key=is_public --value=$is_public |
||||
|
|
||||
|
#================================================= |
||||
|
# RELOAD NGINX |
||||
|
#================================================= |
||||
|
ynh_script_progression --message="Reloading nginx web server..." |
||||
|
|
||||
|
ynh_systemd_action --service_name=nginx --action=reload |
||||
|
|
||||
|
#================================================= |
||||
|
# END OF SCRIPT |
||||
|
#================================================= |
||||
|
|
||||
|
ynh_script_progression --message="Execution completed" --last |
||||
@ -0,0 +1,100 @@ |
|||||
|
#!/bin/bash |
||||
|
|
||||
|
#================================================= |
||||
|
# GENERIC STARTING |
||||
|
#================================================= |
||||
|
# IMPORT GENERIC HELPERS |
||||
|
#================================================= |
||||
|
|
||||
|
source _common.sh |
||||
|
source /usr/share/yunohost/helpers |
||||
|
|
||||
|
#================================================= |
||||
|
# RETRIEVE ARGUMENTS |
||||
|
#================================================= |
||||
|
|
||||
|
app=${YNH_APP_INSTANCE_NAME:-$YNH_APP_ID} |
||||
|
|
||||
|
#================================================= |
||||
|
# LOAD VALUES |
||||
|
#================================================= |
||||
|
|
||||
|
# 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. |
||||
|
|
||||
|
# is_public |
||||
|
old_is_public="$(ynh_app_setting_get --app=$app --key=is_public)" |
||||
|
is_public="${YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC:-$old_is_public}" |
||||
|
|
||||
|
# 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}" |
||||
|
|
||||
|
# Overwrite php-fpm configuration |
||||
|
old_overwrite_phpfpm="$(ynh_app_setting_get --app=$app --key=overwrite_phpfpm)" |
||||
|
overwrite_phpfpm="${YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM:-$old_overwrite_phpfpm}" |
||||
|
|
||||
|
# Type of admin mail configuration |
||||
|
old_admin_mail_html="$(ynh_app_setting_get $app admin_mail_html)" |
||||
|
admin_mail_html="${YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE:-$old_admin_mail_html}" |
||||
|
|
||||
|
#================================================= |
||||
|
# SHOW_CONFIG FUNCTION FOR 'SHOW' COMMAND |
||||
|
#================================================= |
||||
|
|
||||
|
show_config() { |
||||
|
# here you are supposed to read some config file/database/other then print the values |
||||
|
# ynh_return "YNH_CONFIG_${PANEL_ID}_${SECTION_ID}_${OPTION_ID}=value" |
||||
|
|
||||
|
ynh_return "YNH_CONFIG_MAIN_IS_PUBLIC_IS_PUBLIC=$is_public" |
||||
|
|
||||
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_NGINX=$overwrite_nginx" |
||||
|
ynh_return "YNH_CONFIG_MAIN_OVERWRITE_FILES_OVERWRITE_PHPFPM=$overwrite_phpfpm" |
||||
|
|
||||
|
ynh_return "YNH_CONFIG_MAIN_GLOBAL_CONFIG_EMAIL_TYPE=$admin_mail_html" |
||||
|
} |
||||
|
|
||||
|
#================================================= |
||||
|
# MODIFY THE CONFIGURATION |
||||
|
#================================================= |
||||
|
|
||||
|
apply_config() { |
||||
|
|
||||
|
# Change public accessibility |
||||
|
if [ "$is_public" = "true" ] |
||||
|
then |
||||
|
yunohost app action run $app public_private --args is_public=1 |
||||
|
else |
||||
|
yunohost app action run $app public_private --args is_public=0 |
||||
|
fi |
||||
|
|
||||
|
#================================================= |
||||
|
# MODIFY OVERWRITTING SETTINGS |
||||
|
#================================================= |
||||
|
|
||||
|
# Set overwrite_nginx |
||||
|
ynh_app_setting_set --app=$app --key=overwrite_nginx --value="$overwrite_nginx" |
||||
|
|
||||
|
# Set overwrite_phpfpm |
||||
|
ynh_app_setting_set --app=$app --key=overwrite_phpfpm --value="$overwrite_phpfpm" |
||||
|
|
||||
|
#================================================= |
||||
|
# MODIFY EMAIL SETTING |
||||
|
#================================================= |
||||
|
|
||||
|
# Set admin_mail_html |
||||
|
ynh_app_setting_set --app=$app --key=admin_mail_html --value="$admin_mail_html" |
||||
|
} |
||||
|
|
||||
|
#================================================= |
||||
|
# GENERIC FINALIZATION |
||||
|
#================================================= |
||||
|
# SELECT THE ACTION FOLLOWING THE GIVEN ARGUMENT |
||||
|
#================================================= |
||||
|
|
||||
|
case $1 in |
||||
|
show) show_config;; |
||||
|
apply) apply_config;; |
||||
|
esac |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue