Make sure is_moderator always returns permissions support.

This commit is contained in:
Logan Hanks
2013-02-20 11:48:12 -08:00
parent de76bb6380
commit 4d252de134

View File

@@ -881,7 +881,8 @@ class FakeSubreddit(Subreddit):
return False
def is_moderator(self, user):
return c.user_is_loggedin and c.user_is_admin
if c.user_is_loggedin and c.user_is_admin:
return FakeSRMember(ModeratorPermissionSet)
def can_view(self, user):
return True
@@ -1179,7 +1180,7 @@ class MultiReddit(_DefaultSR):
if None in mod_rels.values():
return False
else:
return True
return FakeSRMember(ModeratorPermissionSet)
@property
def path(self):
@@ -1243,7 +1244,7 @@ class ModSR(ModContribSR):
real_path = "mod"
def is_moderator(self, user):
return True
return FakeSRMember(ModeratorPermissionSet)
class ContribSR(ModContribSR):
name = "contrib"
@@ -1343,6 +1344,21 @@ class SRMember(Relation(Subreddit, Account)):
return self.get_permissions().is_superuser()
class FakeSRMember:
"""All-permission granting stub for SRMember, used by FakeSubreddits."""
def __init__(self, permission_class):
self.permission_class = permission_class
def has_permission(self, perm):
return True
def get_permissions(self):
return self.permission_class(all=True)
def is_superuser(self):
return True
Subreddit.__bases__ += (
UserRel('moderator', SRMember,
permission_class=ModeratorPermissionSet),