def test_post_to_private_list_accepted_members(self):
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="MEMBERS")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=True)
     PermissionCache(self.env, 'sparrowj',
                     mailinglist.resource).assert_permission('MAILINGLIST_POST')
 def test_read_private_list_denied(self):
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="RESTRICTED")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=False)        
     mailinglist.subscribe(user="******", poster=True)
     PermissionCache(self.env, 'randomuser',
                     mailinglist.resource).assert_permission('MAILINGLIST_VIEW')
 def test_post_to_private_list_accepted_restricted(self):
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="RESTRICTED")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=False)        
     mailinglist.subscribe(user="******", poster=True)
     PermissionCache(self.env, 'sparrowj',
                     mailinglist.resource).assert_permission('MAILINGLIST_POST')
 def test_post_to_private_list_denied_restricted_nonmember(self):
     """Non-posting member of this list."""        
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="RESTRICTED")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=False)
     PermissionCache(self.env, 'smithj',
                     mailinglist.resource).assert_permission('MAILINGLIST_POST')
 def test_post_to_private_list_accepted_members_group(self):
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="MEMBERS")
     mailinglist.insert()
     PermissionSystem(self.env).grant_permission('sparrowj', 'group1')
     PermissionSystem(self.env).grant_permission('smithj', 'group1')        
     mailinglist.subscribe(group="group1", poster=True)
     PermissionCache(self.env, 'sparrowj',
                     mailinglist.resource).assert_permission('MAILINGLIST_POST')
 def test_read_nonprivate_list_denied(self):
     # not a private list, but in general the user isn't allowed to
     # view mailing lists (e.g., not a member of this project at all.)
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=False, postperm="RESTRICTED")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=False)        
     mailinglist.subscribe(user="******", poster=True)
     PermissionCache(self.env, 'randomuser',
                     mailinglist.resource).assert_permission('MAILINGLIST_VIEW')
 def test_read_nonprivate_list_accepted(self):
     PermissionSystem(self.env).grant_permission('members', 'MAILINGLIST_VIEW')
     PermissionSystem(self.env).grant_permission('randomuser', 'members')
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=False, postperm="RESTRICTED")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=False)        
     mailinglist.subscribe(user="******", poster=True)
     PermissionCache(self.env, 'randomuser',
                     mailinglist.resource).assert_permission('MAILINGLIST_VIEW')
    def test_subscribers(self):
        mailinglist = Mailinglist(self.env,
                                  emailaddress="LIST1", private=True, postperm="MEMBERS")
        mailinglist.insert()
        PermissionSystem(self.env).grant_permission('sparrowj', 'group1')
        PermissionSystem(self.env).grant_permission('smithj', 'group1')
        PermissionSystem(self.env).grant_permission('pipern', 'group2')
        mailinglist.subscribe(group="group1", poster=True)
        mailinglist.subscribe(group="group2", poster=True)
        mailinglist.unsubscribe(user="******")

        assert mailinglist.subscribers()["smithj"]['decline'] == True
        assert "sparrowj" in mailinglist.subscribers()
        assert "pipern" in mailinglist.subscribers()

        mailinglist.unsubscribe(group="group1")
        assert "sparrowj" not in mailinglist.subscribers()        
 def test_add_list_member(self):
     mailinglist = Mailinglist(self.env,
                               emailaddress="LIST1", private=True, postperm="MEMBERS")
     mailinglist.insert()
     mailinglist.subscribe(user="******", poster=True)
     assert "sparrowj" in mailinglist.subscribers()