Code

added IMAP support to mail gateway (sf rfe 934000)
[roundup.git] / roundup / security.py
index 9ff5415113edccd1b44199e2a876700d9ce0e812..58496f452a18d35648ecb9886c4dfbaa986cce83 100644 (file)
@@ -1,3 +1,7 @@
+"""Handle the security declarations used in Roundup trackers.
+"""
+__docformat__ = 'restructuredtext'
+
 import weakref
 
 from roundup import hyperdb
@@ -27,7 +31,7 @@ class Role:
         - permissions
     '''
     def __init__(self, name='', description='', permissions=None):
-        self.name = name
+        self.name = name.lower()
         self.description = description
         if permissions is None:
             permissions = []
@@ -98,8 +102,8 @@ class Security:
         roles = self.db.user.get(userid, 'roles')
         if roles is None:
             return 0
-        for rolename in roles.split(','):
-            if not rolename:
+        for rolename in [x.lower().strip() for x in roles.split(',')]:
+            if not rolename or not self.role.has_key(rolename):
                 continue
             # for each of the user's Roles, check the permissions
             for perm in self.role[rolename].permissions:
@@ -155,6 +159,7 @@ class Security:
 
             'rolename' is the name of the role to add the permission to.
         '''
-        role = self.role[rolename]
+        role = self.role[rolename.lower()]
         role.permissions.append(permission)
 
+# vim: set filetype=python ts=4 sw=4 et si