Skip to content

Commit

Permalink
Apply review for implementation of #1464
Browse files Browse the repository at this point in the history
  • Loading branch information
evilaliv3 committed Dec 17, 2018
1 parent 50bc685 commit c0dc5f6
Show file tree
Hide file tree
Showing 5 changed files with 31 additions and 33 deletions.
39 changes: 20 additions & 19 deletions backend/globaleaks/handlers/rtip.py
Expand Up @@ -377,33 +377,22 @@ def db_get_itip_comment_list(session, itip_id):
return [serialize_comment(session, comment) for comment in session.query(models.Comment).filter(models.Comment.internaltip_id == itip_id)]


@transact
def create_identityaccessrequest(session, tid, user_id, rtip_id, request):
rtip, itip = db_access_rtip(session, tid, user_id, rtip_id)

iar = models.IdentityAccessRequest()
iar.request_motivation = request['request_motivation']
iar.receivertip_id = rtip.id
session.add(iar)
session.flush()
def db_create_identityaccessrequest_notifications(session, tid, itip, rtip, iar):
users = session.query(models.User).filter(models.User.role == u'custodian', models.User.notification == True)
for user in users:
node = db_admin_serialize_node(session, tid, user.language)
context = session.query(models.Context).filter(models.Context.id == itip.context_id, models.Context.tid == tid).one()

# TODO: manage email threshold for custodian user
user = session.query(models.User).get(user_id)
# is user wish to receive mail
if user.notification == 1:
data = {
'type': 'identity_access_request'
}

data['user'] = user_serialize_user(session, user, user.language)
data['tip'] = serialize_rtip(session, rtip, itip, user.language)
context = session.query(models.Context).filter(models.Context.id == itip.context_id, models.Context.tid == tid).one()
data['context'] = admin_serialize_context(session, context, user.language)
data['iar'] = serialize_identityaccessrequest(session, iar)
data['node'] = db_admin_serialize_node(session, tid, user.language)

if not data['node']['allow_unencrypted'] and len(user.pgp_key_public) == 0:
return

if data['node']['mode'] != u'whistleblowing.it':
data['notification'] = db_get_notification(session, tid, user.language)
else:
Expand All @@ -415,9 +404,21 @@ def create_identityaccessrequest(session, tid, user_id, rtip_id, request):
'address': data['user']['mail_address'],
'subject': subject,
'body': body,
'tid': tid,
'tid': tid
}))
session.flush()


@transact
def create_identityaccessrequest(session, tid, user_id, rtip_id, request):
rtip, itip = db_access_rtip(session, tid, user_id, rtip_id)

iar = models.IdentityAccessRequest()
iar.request_motivation = request['request_motivation']
iar.receivertip_id = rtip.id
session.add(iar)
session.flush()

db_create_identityaccessrequest_notifications(session, tid, itip, rtip, iar)

return serialize_identityaccessrequest(session, iar)

Expand Down
3 changes: 0 additions & 3 deletions backend/globaleaks/jobs/notification.py
Expand Up @@ -188,9 +188,6 @@ def process_mail_creation(self, session, tid, data):

data['node'] = self.serialize_config(session, 'node', tid, data['user']['language'])

if not data['node']['allow_unencrypted'] and len(data['user']['pgp_key_public']) == 0:
return

if data['node']['mode'] != u'whistleblowing.it':
data['notification'] = self.serialize_config(session, 'notification', tid, data['user']['language'])
else:
Expand Down
11 changes: 10 additions & 1 deletion backend/globaleaks/tests/handlers/test_custodian.py
@@ -1,5 +1,5 @@
# -*- coding: utf-8 -*-
from globaleaks.handlers import custodian
from globaleaks.handlers import custodian, rtip
from globaleaks.tests import helpers
from twisted.internet.defer import inlineCallbacks

Expand All @@ -12,6 +12,15 @@ def setUp(self):
yield helpers.TestHandlerWithPopulatedDB.setUp(self)
yield self.perform_full_submission_actions()

dummyRTips = yield self.get_rtips()

for rtip_desc in dummyRTips:
yield rtip.create_identityaccessrequest(1,
rtip_desc['receiver_id'],
rtip_desc['id'],
{'request_motivation': u'request motivation'})


@inlineCallbacks
def test_get_new_identityaccessrequest(self):
iars = yield custodian.get_identityaccessrequest_list(1)
Expand Down
9 changes: 0 additions & 9 deletions backend/globaleaks/tests/helpers.py
Expand Up @@ -786,10 +786,6 @@ def perform_submission_actions(self, token):

@inlineCallbacks
def perform_post_submission_actions(self):
identityaccessrequestCreation = {
'request_motivation': u'request motivation'
}

self.dummyRTips = yield self.get_rtips()

for rtip_desc in self.dummyRTips:
Expand All @@ -805,11 +801,6 @@ def perform_post_submission_actions(self):
rtip_desc['id'],
'message')

yield rtip.create_identityaccessrequest(1,
rtip_desc['receiver_id'],
rtip_desc['id'],
identityaccessrequestCreation)

self.dummyWBTips = yield self.get_wbtips()

for wbtip_desc in self.dummyWBTips:
Expand Down
2 changes: 1 addition & 1 deletion backend/globaleaks/utils/templating.py
Expand Up @@ -631,7 +631,7 @@ class IdentityAccessRequestKeyword(UserNodeKeyword):
data_keys = UserNodeKeyword.data_keys + ['iar', 'tip', 'user']

def TipNum(self):
return str(self.data['tip']['id'])
return str(self.data['tip']['progressive'])

def _TorUrl(self):
return 'http://' + self.data['node']['onionservice'] + '/#/custodian/identityaccessrequests/'
Expand Down

0 comments on commit c0dc5f6

Please sign in to comment.