|
@@ -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
|