parent
b04ce33fa0
commit
7897628159
9 changed files with 265 additions and 12 deletions
28
www/kojiweb/activesession.chtml
Normal file
28
www/kojiweb/activesession.chtml
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
#include "includes/header.chtml"
|
||||
#import koji
|
||||
#from kojiweb import util
|
||||
|
||||
#attr _PASSTHROUGH = ['userID']
|
||||
|
||||
<h4>Active sessions for $loggedInUser.name user</h4>
|
||||
<br>
|
||||
<table class="data-list">
|
||||
<tr class="list-header">
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'id')$util.passthrough_except($self, 'order')">Session ID</a> $util.sortImage($self, 'id')</th>
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'hostip')$util.passthrough_except($self, 'order')">Client IP</a> $util.sortImage($self, 'hostip')</th>
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'authtype')$util.passthrough_except($self, 'order')">Auth type</a> $util.sortImage($self, 'authtype')</th>
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'start_time')$util.passthrough_except($self, 'order')">Session start time</a> $util.sortImage($self, 'start_time')</th>
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'start_time')$util.passthrough_except($self, 'order')">Length session</a> $util.sortImage($self, 'start_time')</th>
|
||||
<th><a href="activesession?order=$util.toggleOrder($self, 'id')$util.passthrough_except($self, 'order')">Logout?</a> $util.sortImage($self, 'id')</th>
|
||||
</tr>
|
||||
#for $act in $activesess
|
||||
<tr class="$util.rowToggle($self)">
|
||||
<td>$act.id</td>
|
||||
<td>$util.escapeHTML($act.hostip)</td>
|
||||
<td>$act.authtype</td>
|
||||
<td>$util.formatTimeLong($act.start_time)</td>
|
||||
<td>$act.lengthSession days</td>
|
||||
<td><a href="activesessiondelete?sessionID=$act.id$util.authToken($self)">Logout</a></td>
|
||||
</tr>
|
||||
#end for
|
||||
</table>
|
||||
|
|
@ -2135,7 +2135,11 @@ def buildtargetdelete(environ, targetID):
|
|||
|
||||
def reports(environ):
|
||||
_getServer(environ)
|
||||
_initValues(environ, 'Reports', 'reports')
|
||||
values = _initValues(environ, 'Reports', 'reports')
|
||||
if environ['koji.currentUser']:
|
||||
values['loggedInUser'] = True
|
||||
else:
|
||||
values['loggedInUser'] = False
|
||||
return _genHTML(environ, 'reports.chtml')
|
||||
|
||||
|
||||
|
|
@ -2656,3 +2660,35 @@ def repoinfo(environ, repoID):
|
|||
values['repo_json'] = os.path.join(
|
||||
pathinfo.repo(repo_info['id'], repo_info['tag_name']), 'repo.json')
|
||||
return _genHTML(environ, 'repoinfo.chtml')
|
||||
|
||||
|
||||
def activesession(environ, start=None, order=None):
|
||||
values = _initValues(environ, 'Active sessions', 'activesession')
|
||||
server = _getServer(environ)
|
||||
|
||||
values['loggedInUser'] = environ['koji.currentUser']
|
||||
|
||||
values['order'] = order
|
||||
activesess = server.getSessionInfo(details=True, user_id=values['loggedInUser']['id'])
|
||||
if not activesess:
|
||||
activesess = []
|
||||
else:
|
||||
current_timestamp = datetime.datetime.utcnow().timestamp()
|
||||
for a in activesess:
|
||||
a['lengthSession'] = kojiweb.util.formatTimestampDifference(
|
||||
a['start_time'], current_timestamp, in_days=True)
|
||||
|
||||
kojiweb.util.paginateList(values, activesess, start, 'activesess', order=order)
|
||||
|
||||
return _genHTML(environ, 'activesession.chtml')
|
||||
|
||||
|
||||
def activesessiondelete(environ, sessionID):
|
||||
server = _getServer(environ)
|
||||
_assertLogin(environ)
|
||||
|
||||
sessionID = int(sessionID)
|
||||
|
||||
server.logout(session_id=sessionID)
|
||||
|
||||
_redirect(environ, 'activesession')
|
||||
|
|
|
|||
|
|
@ -13,6 +13,9 @@
|
|||
<li><a href="buildsbystatus">Succeeded/failed/canceled builds</a></li>
|
||||
<li><a href="buildsbytarget">Number of builds in each target</a></li>
|
||||
<li><a href="clusterhealth">Cluster health</a></li>
|
||||
#if $loggedInUser
|
||||
<li><a href="activesession">Active sessions</a></li>
|
||||
#end if
|
||||
</ul>
|
||||
|
||||
#include "includes/footer.chtml"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue