# HG changeset patch # User Marcin Kuzminski # Date 1278453477 -7200 # Node ID 5d517bbf0a0d1c88c612a57589c663161318e045 # Parent 1eb2267a54695a8116c0d58ee25c90e0b9c3db78 some extra checks for auth lib diff -r 1eb2267a5469 -r 5d517bbf0a0d pylons_app/lib/auth.py --- 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