]> de.git.xonotic.org Git - xonotic/xonstat.git/blob - xonstat/security.py
Change groupfinder to use the groups table.
[xonotic/xonstat.git] / xonstat / security.py
1 import logging
2 from pyramid.security import Allow, Everyone
3 from xonstat.models import DBSession, Player, PlayerGroups
4
5 log = logging.getLogger(__name__)
6
7 USERS = {
8     'admin':'admin',
9     'viewer':'viewer',
10 }
11
12 GROUPS = {
13     'admin':['group:admins'],
14 }
15
16 # default ACL
17 class ACLFactory(object):
18     __acl__ = [
19         (Allow, Everyone, 'view'),
20         (Allow, 'group:admins', 'merge')
21     ]
22     def __init__(self, request):
23         pass
24
25
26 def groupfinder(userid, request):
27     groups = []
28     try:
29         groups_q = DBSession.query(PlayerGroups.group_name).\
30             filter(Player.email_addr == userid).all()
31
32         for g in groups_q:
33             groups.append(g.group_name)
34     except:
35         pass
36
37     log.debug("Found the following groups for %s: %s" % (userid, groups))
38
39     return groups