ajout last_connected.pt

This commit is contained in:
2017-04-26 21:35:12 +02:00
parent a42987c2b5
commit a9b57890d8
8 changed files with 89 additions and 24 deletions

View File

@@ -4,7 +4,7 @@ from views.default import (
to_euro,
to_percent,
to_decimal,
)
)
from pyramid.security import authenticated_userid
@layout_config(template='templates/layouts/global_layout.pt')
@@ -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

View File

@@ -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

View File

@@ -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}')

View File

@@ -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)

View File

@@ -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},
});
});

View File

@@ -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 />

View 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>

View File

@@ -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):