diff --git a/README.md b/README.md index a915a45..ddf8163 100644 --- a/README.md +++ b/README.md @@ -11,7 +11,7 @@ If you don't have YunoHost, please consult [the guide](https://yunohost.org/#/in Moodle is widely used around the world by universities, schools, companies and all manner of organisations and individuals. -**Shipped version:** 3.10.0 +**Shipped version:** 3.10.1 ## Screenshots diff --git a/check_process b/check_process index 7714d41..004eec0 100644 --- a/check_process +++ b/check_process @@ -18,8 +18,6 @@ multi_instance=1 port_already_use=0 change_url=0 -;;; Levels - Level 5=auto ;;; Options Email= Notification=none diff --git a/conf/app.src b/conf/app.src index e83f1b3..dbbb542 100644 --- a/conf/app.src +++ b/conf/app.src @@ -1,5 +1,5 @@ -SOURCE_URL=https://github.com/moodle/moodle/archive/v3.10.0.zip -SOURCE_SUM=c80cfa811acda62363cccdd876bf001e802ceccb1f261846c9e59c6a66f6b125 +SOURCE_URL=https://github.com/moodle/moodle/archive/v3.10.1.zip +SOURCE_SUM=e61c53ce6e972e18e9ef34ad4406654dacc9b627059f7fb1437d6db0a801c308 SOURCE_SUM_PRG=sha256sum SOURCE_FORMAT=zip SOURCE_IN_SUBDIR=true diff --git a/manifest.json b/manifest.json index 8071890..3e23b67 100644 --- a/manifest.json +++ b/manifest.json @@ -6,7 +6,7 @@ "en": "Online learning platform", "fr": "Plateforme d'apprentissage en ligne" }, - "version": "3.10.0~ynh1", + "version": "3.10.1~ynh1", "url": "https://moodle.org/", "license": "GPL-3.0-or-later", "maintainer": { diff --git a/pull_request_template.md b/pull_request_template.md index d2922c1..6c28fc5 100644 --- a/pull_request_template.md +++ b/pull_request_template.md @@ -13,6 +13,4 @@ ## Package_check results --- -*If you have access to [App Continuous Integration for packagers](https://yunohost.org/#/packaging_apps_ci) you can provide a link to the package_check results like below, replacing '-NUM-' in this link by the PR number and USERNAME by your username on the ci-apps-dev. Or you provide a screenshot or a pastebin of the results* - -[![Build Status](https://ci-apps-dev.yunohost.org/jenkins/job/moodle_ynh%20PR-NUM-%20(USERNAME)/badge/icon)](https://ci-apps-dev.yunohost.org/jenkins/job/moodle_ynh%20PR-NUM-%20(USERNAME)/) +* An automatic package_check will be launch at https://ci-apps-dev.yunohost.org/, when you add a specific comment to your Pull Request: "!testme", "!gogogadgetoci" or "By the power of systemd, I invoke The Great App CI to test this Pull Request!"* diff --git a/scripts/install b/scripts/install index 10afeb4..c4aac41 100644 --- a/scripts/install +++ b/scripts/install @@ -32,7 +32,7 @@ app=$YNH_APP_INSTANCE_NAME #================================================= # CHECK IF THE APP CAN BE INSTALLED WITH THESE ARGS #================================================= -ynh_script_progression --message="Validating installation parameters..." +ynh_script_progression --message="Validating installation parameters..." --weight=1 final_path=/var/www/$app test ! -e "$final_path" || ynh_die --message="This path already contains a folder" @@ -45,7 +45,7 @@ ynh_webpath_register --app="$app" --domain="$domain" --path_url="$path_url" #================================================= # STORE SETTINGS FROM MANIFEST #================================================= -ynh_script_progression --message="Storing installation settings..." +ynh_script_progression --message="Storing installation settings..." --weight=1 ynh_app_setting_set --app="$app" --key=domain --value="$domain" ynh_app_setting_set --app="$app" --key=path --value="$path_url" @@ -57,7 +57,7 @@ ynh_app_setting_set --app="$app" --key=is_public --value="$is_public" #================================================= # INSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Installing dependencies..." +ynh_script_progression --message="Installing dependencies..." --weight=1 ynh_install_app_dependencies "$pkg_dependencies" @@ -117,15 +117,15 @@ phpversion=$(ynh_app_setting_get --app="$app" --key=phpversion) ynh_app_setting_set --app="$app" --key=data_path --value="$data_path" mkdir -p "$data_path" -chown -R "$app": "$data_path" -chown -R "$app": "$final_path" +chown -R $app: "$data_path" +chown -R $app: "$final_path" #================================================= # SETUP APPLICATION #================================================= ynh_script_progression --message="Setting up the application..." --weight=190 -exec_as "$app" php"$phpversion" "$final_path/admin/cli/install.php" --wwwroot="https://$domain${path_url%/}" --dataroot="$data_path" --dbtype='pgsql' --dbname="$db_name" --dbuser="$db_name" --dbpass="$db_pwd" --adminuser="$admin" --adminpass="$password" --adminemail="$email" --fullname="YunoHost" --shortname="YNH" --non-interactive --agree-license +exec_as $app php${phpversion} "$final_path/admin/cli/install.php" --wwwroot="https://$domain${path_url%/}" --dataroot="$data_path" --dbtype='pgsql' --dbname="$db_name" --dbuser="$db_name" --dbpass="$db_pwd" --adminuser="$admin" --adminpass="$password" --adminemail="$email" --fullname="YunoHost" --shortname="YNH" --non-interactive --agree-license # Calculate and store the config file checksum into the app settings ynh_store_file_checksum "$final_path/config.php" @@ -133,7 +133,7 @@ ynh_store_file_checksum "$final_path/config.php" #================================================= # ACTIVATE LDAP SUPPORT #================================================= -ynh_script_progression --message="Activate LDAP support..." +ynh_script_progression --message="Activate LDAP support..." --weight=3 ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config SET value='ldap,email' WHERE name='auth';" ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='ldap://127.0.0.1/' WHERE plugin='auth_ldap' AND name='host_url';" @@ -148,12 +148,12 @@ ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_p # The admin is an ldap user ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_user SET auth='ldap' WHERE username='$admin';" -exec_as "$app" php"$phpversion" "$final_path/admin/cli/purge_caches.php" +exec_as $app php${phpversion} "$final_path/admin/cli/purge_caches.php" #================================================= # ADD CRON JOB #================================================= -ynh_script_progression --message="Adding cron job..." +ynh_script_progression --message="Adding cron job..." --weight=2 # Set up poller cp "../conf/cron" "/etc/cron.d/$app" @@ -166,22 +166,21 @@ ynh_replace_string --match_string="__PHPVERSION__" --replace_string="$phpversion #================================================= # SECURE FILES AND DIRECTORIES #================================================= -ynh_script_progression --message="Securing files and directories..." +ynh_script_progression --message="Securing files and directories..." --weight=1 # Set permissions to app files -chown -R "$app": "$data_path" -chown -R "$app": "$final_path" +chown -R $app: "$data_path" +chown -R $app: "$final_path" #================================================= # SETUP SSOWAT #================================================= -ynh_script_progression --message="Configuring SSOwat..." +ynh_script_progression --message="Configuring permissions..." --weight=1 # Make app public if necessary -if [ "$is_public" -eq 1 ] +if [ $is_public -eq 1 ] then - # unprotected_uris allows SSO credentials to be passed anyway. - ynh_app_setting_set --app="$app" --key=unprotected_uris --value="/" + ynh_permission_update --permission="main" --add="visitors" fi #================================================= diff --git a/scripts/remove b/scripts/remove index 5bcf4e5..e0c47e8 100644 --- a/scripts/remove +++ b/scripts/remove @@ -12,7 +12,7 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." +ynh_script_progression --message="Loading installation settings..." --weight=1 app=$YNH_APP_INSTANCE_NAME @@ -27,7 +27,7 @@ data_path=$(ynh_app_setting_get --app="$app" --key=data_path) #================================================= # REMOVE THE POSTGRESQL DATABASE #================================================= -ynh_script_progression --message="Removing the PostgreSQL database..." +ynh_script_progression --message="Removing the PostgreSQL database..." --weight=1 # Remove a database if it exists, along with the associated user ynh_psql_remove_db --db_user="$db_user" --db_name="$db_name" @@ -35,7 +35,7 @@ ynh_psql_remove_db --db_user="$db_user" --db_name="$db_name" #================================================= # REMOVE DEPENDENCIES #================================================= -ynh_script_progression --message="Removing dependencies..." +ynh_script_progression --message="Removing dependencies..." --weight=1 # Remove metapackage and its dependencies ynh_remove_app_dependencies @@ -43,7 +43,7 @@ ynh_remove_app_dependencies #================================================= # REMOVE APP MAIN DIR #================================================= -ynh_script_progression --message="Removing Moodle main directory..." +ynh_script_progression --message="Removing Moodle main directory..." --weight=2 # Remove the app directory securely ynh_secure_remove --file="$final_path" @@ -51,7 +51,7 @@ ynh_secure_remove --file="$final_path" #================================================= # REMOVE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Removing NGINX web server configuration..." +ynh_script_progression --message="Removing NGINX web server configuration..." --weight=1 # Remove the dedicated NGINX config ynh_remove_nginx_config @@ -69,7 +69,7 @@ ynh_remove_fpm_config #================================================= # REMOVE VARIOUS FILES #================================================= -ynh_script_progression --message="Removing various files..." +ynh_script_progression --message="Removing various files..." --weight=2 # Remove a cron file ynh_secure_remove --file="/etc/cron.d/$app" @@ -82,10 +82,10 @@ ynh_secure_remove --file="$data_path" #================================================= # REMOVE DEDICATED USER #================================================= -ynh_script_progression --message="Removing the dedicated system user..." +ynh_script_progression --message="Removing the dedicated system user..." --weight=1 # Delete a system user -ynh_system_user_delete --username="$app" +ynh_system_user_delete --username=$app #================================================= # END OF SCRIPT diff --git a/scripts/restore b/scripts/restore index 175cc7f..b8fea29 100644 --- a/scripts/restore +++ b/scripts/restore @@ -19,7 +19,7 @@ ynh_abort_if_errors #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading settings..." +ynh_script_progression --message="Loading settings..." --weight=1 app=$YNH_APP_INSTANCE_NAME @@ -34,7 +34,7 @@ phpversion=$(ynh_app_setting_get --app="$app" --key=phpversion) #================================================= # CHECK IF THE APP CAN BE RESTORED #================================================= -ynh_script_progression --message="Validating restoration parameters..." +ynh_script_progression --message="Validating restoration parameters..." --weight=1 ynh_webpath_available --domain="$domain" --path_url="$path_url" \ || ynh_die --message="Path not available: ${domain}${path_url}" @@ -48,14 +48,14 @@ test ! -d "$data_path" \ #================================================= # RESTORE THE NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Restoring the NGINX configuration..." +ynh_script_progression --message="Restoring the NGINX configuration..." --weight=1 ynh_restore_file --origin_path="/etc/nginx/conf.d/$domain.d/$app.conf" #================================================= # RESTORE THE APP MAIN DIR #================================================= -ynh_script_progression --message="Restoring Moodle main directory..." +ynh_script_progression --message="Restoring Moodle main directory..." --weight=1 ynh_restore_file --origin_path="$final_path" @@ -64,10 +64,10 @@ ynh_restore_file --origin_path="$data_path" #================================================= # RECREATE THE DEDICATED USER #================================================= -ynh_script_progression --message="Recreating the dedicated system user..." +ynh_script_progression --message="Recreating the dedicated system user..." --weight=1 # Create the dedicated user (if not existing) -ynh_system_user_create --username="$app" +ynh_system_user_create --username=$app #================================================= # RESTORE USER RIGHTS @@ -75,13 +75,13 @@ ynh_system_user_create --username="$app" ynh_script_progression --message="Restoring user rights..." # Restore permissions on app files -chown -R "$app": "$final_path" -chown -R "$app": "$data_path" +chown -R $app: "$final_path" +chown -R $app: "$data_path" #================================================= # RESTORE THE PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Restoring PHP-FPM configuration..." +ynh_script_progression --message="Restoring PHP-FPM configuration..." --weight=1 ynh_restore_file --origin_path="/etc/php/$phpversion/fpm/pool.d/$app.conf" @@ -93,7 +93,7 @@ ynh_add_fpm_config --package="$extra_php_dependencies" #================================================= # REINSTALL DEPENDENCIES #================================================= -ynh_script_progression --message="Reinstalling dependencies..." +ynh_script_progression --message="Reinstalling dependencies..." --weight=3 # Define and install dependencies ynh_install_app_dependencies "$pkg_dependencies" @@ -112,7 +112,7 @@ ynh_psql_connect_as --user="$db_user" --password="$db_pwd" --database="$db_name" #================================================= # RESTORE THE CRON FILE #================================================= -ynh_script_progression --message="Restoring the cron file..." +ynh_script_progression --message="Restoring the cron file..." --weight=3 ynh_restore_file --origin_path="/etc/cron.d/$app" @@ -121,7 +121,7 @@ ynh_restore_file --origin_path="/etc/cron.d/$app" #================================================= # RELOAD NGINX AND PHP-FPM #================================================= -ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." +ynh_script_progression --message="Reloading NGINX web server and PHP-FPM..." --weight=1 ynh_systemd_action --service_name=php$phpversion-fpm --action=reload ynh_systemd_action --service_name=nginx --action=reload diff --git a/scripts/upgrade b/scripts/upgrade index db792ac..242595d 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -12,7 +12,7 @@ source /usr/share/yunohost/helpers #================================================= # LOAD SETTINGS #================================================= -ynh_script_progression --message="Loading installation settings..." +ynh_script_progression --message="Loading installation settings..." --weight=1 app=$YNH_APP_INSTANCE_NAME @@ -27,20 +27,26 @@ db_name=$(ynh_app_setting_get --app="$app" --key=db_name) #================================================= # CHECK VERSION #================================================= -ynh_script_progression --message="Checking version..." upgrade_type=$(ynh_check_app_version_changed) #================================================= # ENSURE DOWNWARD COMPATIBILITY #================================================= -ynh_script_progression --message="Ensuring downward compatibility..." +ynh_script_progression --message="Ensuring downward compatibility..." --weight=1 # If the admin is not defined, We can't upgrade this app if [ -z "$admin" ]; then ynh_die --message="This app can't be upgraded from a very old version of the package. Please remove and reinstall moodle_ynh" fi +# Cleaning legacy permissions +if ynh_legacy_permissions_exists; then + ynh_legacy_permissions_delete_all + + ynh_app_setting_delete --app=$app --key=is_public +fi + #================================================= # BACKUP BEFORE UPGRADE THEN ACTIVE TRAP #================================================= @@ -72,7 +78,7 @@ fi #================================================= # NGINX CONFIGURATION #================================================= -ynh_script_progression --message="Upgrading NGINX web server configuration..." +ynh_script_progression --message="Upgrading NGINX web server configuration..." --weight=1 # Create a dedicated nginx config ynh_add_nginx_config @@ -80,22 +86,22 @@ ynh_add_nginx_config #================================================= # UPGRADE DEPENDENCIES #================================================= -ynh_script_progression --message="Upgrading dependencies..." +ynh_script_progression --message="Upgrading dependencies..." --weight=1 -ynh_install_app_dependencies "$pkg_dependencies" +ynh_install_app_dependencies $pkg_dependencies #================================================= # CREATE DEDICATED USER #================================================= -ynh_script_progression --message="Making sure dedicated system user exists..." +ynh_script_progression --message="Making sure dedicated system user exists..." --weight=4 # Create a dedicated user (if not existing) -ynh_system_user_create --username="$app" +ynh_system_user_create --username=$app #================================================= # PHP-FPM CONFIGURATION #================================================= -ynh_script_progression --message="Upgrading PHP-FPM configuration..." +ynh_script_progression --message="Upgrading PHP-FPM configuration..." --weight=1 # Create a dedicated PHP-FPM config ynh_add_fpm_config --package="$extra_php_dependencies" @@ -106,11 +112,11 @@ phpversion=$(ynh_app_setting_get --app="$app" --key=phpversion) #================================================= # UPGRADING THE APPLICATION #================================================= -ynh_script_progression --message="Upgrading the application..." +ynh_script_progression --message="Upgrading the application..." --weight=1 ynh_backup_if_checksum_is_different --file="$final_path/config.php" -exec_as "$app" php"$phpversion" "$final_path/admin/cli/upgrade.php" --non-interactive +exec_as $app php${phpversion} "$final_path/admin/cli/upgrade.php" --non-interactive # Recalculate and store the checksum of the file for the next upgrade. ynh_store_file_checksum --file="$final_path/config.php" @@ -120,13 +126,13 @@ ynh_store_file_checksum --file="$final_path/config.php" #================================================= # Set permissions on app files -chown -R "$app": "$data_path" -chown -R "$app": "$final_path" +chown -R $app: "$data_path" +chown -R $app: "$final_path" #================================================= # ACTIVATE LDAP SUPPORT #================================================= -ynh_script_progression --message="Activate LDAP support..." +ynh_script_progression --message="Activate LDAP support..." --weight=20 ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config SET value='ldap,email' WHERE name='auth';" ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_plugins SET value='ldap://127.0.0.1/' WHERE plugin='auth_ldap' AND name='host_url';" @@ -141,12 +147,12 @@ ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_config_p # The admin is an ldap user ynh_psql_execute_as_root --database="$db_name" --sql="UPDATE public.mdl_user SET auth='ldap' WHERE username='$admin';" -exec_as "$app" php"$phpversion" "$final_path/admin/cli/purge_caches.php" +exec_as $app php${phpversion} "$final_path/admin/cli/purge_caches.php" #================================================= # ADD CRON JOB #================================================= -ynh_script_progression --message="Adding cron job..." +ynh_script_progression --message="Adding cron job..." --weight=4 # Set up poller cp "../conf/cron" "/etc/cron.d/$app" @@ -159,28 +165,16 @@ ynh_replace_string "__PHPVERSION__" "$phpversion" "/etc/cron.d/$app" #================================================= # SECURE FILES AND DIRECTORIES #================================================= -ynh_script_progression --message="Securing files and directories..." +ynh_script_progression --message="Securing files and directories..." --weight=1 # Set permissions on app files -chown -R "$app": "$data_path" -chown -R "$app": "$final_path" - -#================================================= -# SETUP SSOWAT -#================================================= -ynh_script_progression --message="Upgrading SSOwat configuration..." - -# Make app public if necessary -if [ "$is_public" -eq 1 ] -then - # unprotected_uris allows SSO credentials to be passed anyway - ynh_app_setting_set --app="$app" --key=unprotected_uris --value="/" -fi +chown -R $app: "$data_path" +chown -R $app: "$final_path" #================================================= # RELOAD NGINX #================================================= -ynh_script_progression --message="Reloading NGINX web server..." +ynh_script_progression --message="Reloading NGINX web server..." --weight=1 ynh_systemd_action --service_name=nginx --action=reload