| 
				
			 | 
			
			
				@@ -53,20 +53,24 @@ etherpad_variables=(ETHERPAD_COMMIT 
			 | 
		
	
		
			
			| 
				53
			 | 
			
				53
			 | 
			
			
				                     DDNS_PROVIDER 
			 | 
		
	
		
			
			| 
				54
			 | 
			
				54
			 | 
			
			
				                     MY_USERNAME) 
			 | 
		
	
		
			
			| 
				55
			 | 
			
				55
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				56
			 | 
			
			
				+function etherpad_password_hash { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				57
			 | 
			
			
				+    echo $(python -c "from passlib.hash import bcrypt;print(bcrypt.encrypt(\"$1\", rounds=10))") 
			 | 
		
	
		
			
			| 
				
			 | 
			
				58
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				59
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				56
			 | 
			
				60
			 | 
			
			
				 function change_password_etherpad { 
			 | 
		
	
		
			
			| 
				57
			 | 
			
				61
			 | 
			
			
				     change_username="$1" 
			 | 
		
	
		
			
			| 
				58
			 | 
			
				
			 | 
			
			
				-    new_user_password="$2" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				62
			 | 
			
			
				+    new_user_password=$(etherpad_password_hash "$2") 
			 | 
		
	
		
			
			| 
				59
			 | 
			
				63
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				60
			 | 
			
				64
			 | 
			
			
				     read_config_param ETHERPAD_DOMAIN_NAME 
			 | 
		
	
		
			
			| 
				61
			 | 
			
				65
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				62
			 | 
			
				66
			 | 
			
			
				     if grep "\"$change_username\": {" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json; then 
			 | 
		
	
		
			
			| 
				63
			 | 
			
				67
			 | 
			
			
				         user_line=$(cat /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json | grep "\"$change_username\": {") 
			 | 
		
	
		
			
			| 
				64
			 | 
			
				68
			 | 
			
			
				         if [[ "$user_line" == *"\"is_admin\": true"* ]]; then 
			 | 
		
	
		
			
			| 
				65
			 | 
			
				
			 | 
			
			
				-            sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"password\": \"$new_user_password\", \"is_admin\": true }|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json 
			 | 
		
	
		
			
			| 
				
			 | 
			
				69
			 | 
			
			
				+            sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"hash\": \"$new_user_password\", \"is_admin\": true }|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json 
			 | 
		
	
		
			
			| 
				66
			 | 
			
				70
			 | 
			
			
				         else 
			 | 
		
	
		
			
			| 
				67
			 | 
			
				
			 | 
			
			
				-            sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"password\": \"$new_user_password\", \"is_admin\": false },|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json 
			 | 
		
	
		
			
			| 
				
			 | 
			
				71
			 | 
			
			
				+            sed -i "s|\"$change_username\": {.*|\"$change_username\": { \"hash\": \"$new_user_password\", \"is_admin\": false },|g" /var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json 
			 | 
		
	
		
			
			| 
				68
			 | 
			
				72
			 | 
			
			
				         fi 
			 | 
		
	
		
			
			| 
				69
			 | 
			
				
			 | 
			
			
				-        ${PROJECT_NAME}-pass -u $change_username -a etherpad -p "$new_user_password" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				73
			 | 
			
			
				+        ${PROJECT_NAME}-pass -u $change_username -a etherpad -p "$2" 
			 | 
		
	
		
			
			| 
				70
			 | 
			
				74
			 | 
			
			
				         systemctl restart etherpad 
			 | 
		
	
		
			
			| 
				71
			 | 
			
				75
			 | 
			
			
				     fi 
			 | 
		
	
		
			
			| 
				72
			 | 
			
				76
			 | 
			
			
				 } 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -146,7 +150,7 @@ function create_etherpad_settings { 
			 | 
		
	
		
			
			| 
				146
			 | 
			
				150
			 | 
			
			
				     echo '  "disableIPlogging" : true,' >> $settings_file 
			 | 
		
	
		
			
			| 
				147
			 | 
			
				151
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				148
			 | 
			
				152
			 | 
			
			
				     echo '  "users": {' >> $settings_file 
			 | 
		
	
		
			
			| 
				149
			 | 
			
				
			 | 
			
			
				-    echo "    \"${MY_USERNAME}\": { \"password\": \"${ETHERPAD_ADMIN_PASSWORD}\", \"is_admin\": true }" >> $settings_file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				153
			 | 
			
			
				+    echo "    \"${MY_USERNAME}\": { \"hash\": \"$(etherpad_password_hash "${ETHERPAD_ADMIN_PASSWORD}")\", \"is_admin\": true }" >> $settings_file 
			 | 
		
	
		
			
			| 
				150
			 | 
			
				154
			 | 
			
			
				     echo '  },' >> $settings_file 
			 | 
		
	
		
			
			| 
				151
			 | 
			
				155
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				152
			 | 
			
				156
			 | 
			
			
				     echo '  "socketTransportProtocols" : ["xhr-polling", "jsonp-polling", "htmlfile"],' >> $settings_file 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -187,12 +191,12 @@ function remove_user_etherpad { 
			 | 
		
	
		
			
			| 
				187
			 | 
			
				191
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				188
			 | 
			
				192
			 | 
			
			
				 function add_user_etherpad { 
			 | 
		
	
		
			
			| 
				189
			 | 
			
				193
			 | 
			
			
				     new_username="$1" 
			 | 
		
	
		
			
			| 
				190
			 | 
			
				
			 | 
			
			
				-    new_user_password="$2" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				194
			 | 
			
			
				+    new_user_password=$(etherpad_password_hash "$2") 
			 | 
		
	
		
			
			| 
				191
			 | 
			
				195
			 | 
			
			
				     settings_file=/var/www/${ETHERPAD_DOMAIN_NAME}/htdocs/settings.json 
			 | 
		
	
		
			
			| 
				192
			 | 
			
				196
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				193
			 | 
			
				197
			 | 
			
			
				     if ! grep -q "\"$new_username\": {" $settings_file; then 
			 | 
		
	
		
			
			| 
				194
			 | 
			
				198
			 | 
			
			
				         ${PROJECT_NAME}-pass -u $new_username -a etherpad -p "$new_user_password" 
			 | 
		
	
		
			
			| 
				195
			 | 
			
				
			 | 
			
			
				-        sed -i "/\"users\": {/a    \"$new_username\": { \"password\": \"$new_user_password\", \"is_admin\": false }," $settings_file 
			 | 
		
	
		
			
			| 
				
			 | 
			
				199
			 | 
			
			
				+        sed -i "/\"users\": {/a    \"$new_username\": { \"hash\": \"$new_user_password\", \"is_admin\": false }," $settings_file 
			 | 
		
	
		
			
			| 
				196
			 | 
			
				200
			 | 
			
			
				         if grep -q "\"$new_username\": {" $settings_file; then 
			 | 
		
	
		
			
			| 
				197
			 | 
			
				201
			 | 
			
			
				             systemctl restart etherpad 
			 | 
		
	
		
			
			| 
				198
			 | 
			
				202
			 | 
			
			
				         else 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -458,7 +462,8 @@ function install_etherpad { 
			 | 
		
	
		
			
			| 
				458
			 | 
			
				462
			 | 
			
			
				     repair_databases_script 
			 | 
		
	
		
			
			| 
				459
			 | 
			
				463
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				460
			 | 
			
				464
			 | 
			
			
				     apt-get -yq install gzip git curl python libssl-dev pkg-config \ 
			 | 
		
	
		
			
			| 
				461
			 | 
			
				
			 | 
			
			
				-            build-essential python g++ make checkinstall 
			 | 
		
	
		
			
			| 
				
			 | 
			
				465
			 | 
			
			
				+            build-essential python g++ make checkinstall \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				466
			 | 
			
			
				+            python-bcrypt python-passlib 
			 | 
		
	
		
			
			| 
				462
			 | 
			
				467
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				463
			 | 
			
				468
			 | 
			
			
				     function_check install_nodejs 
			 | 
		
	
		
			
			| 
				464
			 | 
			
				469
			 | 
			
			
				     install_nodejs etherpad 
			 |