Enabled post-login tracking.

This commit is contained in:
Antoine Nguyen
2017-08-11 16:06:50 +02:00
parent 6c6945c11b
commit 2b1456603d
4 changed files with 29 additions and 1 deletions

View File

@@ -25,7 +25,7 @@ class Dovecot(base.Installer):
} }
config_files = [ config_files = [
"dovecot.conf", "dovecot-dict-sql.conf.ext", "conf.d/10-ssl.conf", "dovecot.conf", "dovecot-dict-sql.conf.ext", "conf.d/10-ssl.conf",
"conf.d/20-lmtp.conf"] "conf.d/10-master.conf", "conf.d/20-lmtp.conf"]
with_user = True with_user = True
def get_config_files(self): def get_config_files(self):
@@ -35,6 +35,8 @@ class Dovecot(base.Installer):
.format(self.dbengine), .format(self.dbengine),
"dovecot-sql-master-{}.conf.ext=dovecot-sql-master.conf.ext" "dovecot-sql-master-{}.conf.ext=dovecot-sql-master.conf.ext"
.format(self.dbengine), .format(self.dbengine),
"postlogin-{}.sh=/usr/local/bin/postlogin.sh"
.format(self.dbengine),
] ]
def get_packages(self): def get_packages(self):
@@ -70,6 +72,7 @@ class Dovecot(base.Installer):
"db_driver": self.db_driver, "db_driver": self.db_driver,
"mailboxes_owner_uid": pw[2], "mailboxes_owner_uid": pw[2],
"mailboxes_owner_gid": pw[3], "mailboxes_owner_gid": pw[3],
"modoboa_user": self.config.get("modoboa", "user"),
"modoboa_dbname": self.config.get("modoboa", "dbname"), "modoboa_dbname": self.config.get("modoboa", "dbname"),
"modoboa_dbuser": self.config.get("modoboa", "dbuser"), "modoboa_dbuser": self.config.get("modoboa", "dbuser"),
"modoboa_dbpassword": self.config.get("modoboa", "dbpassword"), "modoboa_dbpassword": self.config.get("modoboa", "dbpassword"),
@@ -95,6 +98,8 @@ class Dovecot(base.Installer):
) )
for f in glob.glob("{}/*".format(self.get_file_path("conf.d"))): for f in glob.glob("{}/*".format(self.get_file_path("conf.d"))):
utils.copy_file(f, "{}/conf.d".format(self.config_dir)) utils.copy_file(f, "{}/conf.d".format(self.config_dir))
# Make postlogin script executable
utils.exec_cmd("chmod +x /usr/local/bin/postlogin.sh")
def restart_daemon(self): def restart_daemon(self):
"""Restart daemon process. """Restart daemon process.

View File

@@ -71,11 +71,22 @@ service imap {
# Max. number of IMAP processes (connections) # Max. number of IMAP processes (connections)
#process_limit = 1024 #process_limit = 1024
executable = imap postlogin
} }
service pop3 { service pop3 {
# Max. number of POP3 processes (connections) # Max. number of POP3 processes (connections)
#process_limit = 1024 #process_limit = 1024
executable = pop3 postlogin
}
service postlogin {
executable = script-login /usr/local/bin/postlogin.sh
user = %modoboa_user
unix_listener postlogin {
}
} }
service auth { service auth {

View File

@@ -0,0 +1,7 @@
#!/bin/sh
DBNAME=%modoboa_dbname DBUSER=%modoboa_dbuser DBPASSWORD=%modoboa_dbpassword
echo "UPDATE core_user SET last_login=now() WHERE username='$USER'" | mysql -u $DBUSER -p$DBPASSWORD $DBNAME
exec "$@"

View File

@@ -0,0 +1,5 @@
#!/bin/sh
psql -c "UPDATE core_user SET last_login=now() WHERE username='$USER'" > /dev/null
exec "$@"