ajout last_connected.pt
This commit is contained in:
@@ -29,3 +29,12 @@ class GlobalLayout(object):
|
|||||||
user = authenticated_userid(self.request)
|
user = authenticated_userid(self.request)
|
||||||
return user is None
|
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;"
|
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})
|
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('dossier_view', '/dossier_view/{nodossier}')
|
||||||
config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
|
config.add_route('rdv_edit','/rdv_edit/{nodossier}/{nolig}')
|
||||||
config.add_route('envoyer_mdp', '/envoyer_mdp')
|
config.add_route('envoyer_mdp', '/envoyer_mdp')
|
||||||
|
config.add_route('last_connected', '/last_connected')
|
||||||
config.add_route('login', '/login')
|
config.add_route('login', '/login')
|
||||||
config.add_route('logout', '/logout')
|
config.add_route('logout', '/logout')
|
||||||
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
config.add_route('redefinir_mdp', '/redefinir_mdp/{lien}')
|
||||||
|
|||||||
@@ -4,9 +4,8 @@ def groupfinder(userid, request):
|
|||||||
member = get_member_by_id(request, userid)
|
member = get_member_by_id(request, userid)
|
||||||
|
|
||||||
if member:
|
if member:
|
||||||
mbr_id = member.CD_UTI
|
# Roles administrateur ?
|
||||||
# Chi hay Phuoc ?
|
if member.access == 9:
|
||||||
if mbr_id == 8 or mbr_id == 9:
|
|
||||||
return ['group:administrators']
|
return ['group:administrators']
|
||||||
else:
|
else:
|
||||||
return [] # it means that userid is logged in (it returns None if userid isn't logged in)
|
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({
|
$('#calendar').fullCalendar({
|
||||||
locale: 'fr',
|
locale: 'fr',
|
||||||
header: {
|
header: {
|
||||||
left: 'agendaDay agendaWeek month',
|
left: 'agendaDay agendaWeek month listMonth',
|
||||||
center: 'prev title next',
|
center: 'prev title next',
|
||||||
right: 'today'
|
right: 'today'
|
||||||
},
|
},
|
||||||
|
defaultView: 'agendaWeek',
|
||||||
|
minTime: "07:00:00",
|
||||||
|
maxTime: "21:00:00",
|
||||||
events:${fullcalendar_events},
|
events:${fullcalendar_events},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -11,7 +11,12 @@
|
|||||||
</div>
|
</div>
|
||||||
</div> <!-- row 1 -->
|
</div> <!-- row 1 -->
|
||||||
<br />
|
<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 -->
|
</div> <!-- row 2 -->
|
||||||
<br />
|
<br />
|
||||||
<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 :
|
if record :
|
||||||
# mot de passe hash valide ?
|
# mot de passe hash valide ?
|
||||||
if record.mdp == hashlib.sha1(password).hexdigest():
|
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)
|
headers = remember(request, login)
|
||||||
return HTTPFound(location=came_from, headers=headers)
|
return HTTPFound(location=came_from, headers=headers)
|
||||||
|
|
||||||
@@ -177,6 +181,14 @@ def login(request):
|
|||||||
'message': message,
|
'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')
|
@view_config(route_name='logout')
|
||||||
def logout(request):
|
def logout(request):
|
||||||
|
|||||||
Reference in New Issue
Block a user