tracking code: treat session owner of a form as its submitter

This commit is contained in:
Frédéric Péters 2015-02-24 15:13:47 +01:00
parent 4b014889df
commit da97ed7725
3 changed files with 7 additions and 3 deletions

View File

@ -298,6 +298,8 @@ def test_form_tracking_code():
resp = resp.follow()
assert resp.location == 'http://example.net/test/%s' % formdata_id
resp = resp.follow()
resp = resp.follow()
assert 'form_comment' in resp.body # makes sure user is treated as submitter
def test_form_tracking_code_email():
formdef = create_formdef()

View File

@ -19,7 +19,7 @@ import datetime
import json
import time
from quixote import get_request, get_publisher
from quixote import get_request, get_publisher, get_session
from quixote.http_request import Upload
from qommon.storage import StorableObject
@ -438,6 +438,8 @@ class FormData(StorableObject):
return True
except AttributeError:
return False
if get_session() and get_session().is_anonymous_submitter(self):
return True
return False
def is_draft(self):

View File

@ -729,13 +729,13 @@ class WorkflowStatusItem(object):
for role in self.by or []:
if user and role == logged_users_role().id:
return True
if not user:
continue
if role == '_submitter':
t = formdata.is_submitter(user)
if t is True:
return True
continue
if not user:
continue
role = get_role_translation(formdata, role)
if role in (user.roles or []):
return True