[FIX] mail: check access rules of related documents when subscribing to it
Fix tests to execute actions with user that are allowed to bzr revid: mat@openerp.com-20140106141157-0tp2bgw2d40ynrag
This commit is contained in:
parent
b1af63310c
commit
d106d54ade
|
@ -1195,10 +1195,12 @@ class mail_thread(osv.AbstractModel):
|
||||||
if set(partner_ids) == set([user_pid]):
|
if set(partner_ids) == set([user_pid]):
|
||||||
try:
|
try:
|
||||||
self.check_access_rights(cr, uid, 'read')
|
self.check_access_rights(cr, uid, 'read')
|
||||||
|
self.check_access_rule(cr, uid, ids, 'read')
|
||||||
except (osv.except_osv, orm.except_orm):
|
except (osv.except_osv, orm.except_orm):
|
||||||
return
|
return False
|
||||||
else:
|
else:
|
||||||
self.check_access_rights(cr, uid, 'write')
|
self.check_access_rights(cr, uid, 'write')
|
||||||
|
self.check_access_rule(cr, uid, ids, 'write')
|
||||||
|
|
||||||
existing_pids_dict = {}
|
existing_pids_dict = {}
|
||||||
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('res_id', 'in', ids)])
|
fol_ids = mail_followers_obj.search(cr, SUPERUSER_ID, [('res_model', '=', self._name), ('res_id', 'in', ids)])
|
||||||
|
@ -1243,8 +1245,10 @@ class mail_thread(osv.AbstractModel):
|
||||||
user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0]
|
user_pid = self.pool.get('res.users').read(cr, uid, uid, ['partner_id'], context=context)['partner_id'][0]
|
||||||
if set(partner_ids) == set([user_pid]):
|
if set(partner_ids) == set([user_pid]):
|
||||||
self.check_access_rights(cr, uid, 'read')
|
self.check_access_rights(cr, uid, 'read')
|
||||||
|
self.check_access_rule(cr, uid, ids, 'read')
|
||||||
else:
|
else:
|
||||||
self.check_access_rights(cr, uid, 'write')
|
self.check_access_rights(cr, uid, 'write')
|
||||||
|
self.check_access_rule(cr, uid, ids, 'write')
|
||||||
fol_obj = self.pool['mail.followers']
|
fol_obj = self.pool['mail.followers']
|
||||||
fol_ids = fol_obj.search(
|
fol_ids = fol_obj.search(
|
||||||
cr, SUPERUSER_ID, [
|
cr, SUPERUSER_ID, [
|
||||||
|
|
|
@ -277,7 +277,7 @@ class TestPortalProject(common.TransactionCase):
|
||||||
|
|
||||||
# Data: subscribe Alfred, Chell and Donovan as follower
|
# Data: subscribe Alfred, Chell and Donovan as follower
|
||||||
self.project_project.message_subscribe_users(cr, uid, [pigs_id], [self.user_alfred_id, self.user_chell_id, self.user_donovan_id])
|
self.project_project.message_subscribe_users(cr, uid, [pigs_id], [self.user_alfred_id, self.user_chell_id, self.user_donovan_id])
|
||||||
self.project_task.message_subscribe_users(cr, self.user_alfred_id, [self.task_1_id, self.task_3_id], [self.user_chell_id, self.user_alfred_id])
|
self.project_task.message_subscribe_users(cr, self.user_ernest_id, [self.task_1_id, self.task_3_id], [self.user_chell_id, self.user_alfred_id])
|
||||||
|
|
||||||
# Do: Alfred reads project -> ok (follower ok followers)
|
# Do: Alfred reads project -> ok (follower ok followers)
|
||||||
self.project_project.read(cr, self.user_alfred_id, pigs_id, ['name'])
|
self.project_project.read(cr, self.user_alfred_id, pigs_id, ['name'])
|
||||||
|
|
|
@ -168,7 +168,7 @@ class TestPortalIssueProject(TestPortalProject):
|
||||||
|
|
||||||
# Data: subscribe Alfred, Chell and Donovan as follower
|
# Data: subscribe Alfred, Chell and Donovan as follower
|
||||||
self.project_project.message_subscribe_users(cr, uid, [pigs_id], [self.user_alfred_id, self.user_chell_id, self.user_donovan_id])
|
self.project_project.message_subscribe_users(cr, uid, [pigs_id], [self.user_alfred_id, self.user_chell_id, self.user_donovan_id])
|
||||||
self.project_issue.message_subscribe_users(cr, self.user_alfred_id, [self.issue_1_id, self.issue_3_id], [self.user_chell_id, self.user_alfred_id])
|
self.project_issue.message_subscribe_users(cr, self.user_ernest_id, [self.issue_1_id, self.issue_3_id], [self.user_chell_id, self.user_alfred_id])
|
||||||
|
|
||||||
# Do: Alfred reads project -> ok (follower ok followers)
|
# Do: Alfred reads project -> ok (follower ok followers)
|
||||||
# Test: followed + assigned issues visible
|
# Test: followed + assigned issues visible
|
||||||
|
|
Loading…
Reference in New Issue