From 035b88fdeb706a49fa2a7affdef397e05e50e2d6 Mon Sep 17 00:00:00 2001 From: Kload Date: Sun, 8 Dec 2013 23:17:40 +0100 Subject: [PATCH] Try local external sharing (yo dawg) --- conf/ldap_config.sql | 4 ++-- manifest.json | 7 ++++--- scripts/install | 42 ++++++++++++++++++++++++++++++------------ 3 files changed, 36 insertions(+), 17 deletions(-) diff --git a/conf/ldap_config.sql b/conf/ldap_config.sql index 028f4e3..c859a0b 100644 --- a/conf/ldap_config.sql +++ b/conf/ldap_config.sql @@ -12,11 +12,11 @@ INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'l INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_group_member_assoc_attribute', 'uniqueMember'); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_login_filter', 'uid=%uid'); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_attr', 'mailQuota'); -INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_def', '500MB'); +INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_quota_def', ''); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_email_attr', 'mail'); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_cache_ttl', '600'); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_configuration_active', '1'); -INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'home_folder_naming_rule', 'attr:homeDirectory'); +INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'home_folder_naming_rule', ''); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_backup_host', ''); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_dn', ''); INSERT INTO oc_appconfig (appid, configkey, configvalue) VALUES ('user_ldap', 'ldap_agent_password', ''); diff --git a/manifest.json b/manifest.json index 657b42a..37f1d82 100644 --- a/manifest.json +++ b/manifest.json @@ -29,10 +29,11 @@ "default": "/owncloud" }, { - "name": "admin_passwd", + "name": "admin", "ask": { - "en": "Choose a password for Owncloud administrator" - } + "en": "Choose the Owncloud administrator (must be an existing YunoHost user)", + }, + "example": "homer" } ] } diff --git a/scripts/install b/scripts/install index 36845b2..88e3a71 100755 --- a/scripts/install +++ b/scripts/install @@ -3,10 +3,12 @@ # Retrieve arguments domain=$1 path=$2 -admin_passwd=$3 +user=$3 -if [ "$admin_passwd" = "" ]; then - echo "Wrong password" +# Check user parameter +ls /home | grep $user +if [[ ! $? -eq 0 ]]; then + echo "Wrong user" exit 1 fi @@ -34,7 +36,9 @@ sudo useradd -d /var/www/owncloud owncloud # Copy files to the right place final_path=/var/www/owncloud +data_path=/home/yunohost.app/owncloud/data sudo mkdir -p $final_path +sudo mkdir -p $data_path sudo cp -a ../sources/* $final_path sudo cp ../conf/nginx.conf /etc/nginx/conf.d/$domain.d/owncloud.conf sudo cp ../conf/php-fpm.conf /etc/php5/fpm/pool.d/owncloud.conf @@ -46,15 +50,18 @@ sudo sed -i "s@ALIASTOCHANGE@$final_path/@g" /etc/nginx/conf.d/$domain.d/ownclou sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/nginx/conf.d/$domain.d/owncloud.conf sudo sed -i "s@NAMETOCHANGE@owncloud@g" /etc/php5/fpm/pool.d/owncloud.conf -# Set permissions to owncloud directory and /home directories -sudo chown -hR owncloud: $final_path +# Set permissions to owncloud directories and /home directories + add Home external storage for i in $(ls /home) do if [[ ! $i == yunohost.* ]]; then sudo setfacl -m g:owncloud:rwx /home/$i + mkdir $data_path/$i + echo "{\"user\":{\"$i\":{\"/\$user/files/Home\":{\"class\":\"\\OC\\Files\\Storage\\Local\",\"options\":{\"datadir\":\"/home/$i\"}}}}}" > $data_path/$i/mount.json fi done +sudo chown -hR owncloud: $final_path +sudo chown -hR owncloud: $data_path # Reload Nginx and regenerate SSOwat conf sudo service php5-fpm restart @@ -65,23 +72,34 @@ sudo yunohost app ssowatconf # Owncloud installation via curl echo "127.0.0.1 $domain #yunoowncloud" | sudo tee -a /etc/hosts sleep 1 -curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=admin&adminpass=$admin_passwd&directory=/var/www/owncloud/data&dbtype=mysql&dbuser=$db_user&dbpass=$db_pwd&dbname=$db_user&dbhost=localhost" > /dev/null 2>&1 +curl -kL -X POST https://$domain$path/index.php --data "install=true&adminlogin=$user&adminpass=$db_pwd&directory=/home/yunohost.app/owncloud/data&dbtype=mysql&dbuser=$db_user&dbpass=$db_pwd&dbname=$db_user&dbhost=localhost" > /dev/null 2>&1 -# Check if the Mysql database is initialized & running +# Enable plugins sleep 5 +curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=files_external" -u "$user:$db_pwd" > /dev/null 2>&1 +curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "$user:$db_pwd" > /dev/null 2>&1 + +# Check if the Mysql database is initialized & running mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 -curl -kL -X POST https://$domain$path/index.php/settings/ajax/enableapp.php --data "appid=user_ldap" -u "admin:$admin_passwd" > /dev/null 2>&1 result=$? loop_number=1 while [ $result != 0 ] && [ $loop_number -lt 5 ]; do - sleep 5 - mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 - let result=$? - let loop_number++ + sleep 5 + mysql -u $db_user -p$db_pwd $db_user -e "select * from oc_appconfig;" > /dev/null 2>&1 + let result=$? + if [ $loop_number -eq 4 ]; + then + print "Web installation failed" + exit 1 + fi + let loop_number++ done +# Configure LDAP plugin mysql -u $db_user -p$db_pwd $db_user < ../conf/ldap_config.sql + +# Unprotect URIs sudo yunohost app setting owncloud skipped_uris -v "/public.php,/core,/apps/files,/index.php/apps/files" sudo yunohost app setting owncloud unprotected_uris -v "/remote.php,/cron.php,/status.php" sudo yunohost app ssowatconf -- 2.0.0