Reuse same code for is_admin/is_owner
This commit is contained in:
parent
c13e3087d6
commit
66a8826eb1
@ -281,7 +281,18 @@ PING_IF_NUMS_ACCS = {}
|
|||||||
|
|
||||||
is_role = lambda plyr, rol: rol in ROLES and plyr in ROLES[rol]
|
is_role = lambda plyr, rol: rol in ROLES and plyr in ROLES[rol]
|
||||||
|
|
||||||
def is_admin(nick, cloak=None, acc=None):
|
def check_priv(priv):
|
||||||
|
assert priv in ("owner", "admin")
|
||||||
|
|
||||||
|
# Owners can do everything
|
||||||
|
hosts = set(botconfig.OWNERS)
|
||||||
|
accounts = set(botconfig.OWNERS_ACCOUNTS)
|
||||||
|
|
||||||
|
if priv == "admin":
|
||||||
|
hosts.update(botconfig.ADMINS)
|
||||||
|
accounts.update(botconfig.ADMINS_ACCOUNTS)
|
||||||
|
|
||||||
|
def do_check(nick, cloak=None, acc=None):
|
||||||
if nick in USERS.keys():
|
if nick in USERS.keys():
|
||||||
if not cloak:
|
if not cloak:
|
||||||
cloak = USERS[nick]["cloak"]
|
cloak = USERS[nick]["cloak"]
|
||||||
@ -289,35 +300,21 @@ def is_admin(nick, cloak=None, acc=None):
|
|||||||
acc = USERS[nick]["account"]
|
acc = USERS[nick]["account"]
|
||||||
|
|
||||||
if acc and acc != "*":
|
if acc and acc != "*":
|
||||||
for pattern in set(botconfig.OWNERS_ACCOUNTS + botconfig.ADMINS_ACCOUNTS):
|
for pattern in set(accounts):
|
||||||
if fnmatch.fnmatch(acc.lower(), pattern.lower()):
|
if fnmatch.fnmatch(acc.lower(), pattern.lower()):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if cloak:
|
if cloak:
|
||||||
for pattern in set(botconfig.OWNERS + botconfig.ADMINS):
|
for pattern in set(hosts):
|
||||||
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
||||||
return True
|
return True
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
def is_owner(nick, cloak=None, acc=None):
|
return do_check
|
||||||
if nick in USERS.keys():
|
|
||||||
if not cloak:
|
|
||||||
cloak = USERS[nick]["cloak"]
|
|
||||||
if not acc:
|
|
||||||
acc = USERS[nick]["account"]
|
|
||||||
|
|
||||||
if acc and acc != "*":
|
is_admin = check_priv("admin")
|
||||||
for pattern in botconfig.OWNERS_ACCOUNTS:
|
is_owner = check_priv("owner")
|
||||||
if fnmatch.fnmatch(acc.lower(), pattern.lower()):
|
|
||||||
return True
|
|
||||||
|
|
||||||
if cloak:
|
|
||||||
for pattern in botconfig.OWNERS:
|
|
||||||
if fnmatch.fnmatch(cloak.lower(), pattern.lower()):
|
|
||||||
return True
|
|
||||||
|
|
||||||
return False
|
|
||||||
|
|
||||||
def plural(role):
|
def plural(role):
|
||||||
bits = role.split()
|
bits = role.split()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user