mirror of
https://github.com/solero/houdini.git
synced 2024-11-13 22:28:21 +00:00
31 lines
1.0 KiB
Python
31 lines
1.0 KiB
Python
from houdini.handlers import check
|
|
|
|
|
|
def check_permission(p, permission_name, check_above=True):
|
|
def check_permission_recursive(permissions, permission):
|
|
if permission in permissions:
|
|
return p.server.permissions[permission].enabled
|
|
if '.' in permission and check_above:
|
|
return check_permission_recursive(permissions, '.'.join(permission.split('.')[:-1]))
|
|
return False
|
|
|
|
return check_permission_recursive(p.permissions, permission_name)
|
|
|
|
|
|
def has(permission_name, check_above=True):
|
|
def has_permission(_, p):
|
|
return check_permission(p, permission_name, check_above)
|
|
return check(has_permission)
|
|
|
|
|
|
def has_or_moderator(permission_name, check_above=True):
|
|
def or_moderator(_, p):
|
|
return p.moderator or check_permission(p, permission_name, check_above)
|
|
return check(or_moderator)
|
|
|
|
|
|
def has_or_mascot(permission_name, check_above=True):
|
|
def or_mascot(_, p):
|
|
return p.character or check_permission(p, permission_name, check_above)
|
|
return check(or_mascot)
|