public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[SOGo] Create a sogo_update_password trigger in SQL [SOGo] prependPasswordScheme=YES in user sources [SOGo] Use new "static view" as viewURL for much faster table lookups on large systems
cfb0d3b6
data/Dockerfiles/sogo/bootstrap-sogo.sh | 32 +++++++++++++++++++++++++++++---
1 file changed, 29 insertions(+), 3 deletions(-)
Diff
diff --git a/data/Dockerfiles/sogo/bootstrap-sogo.sh b/data/Dockerfiles/sogo/bootstrap-sogo.sh
index 3574a332..2a6f7090 100755
--- a/data/Dockerfiles/sogo/bootstrap-sogo.sh
+++ b/data/Dockerfiles/sogo/bootstrap-sogo.sh
@@ -9,8 +9,8 @@ done
# Wait until port becomes free and send sig
until ! nc -z sogo-mailcow 20000;
do
- killall -TERM sogod
- sleep 3
+ killall -TERM sogod
+ sleep 3
done
# Recreate view
@@ -34,6 +34,30 @@ EOF
fi
done
+# Recreate password update trigger
+
+mysql --host mysql -u ${DBUSER} -p${DBPASS} ${DBNAME} -e "DROP TRIGGER IF EXISTS sogo_update_password"
+
+while [[ ${TRIGGER_OK} != 'OK' ]]; do
+ mysql --host mysql -u ${DBUSER} -p${DBPASS} ${DBNAME} << EOF
+DELIMITER -
+CREATE TRIGGER sogo_update_password AFTER UPDATE ON _sogo_static_view
+FOR EACH ROW
+BEGIN
+UPDATE mailbox SET password = NEW.c_password WHERE NEW.c_uid = username;
+END;
+-
+DELIMITER ;
+EOF
+ if [[ ! -z $(mysql --host mysql -u ${DBUSER} -p${DBPASS} ${DBNAME} -B -e "SELECT 'OK' FROM INFORMATION_SCHEMA.TRIGGERS WHERE TRIGGER_NAME = 'sogo_update_password'") ]]; then
+ TRIGGER_OK=OK
+ else
+ echo "Will retry to setup SOGo password update trigger in 3s"
+ sleep 3
+ fi
+done
+
+
mkdir -p /var/lib/sogo/GNUstep/Defaults/
# Generate plist header with timezone data
@@ -97,8 +121,10 @@ while read line
<string>sql</string>
<key>userPasswordAlgorithm</key>
<string>ssha256</string>
+ <key>prependPasswordScheme</key>
+ <string>YES</string>
<key>viewURL</key>
- <string>mysql://${DBUSER}:${DBPASS}@mysql:3306/${DBNAME}/sogo_view</string>
+ <string>mysql://${DBUSER}:${DBPASS}@mysql:3306/${DBNAME}/_sogo_static_view</string>
</dict>
</array>
</dict>" >> /var/lib/sogo/GNUstep/Defaults/sogod.plist