mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-01-29 16:58:21 -05:00
Add moderator permission for access (bans, contributors, etc.).
This commit is contained in:
@@ -594,7 +594,8 @@ class ApiController(RedditController, OAuth2ResourceController):
|
||||
# for the privilege change to succeed.
|
||||
victim = iuser or nuser
|
||||
if (not c.user_is_admin
|
||||
and (type in self._sr_friend_types and not container.is_moderator(c.user))):
|
||||
and (type in self._sr_friend_types
|
||||
and not container.is_moderator_with_perms(c.user, 'access'))):
|
||||
abort(403, 'forbidden')
|
||||
if (type == 'moderator' and not
|
||||
(c.user_is_admin or container.can_demod(c.user, victim))):
|
||||
@@ -688,7 +689,7 @@ class ApiController(RedditController, OAuth2ResourceController):
|
||||
# for the privilege change to succeed.
|
||||
if (not c.user_is_admin
|
||||
and type in self._sr_friend_types
|
||||
and (not container.is_moderator(c.user)
|
||||
and (not container.is_moderator_with_perms(c.user, 'access')
|
||||
or c.user._spam)):
|
||||
if c.user._spam:
|
||||
return
|
||||
|
||||
@@ -609,19 +609,23 @@ class FrontController(RedditController, OAuth2ResourceController):
|
||||
pane.append(CreateSubreddit(site = c.site))
|
||||
elif location == 'moderators':
|
||||
pane = ModList(editable=is_unlimited_moderator)
|
||||
elif is_moderator and location == 'banned':
|
||||
pane = BannedList(editable = is_moderator)
|
||||
elif is_moderator and location == 'wikibanned':
|
||||
pane = WikiBannedList(editable = is_moderator)
|
||||
elif is_moderator and location == 'wikicontributors':
|
||||
pane = WikiMayContributeList(editable = is_moderator)
|
||||
elif is_moderator_with_perms('access') and location == 'banned':
|
||||
pane = BannedList(editable=is_moderator_with_perms('access'))
|
||||
elif is_moderator_with_perms('access') and location == 'wikibanned':
|
||||
pane = WikiBannedList(editable=is_moderator_with_perms('access'))
|
||||
elif (is_moderator_with_perms('access')
|
||||
and location == 'wikicontributors'):
|
||||
pane = WikiMayContributeList(
|
||||
editable=is_moderator_with_perms('access'))
|
||||
elif (location == 'contributors' and
|
||||
# On public reddits, only moderators can see the whitelist.
|
||||
# On private reddits, all contributors can see each other.
|
||||
(c.site.type != 'public' or
|
||||
(c.user_is_loggedin and
|
||||
(c.site.is_moderator(c.user) or c.user_is_admin)))):
|
||||
pane = ContributorList(editable = is_moderator)
|
||||
(c.site.is_moderator_with_perms(c.user, 'access')
|
||||
or c.user_is_admin)))):
|
||||
pane = ContributorList(
|
||||
editable=is_moderator_with_perms('access'))
|
||||
elif (location == 'stylesheet'
|
||||
and c.site.can_change_stylesheet(c.user)
|
||||
and not g.css_killswitch):
|
||||
|
||||
@@ -256,16 +256,17 @@ class Reddit(Templated):
|
||||
css_class="moderator-mail"))
|
||||
|
||||
if is_single_subreddit:
|
||||
buttons.append(NamedButton("moderators",
|
||||
css_class="reddit-moderators"))
|
||||
if c.site.is_moderator_with_perms(c.user, 'access'):
|
||||
buttons.append(NamedButton("moderators",
|
||||
css_class="reddit-moderators"))
|
||||
|
||||
if c.site.type != "public":
|
||||
buttons.append(NamedButton("contributors",
|
||||
css_class="reddit-contributors"))
|
||||
else:
|
||||
buttons.append(NavButton(menu.contributors,
|
||||
"contributors",
|
||||
css_class="reddit-contributors"))
|
||||
if c.site.type != "public":
|
||||
buttons.append(NamedButton("contributors",
|
||||
css_class="reddit-contributors"))
|
||||
else:
|
||||
buttons.append(NavButton(menu.contributors,
|
||||
"contributors",
|
||||
css_class="reddit-contributors"))
|
||||
|
||||
buttons.append(NamedButton("traffic", css_class="reddit-traffic"))
|
||||
|
||||
@@ -275,7 +276,8 @@ class Reddit(Templated):
|
||||
NamedButton("spam", css_class="reddit-spam")]
|
||||
|
||||
if is_single_subreddit:
|
||||
buttons.append(NamedButton("banned", css_class="reddit-ban"))
|
||||
if c.site.is_moderator_with_perms(c.user, 'access'):
|
||||
buttons.append(NamedButton("banned", css_class="reddit-ban"))
|
||||
if c.site.is_moderator_with_perms(c.user, 'flair'):
|
||||
buttons.append(NamedButton("flair", css_class="reddit-flair"))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user