diff pylons_app/lib/auth.py @ 339:5d517bbf0a0d

some extra checks for auth lib
author Marcin Kuzminski <marcin@python-works.com>
date Tue, 06 Jul 2010 23:57:57 +0200
parents f5f290d68646
children 6484963056cd
line wrap: on
line diff
--- a/pylons_app/lib/auth.py	Tue Jul 06 23:50:53 2010 +0200
+++ b/pylons_app/lib/auth.py	Tue Jul 06 23:57:57 2010 +0200
@@ -218,7 +218,7 @@
     """
         
     def check_permissions(self):
-        if self.required_perms.issubset(self.user_perms['global']):
+        if self.required_perms.issubset(self.user_perms.get('global')):
             return True
         return False
             
@@ -230,7 +230,7 @@
     """
     
     def check_permissions(self):
-        if self.required_perms.intersection(self.user_perms['global']):
+        if self.required_perms.intersection(self.user_perms.get('global')):
             return True
         return False
 
@@ -242,7 +242,10 @@
             
     def check_permissions(self):
         repo_name = get_repo_slug(request)
-        user_perms = set([self.user_perms['repositories'][repo_name]])
+        try:
+            user_perms = set([self.user_perms['repositories'][repo_name]])
+        except KeyError:
+            return False
         if self.required_perms.issubset(user_perms):
             return True
         return False
@@ -257,7 +260,10 @@
     def check_permissions(self):
         repo_name = get_repo_slug(request)
         
-        user_perms = set([self.user_perms['repositories'][repo_name]])
+        try:
+            user_perms = set([self.user_perms['repositories'][repo_name]])
+        except KeyError:
+            return False
         if self.required_perms.intersection(user_perms):
             return True
         return False
@@ -307,13 +313,13 @@
         
 class HasPermissionAll(PermsFunction):
     def check_permissions(self):
-        if self.required_perms.issubset(self.user_perms['global']):
+        if self.required_perms.issubset(self.user_perms.get('global')):
             return True
         return False
 
 class HasPermissionAny(PermsFunction):
     def check_permissions(self):
-        if self.required_perms.intersection(self.user_perms['global']):
+        if self.required_perms.intersection(self.user_perms.get('global')):
             return True
         return False
 
@@ -327,8 +333,11 @@
         if not self.repo_name:
             self.repo_name = get_repo_slug(request)
 
-        self.user_perms = set([self.user_perms['repositories']\
-                               .get(self.repo_name)])
+        try:
+            self.user_perms = set([self.user_perms['repositories']\
+                                   [self.repo_name]])
+        except KeyError:
+            return False
         self.granted_for = self.repo_name       
         if self.required_perms.issubset(self.user_perms):
             return True
@@ -345,8 +354,11 @@
         if not self.repo_name:
             self.repo_name = get_repo_slug(request)
 
-        self.user_perms = set([self.user_perms['repositories']\
-                               .get(self.repo_name)])
+        try:
+            self.user_perms = set([self.user_perms['repositories']\
+                                   [self.repo_name]])
+        except KeyError:
+            return False
         self.granted_for = self.repo_name
         if self.required_perms.intersection(self.user_perms):
             return True