diff auth/pool.go @ 240:9012e4045da4

Implemented /user delete controller.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 26 Jul 2018 17:56:02 +0200
parents 11d1a488b08f
children 0777aa6de45b
line wrap: on
line diff
--- a/auth/pool.go	Thu Jul 26 17:15:22 2018 +0200
+++ b/auth/pool.go	Thu Jul 26 17:56:02 2018 +0200
@@ -296,6 +296,21 @@
 	return <-res
 }
 
+func (pcp *ConnectionPool) Logout(user string) {
+	pcp.cmds <- func(pcp *ConnectionPool) {
+		for token, con := range pcp.conns {
+			if con.session.User == user {
+				if db := con.db; db != nil {
+					con.db = nil
+					db.Close()
+				}
+				delete(pcp.conns, token)
+				pcp.remove(token)
+			}
+		}
+	}
+}
+
 func (pcp *ConnectionPool) Shutdown() error {
 	if db := pcp.storage; db != nil {
 		log.Println("info: shutdown persistent connection pool.")