From 7596a265ed352be6d481f393ac84e6838a68a11f Mon Sep 17 00:00:00 2001 From: ljf Date: Tue, 22 Sep 2020 02:05:24 +0200 Subject: [PATCH] [enh] Polish this package (remove branding, ldap support) --- conf/default.settings.php | 2 +- conf/ldap.conf | 28 ++++++++++++ conf/nginx.conf | 2 +- conf/yoursite.aliases.drushrc.php | 4 +- manifest.json | 35 ++++++++++++++ scripts/install | 76 +++++++++++++++++++++++-------- scripts/remove | 8 ++++ scripts/upgrade | 4 +- 8 files changed, 133 insertions(+), 26 deletions(-) create mode 100644 conf/ldap.conf diff --git a/conf/default.settings.php b/conf/default.settings.php index 0bc1975..61d9419 100644 --- a/conf/default.settings.php +++ b/conf/default.settings.php @@ -679,4 +679,4 @@ $conf['file_scan_ignore_directories'] = array( */ $conf['x_frame_options'] = ''; -$conf['file_temporary_path'] = '__FINALPATH__/sites/default/files/tmp'; +$conf['file_temporary_path'] = '__FINALPATH__/app/sites/default/files/tmp'; diff --git a/conf/ldap.conf b/conf/ldap.conf new file mode 100644 index 0000000..3b023d7 --- /dev/null +++ b/conf/ldap.conf @@ -0,0 +1,28 @@ +sids: + localhost: localhost +authenticationMode: 1 +loginUIUsernameTxt: null +loginUIPasswordTxt: null +ldapUserHelpLinkUrl: null +ldapUserHelpLinkText: 'Logon Help' +emailOption: 3 +emailUpdate: 3 +passwordOption: 2 +allowOnlyIfTextInDn: { } +excludeIfTextInDn: { } +allowTestPhp: '' +excludeIfNoAuthorizations: null +ssoRemoteUserStripDomainName: null +ssoExcludedPaths: { } +ssoExcludedHosts: { } +seamlessLogin: null +ssoNotifyAuthentication: null +ldapImplementation: null +cookieExpire: null +emailTemplate: '@username@fake-domain.com' +emailTemplateHandling: 3 +templateUsagePromptUser: 0 +templateUsageNeverUpdate: 0 +templateUsageResolveConflict: 0 +templateUsagePromptRegex: '.*@fake-domain\.com' +templateUsageRedirectOnLogin: 0 diff --git a/conf/nginx.conf b/conf/nginx.conf index 6c6de26..861e10c 100644 --- a/conf/nginx.conf +++ b/conf/nginx.conf @@ -2,7 +2,7 @@ location __PATH__/ { # Path to source - alias __FINALPATH__/ ; + alias __FINALPATH__/app/ ; index index.php; if (!-e $request_filename) { diff --git a/conf/yoursite.aliases.drushrc.php b/conf/yoursite.aliases.drushrc.php index 453909e..4035f0f 100644 --- a/conf/yoursite.aliases.drushrc.php +++ b/conf/yoursite.aliases.drushrc.php @@ -28,10 +28,10 @@ * Set the root and site_path values to point to your local site */ $aliases['__APP__'] = array( - 'root' => '__FINALPATH__/', + 'root' => '__FINALPATH__/app/', 'uri' => 'https://__DOMAIN____PATH_URL__', 'path-aliases' => array( '%dump-dir' => '/tmp', ), ); -?> \ No newline at end of file +?> diff --git a/manifest.json b/manifest.json index 355b4ac..43d6c41 100644 --- a/manifest.json +++ b/manifest.json @@ -43,6 +43,15 @@ "example": "/poll", "default": "/poll" }, + { + "name": "admin", + "type": "user", + "ask": { + "en": "Choose an admin user", + "fr": "Choisissez l’administrateur" + }, + "example": "johndoe" + }, { "name": "password", "type": "password", @@ -62,6 +71,32 @@ "choices": ["fr", "en"], "default": "en" }, + { + "name": "expiration", + "type": "string", + "ask": { + "en": "After how many weeks do the forms expire?", + "fr": "Après combien de semaines les formulaires expirent-ils ?" + }, + "help": { + "en": "Set 0 to disable expiration", + "fr": "Mettre 0 pour désactiver l'expiration" + }, + "default": "0" + }, + { + "name": "deletion", + "type": "string", + "ask": { + "en": "After how many weeks is the forms deleted?", + "fr": "Après combien de semaines les formulaires sont-ils supprimés ?" + }, + "help": { + "en": "Set 0 to disable deletion", + "fr": "Mettre 0 pour désactiver la suppression" + }, + "default": "0" + }, { "name": "is_public", "type": "boolean", diff --git a/scripts/install b/scripts/install index baeb14d..4567358 100644 --- a/scripts/install +++ b/scripts/install @@ -26,7 +26,11 @@ domain=$YNH_APP_ARG_DOMAIN path_url=$YNH_APP_ARG_PATH is_public=$YNH_APP_ARG_IS_PUBLIC password=$YNH_APP_ARG_PASSWORD +admin=admin language=$YNH_APP_ARG_LANGUAGE +expiration=$YNH_APP_ARG_EXPIRATION +deletion=$YNH_APP_ARG_DELETION +admin_mail="root@$domain" app=$YNH_APP_INSTANCE_NAME @@ -48,9 +52,12 @@ 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 +ynh_app_setting_set --app=$app --key=admin --value=$admin ynh_app_setting_set --app=$app --key=password --value=$password ynh_app_setting_set --app=$app --key=is_public --value=$is_public ynh_app_setting_set --app=$app --key=language --value=$language +ynh_app_setting_set --app=$app --key=expiration --value=$expiration +ynh_app_setting_set --app=$app --key=deletion --value=$deletion #================================================= # STANDARD MODIFICATIONS @@ -80,7 +87,7 @@ ynh_script_progression --message="Setting up source files..." --weight=9 ynh_app_setting_set --app=$app --key=final_path --value=$final_path # Download, check integrity, uncompress and patch the source from app.src -ynh_setup_source --dest_dir="$final_path" +ynh_setup_source --dest_dir="$final_path/app" #================================================= # NGINX CONFIGURATION @@ -141,9 +148,9 @@ export PATH="$final_path/.composer/vendor/bin:$PATH" #================================================= ynh_script_progression --message="Initializing tmp and private directory..." --weight=1 -mkdir -p "$final_path/sites/default/files" -chmod 2775 "$final_path/sites/default/files" -mkdir -p "$final_path/sites/default/files/tmp" +mkdir -p "$final_path/app/sites/default/files" +chmod 2775 "$final_path/app/sites/default/files" +mkdir -p "$final_path/app/sites/default/files/tmp" mkdir -p "/home/yunohost.app/$app/data" chown -R $app: "/home/yunohost.app/$app/data" @@ -152,20 +159,20 @@ chmod 775 "/home/yunohost.app/$app/data" #================================================= # ADD MISSING IMAGES #================================================= -ynh_script_progression --message="Adding missing images..." --weight=2 - -mkdir -p "$final_path/sites/default/files/imgforms" - -cp ../sources/anim_analyse.gif "$final_path/sites/default/files/imgforms/" -cp ../sources/anim_creation.gif "$final_path/sites/default/files/imgforms/" -cp ../sources/partager.png "$final_path/sites/default/files/imgforms/" +#ynh_script_progression --message="Adding missing images..." --weight=2 +# +#mkdir -p "$final_path/sites/default/files/imgforms" +# +#cp ../sources/anim_analyse.gif "$final_path/sites/default/files/imgforms/" +#cp ../sources/anim_creation.gif "$final_path/sites/default/files/imgforms/" +#cp ../sources/partager.png "$final_path/sites/default/files/imgforms/" #================================================= # MODIFY CONFIG FILES #================================================= ynh_script_progression --message="Modifying a config file..." --weight=1 -config_file=$final_path/sites/default/settings.php +config_file=$final_path/app/sites/default/settings.php cp ../conf/default.settings.php "$config_file" ynh_replace_string --match_string="__DB_NAME__" --replace_string="$db_name" --target_file="$config_file" @@ -174,20 +181,25 @@ ynh_replace_string --match_string="__DB_PWD__" --replace_string="$db_pwd" --targ ynh_replace_string --match_string="__FINALPATH__" --replace_string="$final_path" --target_file="$config_file" #================================================= -# CHANGE ADMIN PASSWORD AND APPLY CUSTOM CONF +# INSTALLING FRAMAFORMS WITH DRUSH #================================================= ynh_script_progression --message="Installing database..." --weight=19 chown -R $app: $final_path update-alternatives --set php /usr/bin/php$phpversion -ynh_exec_as $app env PATH=$PATH drush @$app site-install framaforms_org install_configure_form.site_contact_url="https://forum.yunohost.org/t/framaforms-create-polls-using-drag-and-drop/8208" install_configure_form.site_default_country=FR -y --locale="$language" --account-name="admin" --account-pass="$password" --site-name="Framaforms" --site-mail="no-reply@$domain" 2>&1 +ynh_exec_as $app env PATH=$PATH drush @$app site-install framaforms_org install_configure_form.site_contact_url="https://forum.yunohost.org/t/framaforms-create-polls-using-drag-and-drop/8208" install_configure_form.site_default_country=FR -y --locale="$language" --account-name="admin" --account-pass="$password" --site-name="Framaforms" --site-mail="$admin_mail" 2>&1 +ynh_exec_as $app env PATH=$PATH drush @$app variable-set update_notify_emails "$admin_mail" ynh_exec_as $app env PATH=$PATH drush @$app variable-set file_private_path "/home/yunohost.app/$app/data" 2>&1 ynh_exec_as $app env PATH=$PATH drush @$app pm-enable framaforms_feature -y --resolve-dependencies 2>&1 ynh_exec_as $app env PATH=$PATH drush @$app php-eval "module_load_include('inc', 'framaforms', 'includes/framaforms.pages');create_all_pages();" 2>&1 || true + +#================================================= +# IMPORTING LANGUAGE PACK +#================================================= +ynh_script_progression --message="Importing language pack..." --weight=5 + sudo -u $app env PATH=$PATH drush @$app pm-download -y drush_language -#sudo -u $app env PATH=$PATH drush @$app pm-download ldap -#sudo -u $app env PATH=$PATH drush @$app pm-enable -y ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role sudo -u $app env PATH=$PATH drush @$app pm-download -y l10n_update sudo -u $app env PATH=$PATH drush @$app pm-enable -y l10n_update sudo -u $app env PATH=$PATH drush @$app language-add $language -y @@ -195,10 +207,34 @@ sudo -u $app env PATH=$PATH drush @$app language-default $language -y sudo -u $app env PATH=$PATH drush @$app cache-clear drush -y sudo -u $app env PATH=$PATH drush @$app l10n-update-refresh -y sudo -u $app env PATH=$PATH drush @$app l10n-update -y -sudo -u $app env PATH=$PATH drush @$app pm-update -y || true -sudo -u $app env PATH=$PATH drush @$app core-cron -y || true -# Remove some Framasoft branding -#ynh_exec_as $app env PATH=$PATH drush @$app sql-query "UPDATE block_custom SET body='' WHERE bid=12" 2>&1 + +# We don't upgrade module to avoid to erase framaforms change +# in drupal core and modules code +# see https://framagit.org/framasoft/framaforms/-/wikis/modifications +#sudo -u $app env PATH=$PATH drush @$app pm-update -y + +#================================================= +# REMOVING BRANDING AND CHANGING DEFAULT SETTINGS +#================================================= +ynh_script_progression --message="Removing branding and change default settings..." --weight=1 + +sudo -u $app env PATH=$PATH drush @$app vset error_level 0 +sudo -u $app env PATH=$PATH drush @$app vset framaforms_notification_period_value $expiration +sudo -u $app env PATH=$PATH drush @$app vset framaforms_deletion_period_value $deletion +# Remove framaforms footer +sudo -u $app env PATH=$PATH drush @$app sql-query "UPDATE block SET region='-1', status=0 WHERE delta='framaforms_footer' AND region='footer'" + + +#================================================= +# CONFIGURING LDAP +#================================================= +ynh_script_progression --message="Configuring LDAP authentication..." --weight=1 + +sudo -u $app env PATH=$PATH drush @$app pm-download ldap +sudo -u $app env PATH=$PATH drush @$app pm-enable -y ldap_servers ldap_user ldap_authentication ldap_authorization ldap_authorization_drupal_role +# Generated with sudo -u postgres pg_dump -a -t ldap_servers --inserts framaforms +sudo -u $app env PATH=$PATH drush @$app sql-query "INSERT INTO public.ldap_servers VALUES ('localhost', 1, 'localhost', 1, 'default', 'ldap://127.0.0.1', 389, 0, 0, 3, '', NULL, 'a:2:{i:0;s:27:\"ou=users,dc=yunohost,dc=org\";i:1;s:28:\"ou=groups,dc=yunohost,dc=org\";}', 'uid', 'uid', 'mail', '', '', '', 0, 'cn=%username,ou=users,dc=yunohost,dc=org', '', 'ljf', '', 0, 'groupofnamesynh', 0, 0, '', 'memberuid', 'dn', 0, '', 'all_users', '', 0, 1000, 0);" +cat ../conf/ldap.conf | sudo -u $app env PATH=$PATH drush @$app variable-set --format=yaml ldap_authentication_conf - update-alternatives --set php /usr/bin/php${YNH_DEFAULT_PHP_VERSION} diff --git a/scripts/remove b/scripts/remove index bc8e4ad..a30b0ae 100644 --- a/scripts/remove +++ b/scripts/remove @@ -47,6 +47,14 @@ ynh_script_progression --message="Removing app main directory..." --weight=1 # Remove the app directory securely ynh_secure_remove --file="$final_path" +#================================================= +# REMOVE APP DATA DIR +#================================================= +ynh_script_progression --message="Removing app main directory..." --weight=1 + +# Remove the app directory securely +ynh_secure_remove --file="/home/yunohost.app/$app" + #================================================= # REMOVE NGINX CONFIGURATION #================================================= diff --git a/scripts/upgrade b/scripts/upgrade index 3e5c1f3..d649c97 100644 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -83,7 +83,7 @@ then ynh_script_progression --message="Upgrading source files..." --weight=9 # Download, check integrity, uncompress and patch the source from app.src - ynh_setup_source --dest_dir="$final_path" + ynh_setup_source --dest_dir="$final_path/app" fi #================================================= @@ -136,7 +136,7 @@ if [ "$upgrade_type" == "UPGRADE_APP" ] then ynh_script_progression --message="Upgrading Drupal..." --weight=30 - ynh_backup_if_checksum_is_different --file="$final_path/$app/sites/default/settings.php" + ynh_backup_if_checksum_is_different --file="$final_path/app/sites/default/settings.php" chown -R $app: $final_path