Example #1
0
def get_query(after_user_id):
    q = SRMember._query(
        SRMember.c._name == "subscriber",
        SRMember.c._thing2_id < after_user_id,
        sort=desc("_thing2_id"),
    )
    return q
 def setUp(self):
     a = Account()
     a._commit()
     sr = Subreddit(name = 'subreddit_name_%s' % (self.seconds_since_epoc(),),
                    title = 'subreddit_title_%s' % (self.seconds_since_epoc(),),)
     sr._commit()
     self.rel = SRMember(sr, a, 'test')
Example #3
0
def get_query(after_user_id):
    q = SRMember._query(
        SRMember.c._name == "subscriber",
        SRMember.c._thing2_id < after_user_id,
        sort=desc("_thing2_id"),
    )
    return q
Example #4
0
    def moderated_subreddits(self, permissions=None):
        """Yield an iterator of Subreddits the user moderates.

        The `permissions` argument is optional, but can be a string or
        list of strings specifying moderator permissions. If specified,
        subreddits will only be yielded if the user has those
        permissions in that subreddit.

        """
        from r2.models.subreddit import SRMember

        if permissions:
            permissions = tup(permissions)

        mod_rels = SRMember._query(
            SRMember.c._thing2_id == self._id,
            SRMember.c._name == "moderator",
            data=True,
        )

        for rel in mod_rels:
            if permissions:
                rel._permission_class = ModeratorPermissionSet
                # skip any where the user doesn't have the right perms
                if not all(rel.has_permission(perm) for perm in permissions):
                    continue

            yield rel._thing1
Example #5
0
    def moderated_subreddits(self, permissions=None):
        """Yield an iterator of Subreddits the user moderates.

        The `permissions` argument is optional, but can be a string or
        list of strings specifying moderator permissions. If specified,
        subreddits will only be yielded if the user has those
        permissions in that subreddit.

        """
        from r2.models.subreddit import SRMember

        if permissions:
            permissions = tup(permissions)

        mod_rels = SRMember._query(SRMember.c._thing2_id == self._id, SRMember.c._name == "moderator", data=True)

        for rel in mod_rels:
            if permissions:
                rel._permission_class = ModeratorPermissionSet
                # skip any where the user doesn't have the right perms
                if not all(rel.has_permission(perm) for perm in permissions):
                    continue

            yield rel._thing1
Example #6
0
 def setUp(self):
     a = Account()
     a._id = 1
     sr = Subreddit()
     sr._id = 2
     self.rel = SRMember(sr, a, 'test')
Example #7
0
class SRMemberTest(unittest.TestCase):
    def setUp(self):
        a = Account()
        a._id = 1
        sr = Subreddit()
        sr._id = 2
        self.rel = SRMember(sr, a, 'test')

    def test_get_permissions(self):
        self.assertRaises(NotImplementedError, self.rel.get_permissions)
        self.rel._permission_class = TestPermissionSet
        self.assertEquals('', self.rel.get_permissions().dumps())
        self.rel.encoded_permissions = '+x,-y'
        self.assertEquals('+x,-y', self.rel.get_permissions().dumps())

    def test_has_permission(self):
        self.assertRaises(NotImplementedError, self.rel.has_permission, 'x')
        self.rel._permission_class = TestPermissionSet
        self.assertFalse(self.rel.has_permission('x'))
        self.rel.encoded_permissions = '+x,-y'
        self.assertTrue(self.rel.has_permission('x'))
        self.assertFalse(self.rel.has_permission('y'))
        self.rel.encoded_permissions = '+all'
        self.assertTrue(self.rel.has_permission('x'))
        self.assertTrue(self.rel.has_permission('y'))
        self.assertFalse(self.rel.has_permission('z'))

    def test_update_permissions(self):
        self.assertRaises(NotImplementedError,
                          self.rel.update_permissions, x=True)
        self.rel._permission_class = TestPermissionSet
        self.rel.update_permissions(x=True, y=False)
        self.assertEquals('+x,-y', self.rel.encoded_permissions)
        self.rel.update_permissions(x=None)
        self.assertEquals('-y', self.rel.encoded_permissions)
        self.rel.update_permissions(y=None, z=None)
        self.assertEquals('', self.rel.encoded_permissions)
        self.rel.update_permissions(x=True, y=False, all=True)
        self.assertEquals('+all', self.rel.encoded_permissions)

    def test_set_permissions(self):
        self.rel.set_permissions(PermissionSet(x=True, y=False))
        self.assertEquals('+x,-y', self.rel.encoded_permissions)

    def test_is_superuser(self):
        self.assertRaises(NotImplementedError, self.rel.is_superuser)
        self.rel._permission_class = TestPermissionSet
        self.assertFalse(self.rel.is_superuser())
        self.rel.encoded_permissions = '+all'
        self.assertTrue(self.rel.is_superuser())
Example #8
0
 def setUp(self):
     a = Account()
     a._commit()
     sr = Subreddit()
     sr._commit()
     self.rel = SRMember(sr, a, 'test')
Example #9
0
class SRMemberTest(unittest.TestCase):
    def setUp(self):
        a = Account()
        a._commit()
        sr = Subreddit()
        sr._commit()
        self.rel = SRMember(sr, a, 'test')

    def test_get_permissions(self):
        self.assertRaises(NotImplementedError, self.rel.get_permissions)
        self.rel._permission_class = TestPermissionSet
        self.assertEquals('', self.rel.get_permissions().dumps())
        self.rel.encoded_permissions = '+x,-y'
        self.assertEquals('+x,-y', self.rel.get_permissions().dumps())

    def test_has_permission(self):
        self.assertRaises(NotImplementedError, self.rel.has_permission, 'x')
        self.rel._permission_class = TestPermissionSet
        self.assertFalse(self.rel.has_permission('x'))
        self.rel.encoded_permissions = '+x,-y'
        self.assertTrue(self.rel.has_permission('x'))
        self.assertFalse(self.rel.has_permission('y'))
        self.rel.encoded_permissions = '+all'
        self.assertTrue(self.rel.has_permission('x'))
        self.assertTrue(self.rel.has_permission('y'))
        self.assertFalse(self.rel.has_permission('z'))

    def test_update_permissions(self):
        self.assertRaises(NotImplementedError,
                          self.rel.update_permissions,
                          x=True)
        self.rel._permission_class = TestPermissionSet
        self.rel.update_permissions(x=True, y=False)
        self.assertEquals('+x,-y', self.rel.encoded_permissions)
        self.rel.update_permissions(x=None)
        self.assertEquals('-y', self.rel.encoded_permissions)
        self.rel.update_permissions(y=None, z=None)
        self.assertEquals('', self.rel.encoded_permissions)
        self.rel.update_permissions(x=True, y=False, all=True)
        self.assertEquals('+all', self.rel.encoded_permissions)

    def test_set_permissions(self):
        self.rel.set_permissions(PermissionSet(x=True, y=False))
        self.assertEquals('+x,-y', self.rel.encoded_permissions)

    def test_is_superuser(self):
        self.assertRaises(NotImplementedError, self.rel.is_superuser)
        self.rel._permission_class = TestPermissionSet
        self.assertFalse(self.rel.is_superuser())
        self.rel.encoded_permissions = '+all'
        self.assertTrue(self.rel.is_superuser())