mirror of
https://github.com/reddit-archive/reddit.git
synced 2026-02-12 15:35:14 -05:00
Add VSponsorAdminOrAdminSecret validator.
This commit is contained in:
@@ -779,14 +779,18 @@ class VAdmin(Validator):
|
||||
if not c.user_is_admin:
|
||||
abort(404, "page not found")
|
||||
|
||||
class VAdminOrAdminSecret(VAdmin):
|
||||
def run(self, secret):
|
||||
'''If validation succeeds, return True if the secret was used,
|
||||
False otherwise'''
|
||||
if secret and constant_time_compare(secret, g.ADMINSECRET):
|
||||
return True
|
||||
super(VAdminOrAdminSecret, self).run()
|
||||
return False
|
||||
def make_or_admin_secret_cls(base_cls):
|
||||
class VOrAdminSecret(base_cls):
|
||||
def run(self, secret=None):
|
||||
'''If validation succeeds, return True if the secret was used,
|
||||
False otherwise'''
|
||||
if secret and constant_time_compare(secret, g.ADMINSECRET):
|
||||
return True
|
||||
super(VOrAdminSecret, self).run()
|
||||
return False
|
||||
return VOrAdminSecret
|
||||
|
||||
VAdminOrAdminSecret = make_or_admin_secret_cls(VAdmin)
|
||||
|
||||
class VVerifiedUser(VUser):
|
||||
def run(self):
|
||||
@@ -813,6 +817,8 @@ class VSponsorAdmin(VVerifiedUser):
|
||||
return
|
||||
abort(403, 'forbidden')
|
||||
|
||||
VSponsorAdminOrAdminSecret = make_or_admin_secret_cls(VSponsorAdmin)
|
||||
|
||||
class VSponsor(VVerifiedUser):
|
||||
"""
|
||||
Not intended to be used as a check for c.user_is_sponsor, but
|
||||
|
||||
Reference in New Issue
Block a user