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.security.common import assignOwner, removeOwner, allowEditingForOwner
from loops.security.common import assignPersonRole, removePersonRole
from loops.security.common import getCurrentPrincipal
from loops.security.interfaces import ISecuritySetter
from loops.type import TypeInterfaceSourceList
from loops import util
@ -57,7 +58,10 @@ PredicateInterfaceSourceList.predicateInterfaces += (IHasRole,)
def getPersonForUser(context, request=None, principal=None):
if principal is None:
principal = getattr(request, 'principal', None)
if request is None:
principal = getCurrentPrincipal()
else:
principal = getattr(request, 'principal', None)
if principal is None:
return None
loops = context.getLoopsRoot()