use interaction for identifying principal if request is not given

This commit is contained in:
Helmut Merz 2013-08-01 08:21:14 +02:00
parent 44b20b9da9
commit 077e74ca72

View file

@ -44,6 +44,7 @@ from loops.predicate import RelationAdapter
from loops.predicate import PredicateInterfaceSourceList from loops.predicate import PredicateInterfaceSourceList
from loops.security.common import assignOwner, removeOwner, allowEditingForOwner from loops.security.common import assignOwner, removeOwner, allowEditingForOwner
from loops.security.common import assignPersonRole, removePersonRole from loops.security.common import assignPersonRole, removePersonRole
from loops.security.common import getCurrentPrincipal
from loops.security.interfaces import ISecuritySetter from loops.security.interfaces import ISecuritySetter
from loops.type import TypeInterfaceSourceList from loops.type import TypeInterfaceSourceList
from loops import util from loops import util
@ -57,6 +58,9 @@ PredicateInterfaceSourceList.predicateInterfaces += (IHasRole,)
def getPersonForUser(context, request=None, principal=None): def getPersonForUser(context, request=None, principal=None):
if principal is None: if principal is None:
if request is None:
principal = getCurrentPrincipal()
else:
principal = getattr(request, 'principal', None) principal = getattr(request, 'principal', None)
if principal is None: if principal is None:
return None return None