From 1d2c80b1fddb87c2bd58d655533b38338a9466b0 Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 8 Apr 2019 21:52:19 +0200 Subject: [PATCH 1/2] implement nextcloud upgrade --- scripts/upgrade | 68 ++++++++++++++++++++++++++++++++++++------------- 1 file changed, 51 insertions(+), 17 deletions(-) diff --git a/scripts/upgrade b/scripts/upgrade index 83555d7..c283622 100755 --- a/scripts/upgrade +++ b/scripts/upgrade @@ -141,42 +141,76 @@ ynh_replace_string __STATEDIR__ $statedir ../conf/config.php # Enable caldav carddav support if yunohost app list --installed -f baikal | grep -q id ; then echo "Detected Baikal" - caldavdomain=$(ynh_app_setting_get baikal domain) - caldavpath=$(ynh_app_setting_get baikal path) - caldavpath=${caldavpath%/} + bailkaldomain=$(ynh_app_setting_get baikal domain) + bailkalpath=$(ynh_app_setting_get baikal path) + bailkalpath=${bailkalpath%/} # Configuration of backend ynh_replace_string __BACKEND__ BackendCombined ../conf/config.php ynh_replace_string __BACKEND__ BackendCombined ../conf/backend/config-autodiscover.php # Configuration baikal - ynh_replace_string __BAIKALDOMAIN__ $caldavdomain ../conf/backend/config-caldav.php - ynh_replace_string __BAIKALDOMAIN__ $caldavdomain ../conf/backend/config-carddav.php - ynh_replace_string __BAIKALPATH__ $caldavpath ../conf/backend/config-caldav.php - ynh_replace_string __BAIKALPATH__ $caldavpath ../conf/backend/config-carddav.php - ynh_replace_string __DOMAINTOCHANGE__ $domain ../conf/backend/config-imap.php + ynh_replace_string __CALDAV_SERVER__ "${bailkaldomain}" ../conf/backend/config-caldav.php + ynh_replace_string __CALDAV_PATH__ "${bailkalpath}/cal.php/calendars/%u/" ../conf/backend/config-caldav.php + ynh_replace_string __CALDAV_PERSONAL__ "default" ../conf/backend/config-caldav.php + + ynh_replace_string __CARDDAV_SERVER__ "${bailkaldomain}" ../conf/backend/config-carddav.php + ynh_replace_string __CARDDAV_PATH__ "${bailkalpath}/card.php/addressbooks/%u/" ../conf/backend/config-carddav.php + ynh_replace_string __CARDDAV_DEFAULT_PATH__ "${bailkalpath}/card.php/addressbooks/%u/default" ../conf/backend/config-carddav.php + + ynh_replace_string __IMAP_SERVER__ "${domain}" ../conf/backend/config-imap.php ynh_replace_string __FLAGTOCHANGE__ true ../conf/backend/config-imap.php # Copy config - cp ../conf/config.php $final_path/config.php - cp ../conf/backend/config-imap.php $final_path/backend/imap/config.php - cp ../conf/backend/config-carddav.php $final_path/backend/carddav/config.php cp ../conf/backend/config-caldav.php $final_path/backend/caldav/config.php + cp ../conf/backend/config-carddav.php $final_path/backend/carddav/config.php + cp ../conf/backend/config-imap.php $final_path/backend/imap/config.php + cp ../conf/backend/config-combined.php $final_path/backend/combined/config.php + +elif yunohost app list --installed -f nextcloud | grep -q id ; then + echo "Detected NextCloud" + nextclouddomain=$(ynh_app_setting_get nextcloud domain) + nextcloudpath=$(ynh_app_setting_get nextcloud path) + nextcloudpath=${nextcloudpath%/} + + # Configuration of backend + ynh_replace_string __BACKEND__ BackendCombined ../conf/config.php + ynh_replace_string __BACKEND__ BackendCombined ../conf/backend/config-autodiscover.php + + # Configuration nextcloud + ynh_replace_string __CALDAV_SERVER__ "${nextclouddomain}" ../conf/backend/config-caldav.php + ynh_replace_string __CALDAV_PATH__ "${nextcloudpath}/remote.php/dav/calendars/%u/" ../conf/backend/config-caldav.php + ynh_replace_string __CALDAV_PERSONAL__ "personal" ../conf/backend/config-caldav.php + + ynh_replace_string __CARDDAV_SERVER__ "${nextclouddomain}" ../conf/backend/config-carddav.php + ynh_replace_string __CARDDAV_PATH__ "${nextcloudpath}/remote.php/dav/addressbooks/users/%u/contacts/" ../conf/backend/config-carddav.php + ynh_replace_string __CARDDAV_DEFAULT_PATH__ "${nextcloudpath}/remote.php/dav/addressbooks/users/%u/contacts/" ../conf/backend/config-carddav.php + + ynh_replace_string __IMAP_SERVER__ "${domain}" ../conf/backend/config-imap.php + ynh_replace_string __FLAGTOCHANGE__ true ../conf/backend/config-imap.php + + # Copy config + cp ../conf/backend/config-caldav.php $final_path/backend/caldav/config.php + cp ../conf/backend/config-carddav.php $final_path/backend/carddav/config.php + cp ../conf/backend/config-imap.php $final_path/backend/imap/config.php cp ../conf/backend/config-combined.php $final_path/backend/combined/config.php - cp ../conf/backend/config-autodiscover.php $final_path/autodiscover/config.php else # Configuration of backend ynh_replace_string __BACKEND__ BackendIMAP ../conf/config.php ynh_replace_string __BACKEND__ BackendIMAP ../conf/backend/config-autodiscover.php - # Copy config - cp ../conf/config.php $final_path/config.php - ynh_replace_string __DOMAINTOCHANGE__ $domain ../conf/backend/config-imap.php + # Configuration imap + ynh_replace_string __IMAP_SERVER__ "${domain}" ../conf/backend/config-imap.php ynh_replace_string __FLAGTOCHANGE__ false ../conf/backend/config-imap.php - cp ../conf/backend/config-imap.php $final_path/backend/imap/config.php - cp ../conf/backend/config-autodiscover.php $final_path/autodiscover/config.php + + # Copy config + cp ../conf/backend/config-imap.php $final_path/backend/imap/config.php fi +# Copy config +cp ../conf/config.php $final_path/config.php +cp ../conf/backend/config-autodiscover.php $final_path/autodiscover/config.php + # Fixstates to avoid full resync of devices after version upgrades $final_path/z-push-admin.php -a fixstates From 8e484e582c2e9138c069c922e97c04fd401423ca Mon Sep 17 00:00:00 2001 From: yalh76 Date: Mon, 8 Apr 2019 23:29:39 +0200 Subject: [PATCH 2/2] Implement ldap search --- conf/backend/config-searchldap.php | 56 ++++++++++++++++++++++++++++++ conf/config.php | 2 +- scripts/install | 1 + 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 conf/backend/config-searchldap.php diff --git a/conf/backend/config-searchldap.php b/conf/backend/config-searchldap.php new file mode 100644 index 0000000..a0d36b6 --- /dev/null +++ b/conf/backend/config-searchldap.php @@ -0,0 +1,56 @@ +. +* +* Consult LICENSE file for details +************************************************/ + +// LDAP host and port +define("LDAP_HOST", "ldap://127.0.0.1/"); +define("LDAP_PORT", "389"); + +// Set USER and PASSWORD if not using anonymous bind +define("ANONYMOUS_BIND", true); +define("LDAP_BIND_USER", "cn=searchuser,dc=test,dc=net"); +define("LDAP_BIND_PASSWORD", ""); + +// Search base & filter +// the SEARCHVALUE string is substituded by the value inserted into the search field +define("LDAP_SEARCH_BASE", "ou=users,dc=yunohost,dc=org"); +define("LDAP_SEARCH_FILTER", "(|(cn=*SEARCHVALUE*)(mail=*SEARCHVALUE*))"); + +// LDAP field mapping. +// values correspond to an inetOrgPerson class +global $ldap_field_map; +$ldap_field_map = array( + SYNC_GAL_DISPLAYNAME => 'cn', + SYNC_GAL_PHONE => 'telephonenumber', + SYNC_GAL_OFFICE => '', + SYNC_GAL_TITLE => 'title', + SYNC_GAL_COMPANY => 'ou', + SYNC_GAL_ALIAS => 'uid', + SYNC_GAL_FIRSTNAME => 'givenname', + SYNC_GAL_LASTNAME => 'sn', + SYNC_GAL_HOMEPHONE => 'homephone', + SYNC_GAL_MOBILEPHONE => 'mobile', + SYNC_GAL_EMAILADDRESS => 'mail', + ); diff --git a/conf/config.php b/conf/config.php index 76a5e6f..47bb77e 100644 --- a/conf/config.php +++ b/conf/config.php @@ -276,7 +276,7 @@ * If set, the Search Provider will always be preferred. * Use 'BackendSearchLDAP' to search in a LDAP directory (see backend/searchldap/config.php) */ - define('SEARCH_PROVIDER', ''); + define('SEARCH_PROVIDER', 'BackendSearchLDAP'); // Time in seconds for the server search. Setting it too high might result in timeout. // Setting it too low might not return all results. Default is 10. define('SEARCH_WAIT', 10); diff --git a/scripts/install b/scripts/install index 14f44ce..00af287 100755 --- a/scripts/install +++ b/scripts/install @@ -189,6 +189,7 @@ fi # Copy config cp ../conf/config.php $final_path/config.php cp ../conf/backend/config-autodiscover.php $final_path/autodiscover/config.php +cp ../conf/backend/config-searchldap.php $final_path/backend/searchldap/config.php #Copy XMLElement.php ln -s /usr/share/awl/inc/XML* /var/www/$app/include/