""" Test mail_message search override about access rights. """
self.assertTrue(1 == 1, 'Test not implemented, do not replace by return True')
- # def test_10_mail_flow_access_rights(self):
- # """ Test a Chatter-looks alike flow. """
- # cr, uid = self.cr, self.uid
- # partner_bert_id, partner_raoul_id = self.partner_bert_id, self.partner_raoul_id
- # user_bert_id, user_raoul_id = self.user_bert_id, self.user_raoul_id
-
- # # Prepare groups: Pigs (employee), Jobs (public)
- # self.mail_group.message_post(cr, uid, self.group_pigs_id, body='Message')
- # self.group_jobs_id = self.mail_group.create(cr, uid, {'name': 'Jobs', 'public': 'public'})
-
- # # ----------------------------------------
- # # CASE1: Bert, without groups
- # # ----------------------------------------
- # # Do: Bert creates a group, should crash because perm_create only for employees
- # self.assertRaises(except_orm,
- # self.mail_group.create,
- # cr, user_bert_id, {'name': 'Bert\'s Group'})
- # # Do: Bert reads Jobs basic fields, ok because public = read access on the group
- # self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['name', 'description'])
- # # Do: Bert browse Pigs, ok (no direct browse of partners)
- # self.mail_group.browse(cr, user_bert_id, self.group_jobs_id)
- # # Do: Bert reads Jobs messages, ok because read access on the group => read access on its messages
- # jobs_message_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_ids'])['message_ids']
- # self.mail_message.read(cr, user_bert_id, jobs_message_ids)
- # # Do: Bert reads Jobs followers, ko because partner are accessible to employees or partner manager
- # jobs_followers_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_follower_ids'])['message_follower_ids']
- # self.assertRaises(except_orm,
- # self.res_partner.read,
- # cr, user_bert_id, jobs_followers_ids)
- # # Do: Bert comments Jobs, ko because no write access on the group and not in the followers
- # self.assertRaises(except_orm,
- # self.mail_group.message_post,
- # cr, user_bert_id, self.group_jobs_id, body='I love Pigs')
- # # Do: add Bert to jobs followers
- # self.mail_group.message_subscribe(cr, uid, [self.group_jobs_id], [partner_bert_id])
- # # Do: Bert comments Jobs, ok because he is now in the followers
- # self.mail_group.message_post(cr, user_bert_id, self.group_jobs_id, body='I love Pigs')
-
- # # Do: Bert reads Pigs, should crash because mail.group security=groups only for employee group
- # self.assertRaises(except_orm,
- # self.mail_group.read,
- # cr, user_bert_id, self.group_pigs_id)
-
- # # ----------------------------------------
- # # CASE1: Raoul, employee
- # # ----------------------------------------
- # # Do: Bert read Pigs, ok because public
- # self.mail_group.read(cr, user_raoul_id, self.group_pigs_id)
- # # Do: Bert read Jobs, ok because group_public_id = employee
- # self.mail_group.read(cr, user_raoul_id, self.group_jobs_id)
+ def test_10_mail_flow_access_rights(self):
+ """ Test a Chatter-looks alike flow. """
+ cr, uid = self.cr, self.uid
+ partner_bert_id, partner_raoul_id = self.partner_bert_id, self.partner_raoul_id
+ user_bert_id, user_raoul_id = self.user_bert_id, self.user_raoul_id
+
+ # Prepare groups: Pigs (employee), Jobs (public)
+ self.mail_group.message_post(cr, uid, self.group_pigs_id, body='Message')
+ self.group_jobs_id = self.mail_group.create(cr, uid, {'name': 'Jobs', 'public': 'public'})
+
+ # ----------------------------------------
+ # CASE1: Bert, without groups
+ # ----------------------------------------
+ # Do: Bert creates a group, should crash because perm_create only for employees
+ self.assertRaises(except_orm,
+ self.mail_group.create,
+ cr, user_bert_id, {'name': 'Bert\'s Group'})
+ # Do: Bert reads Jobs basic fields, ok because public = read access on the group
+ self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['name', 'description'])
+ # Do: Bert browse Pigs, ok (no direct browse of partners)
+ self.mail_group.browse(cr, user_bert_id, self.group_jobs_id)
+ # Do: Bert reads Jobs messages, ok because read access on the group => read access on its messages
+ jobs_message_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_ids'])['message_ids']
+ self.mail_message.read(cr, user_bert_id, jobs_message_ids)
+ # Do: Bert reads Jobs followers, ko because partner are accessible to employees or partner manager
+ jobs_followers_ids = self.mail_group.read(cr, user_bert_id, self.group_jobs_id, ['message_follower_ids'])['message_follower_ids']
+ self.assertRaises(except_orm,
+ self.res_partner.read,
+ cr, user_bert_id, jobs_followers_ids)
+ # Do: Bert comments Jobs, ko because no write access on the group and not in the followers
+ self.assertRaises(except_orm,
+ self.mail_group.message_post,
+ cr, user_bert_id, self.group_jobs_id, body='I love Pigs')
+ # Do: add Bert to jobs followers
+ self.mail_group.message_subscribe(cr, uid, [self.group_jobs_id], [partner_bert_id])
+ # Do: Bert comments Jobs, ok because he is now in the followers
+ self.mail_group.message_post(cr, user_bert_id, self.group_jobs_id, body='I love Pigs')
+
+ # Do: Bert reads Pigs, should crash because mail.group security=groups only for employee group
+ self.assertRaises(except_orm,
+ self.mail_group.read,
+ cr, user_bert_id, self.group_pigs_id)
+
+ # ----------------------------------------
+ # CASE1: Raoul, employee
+ # ----------------------------------------
+ # Do: Bert read Pigs, ok because public
+ self.mail_group.read(cr, user_raoul_id, self.group_pigs_id)
+ # Do: Bert read Jobs, ok because group_public_id = employee
+ self.mail_group.read(cr, user_raoul_id, self.group_jobs_id)