129 if req.user.is_in_group('managers'): |
129 if req.user.is_in_group('managers'): |
130 from cubicweb.web.application import SESSION_MANAGER |
130 from cubicweb.web.application import SESSION_MANAGER |
131 sessions = SESSION_MANAGER.current_sessions() |
131 sessions = SESSION_MANAGER.current_sessions() |
132 w(u'<h3>%s</h3>' % _('opened web sessions')) |
132 w(u'<h3>%s</h3>' % _('opened web sessions')) |
133 if sessions: |
133 if sessions: |
134 n_no_cnx_sessions = 0 |
|
135 w(u'<ul>') |
134 w(u'<ul>') |
136 for session in sessions: |
135 for session in sessions: |
137 if not session.cnx: |
136 last_usage_time = session.mtime |
138 # We do not want to list all sessions without cnx |
|
139 # Their session ID are useless, hence we just count them |
|
140 n_no_cnx_sessions += 1 |
|
141 continue |
|
142 try: |
|
143 last_usage_time = session.cnx.check() |
|
144 except BadConnectionId: |
|
145 w(u'<li>%s (INVALID)</li>' % session.sessionid) |
|
146 continue |
|
147 w(u'<li>%s (%s: %s)<br/>' % ( |
137 w(u'<li>%s (%s: %s)<br/>' % ( |
148 session.sessionid, |
138 session.sessionid, |
149 _('last usage'), |
139 _('last usage'), |
150 strftime(dtformat, localtime(last_usage_time)))) |
140 strftime(dtformat, localtime(last_usage_time)))) |
151 dict_to_html(w, session.data) |
141 dict_to_html(w, session.data) |
152 w(u'</li>') |
142 w(u'</li>') |
153 w(u'</ul>') |
143 w(u'</ul>') |
154 if n_no_cnx_sessions > 0: |
|
155 w(u'<h3>%s %s</h3>' % (n_no_cnx_sessions, |
|
156 _('web sessions without CNX'))) |
|
157 else: |
144 else: |
158 w(u'<p>%s</p>' % _('no web sessions found')) |
145 w(u'<p>%s</p>' % _('no web sessions found')) |
159 |
146 |
160 |
147 |
161 |
148 |