tracking code: treat session owner of a form as its submitter
This commit is contained in:
parent
4b014889df
commit
da97ed7725
|
@ -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()
|
||||
|
|
|
@ -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):
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue