Index: manifests/issuesserver.pp |
diff --git a/manifests/issuesserver.pp b/manifests/issuesserver.pp |
index e06e7df1cd192ca361e9cca86a997c6da5300d82..d956e1762e3849b73007113aba62bf8af8969c58 100644 |
--- a/manifests/issuesserver.pp |
+++ b/manifests/issuesserver.pp |
@@ -44,6 +44,8 @@ node 'issues1' { |
], |
} |
+ $mysql = "mysql -utrac -p'${private::trac::database_password}'" |
+ |
# Synchronizing e-mail and password information between the project |
# allows for logging in from any entry point - whilst maintaining a |
# registration form (and process) in one project only. |
@@ -51,7 +53,7 @@ node 'issues1' { |
ensure => present, |
user => trac, |
minute => '*/30', |
- command => "mysql -utrac -p'${private::trac::database_password}' trac_orders --execute ' \ |
+ command => "$mysql trac_orders --execute ' \ |
INSERT INTO session_attribute (sid, authenticated, name, value) SELECT sid, authenticated, name, value \ |
FROM trac.session_attribute WHERE authenticated = 1 AND name IN (\"email\", \"password\") \ |
ON DUPLICATE KEY UPDATE value=VALUES(value) ' >/dev/null |
@@ -59,4 +61,17 @@ node 'issues1' { |
require => Exec['trac_auth_cookie_view'], |
} |
+ cron {'trac_session_cleanup': |
+ command => "$mysql trac --execute ' \ |
+ DELETE session, session_attribute FROM session \ |
+ JOIN session_attribute ON session.sid = session_attribute.sid \ |
+ AND session.authenticated = session_attribute.authenticated \ |
+ WHERE session.authenticated = 0 AND \ |
+ session.last_visit < UNIX_TIMESTAMP(NOW() - INTERVAL 10 DAY)' >/dev/null", |
+ ensure => present, |
+ hour => 1, |
+ minute => 0, |
+ require => Trac::Instance['issues'], |
+ user => trac, |
+ } |
} |