summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris McDonough <chrism@agendaless.com>2008-08-20 13:22:56 +0000
committerChris McDonough <chrism@agendaless.com>2008-08-20 13:22:56 +0000
commite2b0eb6d1a355614834bb833182cc9a01bca061e (patch)
tree07d4e6a5d1f641739a5eb995282c7ed92e185e7f
parente35dc1a58a4e91977dc9819c80259f09800a0b58 (diff)
downloadpyramid-e2b0eb6d1a355614834bb833182cc9a01bca061e.tar.gz
pyramid-e2b0eb6d1a355614834bb833182cc9a01bca061e.tar.bz2
pyramid-e2b0eb6d1a355614834bb833182cc9a01bca061e.zip
Make seurity policies pickleable again.
-rw-r--r--repoze/bfg/security.py29
1 files changed, 15 insertions, 14 deletions
diff --git a/repoze/bfg/security.py b/repoze/bfg/security.py
index d15d89e96..6535f2608 100644
--- a/repoze/bfg/security.py
+++ b/repoze/bfg/security.py
@@ -136,6 +136,12 @@ def debug_logger(logger):
return logger
return logger
+def get_remoteuser(request):
+ user_id = request.environ.get('REMOTE_USER')
+ if user_id:
+ return [user_id]
+ return []
+
def RemoteUserACLSecurityPolicy(logger=None):
""" A security policy which:
@@ -155,12 +161,15 @@ def RemoteUserACLSecurityPolicy(logger=None):
"""
logger = debug_logger(logger)
- def get_principals(request):
- user_id = request.environ.get('REMOTE_USER')
- if user_id:
- return [user_id]
+ return ACLSecurityPolicy(logger, get_remoteuser)
+
+def get_who_principals(request):
+ identity = request.environ.get('repoze.who.identity')
+ if not identity:
return []
- return ACLSecurityPolicy(logger, get_principals)
+ principals = [identity['repoze.who.userid']]
+ principals.extend(identity.get('groups', []))
+ return principals
def RepozeWhoIdentityACLSecurityPolicy(logger=None):
""" A security policy which:
@@ -183,15 +192,7 @@ def RepozeWhoIdentityACLSecurityPolicy(logger=None):
"""
logger = debug_logger(logger)
- def get_principals(request):
- identity = request.environ.get('repoze.who.identity')
- if not identity:
- return []
- principals = [identity['repoze.who.userid']]
- principals.extend(identity.get('groups', []))
- return principals
-
- return ACLSecurityPolicy(logger, get_principals)
+ return ACLSecurityPolicy(logger, get_who_principals)
class PermitsResult:
def __init__(self, ace, acl, permission, principals, context):