ajout last_connected.pt
This commit is contained in:
@@ -29,3 +29,12 @@ class GlobalLayout(object):
|
||||
user = authenticated_userid(self.request)
|
||||
return user is None
|
||||
|
||||
def isAdmin(self):
|
||||
logged_in = authenticated_userid(self.request)
|
||||
is_admin = False
|
||||
if logged_in is not None:
|
||||
groups = groupfinder(logged_in, self.request)
|
||||
if 'group:administrators' in groups:
|
||||
is_admin = True
|
||||
|
||||
return is_admin
|
||||
|
||||
@@ -46,3 +46,13 @@ def update_membre_mdp(request, login, password):
|
||||
query = "UPDATE p_users SET mdp = SHA1(:password), mdp_oublie=NULL, mdp_oublie_date=NULL WHERE CD_UTI=:login;"
|
||||
execute_query(request, query, {'login': login, 'password': password})
|
||||
|
||||
def update_last_connection(request, login):
|
||||
"""Update last connection for login """
|
||||
query = "UPDATE p_users SET dern_cnx_le=NOW() WHERE CD_UTI=:login;"
|
||||
execute_query(request, query, {'login': login})
|
||||
|
||||
def get_members_by_last_connection(request, ):
|
||||
# lire les donnees de l'eleve
|
||||
query = "SELECT * FROM p_users WHERE dern_cnx_le IS NOT NULL ORDER BY dern_cnx_le DESC"
|
||||
results = request.dbsession.execute(query, ).fetchall()
|
||||
return results
|
||||
|
||||
@@ -6,6 +6,7 @@ def includeme(config):
|
||||
config.add_route('dossier_view', '/dossier_view/{nodossier}')
|
||||
config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
|
||||
config.add_route('envoyer_mdp', '/envoyer_mdp')
|
||||
config.add_route('last_connected', '/last_connected')
|
||||
config.add_route('login', '/login')
|
||||
config.add_route('logout', '/logout')
|
||||
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
||||
|
||||
@@ -4,9 +4,8 @@ def groupfinder(userid, request):
|
||||
member = get_member_by_id(request, userid)
|
||||
|
||||
if member:
|
||||
mbr_id = member.CD_UTI
|
||||
# Chi hay Phuoc ?
|
||||
if mbr_id == 8 or mbr_id == 9:
|
||||
# Roles administrateur ?
|
||||
if member.access == 9:
|
||||
return ['group:administrators']
|
||||
else:
|
||||
return [] # it means that userid is logged in (it returns None if userid isn't logged in)
|
||||
|
||||
@@ -41,10 +41,13 @@ $(document).ready(function() {
|
||||
$('#calendar').fullCalendar({
|
||||
locale: 'fr',
|
||||
header: {
|
||||
left: 'agendaDay agendaWeek month',
|
||||
left: 'agendaDay agendaWeek month listMonth',
|
||||
center: 'prev title next',
|
||||
right: 'today'
|
||||
},
|
||||
defaultView: 'agendaWeek',
|
||||
minTime: "07:00:00",
|
||||
maxTime: "21:00:00",
|
||||
events:${fullcalendar_events},
|
||||
});
|
||||
});
|
||||
|
||||
@@ -11,7 +11,12 @@
|
||||
</div>
|
||||
</div> <!-- row 1 -->
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="row well" tal:condition="layout.isAdmin">
|
||||
<div class="col-sm-3">
|
||||
<a href="${request.application_url}/last_connected">
|
||||
<span class="glyphicon glyphicon-user logo-small"></span><br />
|
||||
<h4>Derniers connectés</h4></a>
|
||||
</div>
|
||||
</div> <!-- row 2 -->
|
||||
<br />
|
||||
<br />
|
||||
|
||||
26
mondumas/templates/last_connected.pt
Normal file
26
mondumas/templates/last_connected.pt
Normal file
@@ -0,0 +1,26 @@
|
||||
<metal:block use-macro="main_template">
|
||||
<div metal:fill-slot="content">
|
||||
|
||||
|
||||
<div tal:condition="items">
|
||||
<table class="table table-striped table-bordered">
|
||||
<tr>
|
||||
<th>Date</th>
|
||||
<th>Code</th>
|
||||
<th>Nom</th>
|
||||
<th>email</th>
|
||||
</tr>
|
||||
<tr tal:repeat="item items">
|
||||
<td tal:content="python:item.dern_cnx_le.strftime('%d/%m/%Y %H:%M')" />
|
||||
<td align="left" tal:content="item.CD_UTI" />
|
||||
<td align="left" tal:content="item.NOM" />
|
||||
<td align="left" tal:content="item.email" />
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
|
||||
</div><!-- content -->
|
||||
</metal:block>
|
||||
|
||||
|
||||
@@ -164,6 +164,10 @@ def login(request):
|
||||
if record :
|
||||
# mot de passe hash valide ?
|
||||
if record.mdp == hashlib.sha1(password).hexdigest():
|
||||
update_last_connection(request, login)
|
||||
# force le commit car il ne se fait pas automatiquement après l'update
|
||||
transaction.commit()
|
||||
|
||||
headers = remember(request, login)
|
||||
return HTTPFound(location=came_from, headers=headers)
|
||||
|
||||
@@ -177,6 +181,14 @@ def login(request):
|
||||
'message': message,
|
||||
}
|
||||
|
||||
@view_config(route_name='last_connected', renderer='../templates/last_connected.pt', permission='manage')
|
||||
def last_connected(request):
|
||||
items = get_members_by_last_connection(request)
|
||||
|
||||
return {
|
||||
'page_title': u"Derniers connectés",
|
||||
'items': items,
|
||||
}
|
||||
|
||||
@view_config(route_name='logout')
|
||||
def logout(request):
|
||||
|
||||
Reference in New Issue
Block a user