mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 03:08:55 -05:00
[V3 Checks] Respect administrator and guildowner permissions (#1711)
* respect admin and guildowner (implicitly) in checks for permissions * this needed it too
This commit is contained in:
parent
ccbaa926ce
commit
928be5717f
@ -19,7 +19,9 @@ def mod_or_voice_permissions(**perms):
|
||||
|
||||
for vc in guild.voice_channels:
|
||||
resolved = vc.permissions_for(author)
|
||||
good = all(getattr(resolved, name, None) == value for name, value in perms.items())
|
||||
good = resolved.administrator or all(
|
||||
getattr(resolved, name, None) == value for name, value in perms.items()
|
||||
)
|
||||
if not good:
|
||||
return False
|
||||
else:
|
||||
@ -40,7 +42,9 @@ def admin_or_voice_permissions(**perms):
|
||||
return True
|
||||
for vc in guild.voice_channels:
|
||||
resolved = vc.permissions_for(author)
|
||||
good = all(getattr(resolved, name, None) == value for name, value in perms.items())
|
||||
good = resolved.administrator or all(
|
||||
getattr(resolved, name, None) == value for name, value in perms.items()
|
||||
)
|
||||
if not good:
|
||||
return False
|
||||
else:
|
||||
@ -55,7 +59,9 @@ def bot_has_voice_permissions(**perms):
|
||||
guild = ctx.guild
|
||||
for vc in guild.voice_channels:
|
||||
resolved = vc.permissions_for(guild.me)
|
||||
good = all(getattr(resolved, name, None) == value for name, value in perms.items())
|
||||
good = resolved.administrator or all(
|
||||
getattr(resolved, name, None) == value for name, value in perms.items()
|
||||
)
|
||||
if not good:
|
||||
return False
|
||||
else:
|
||||
|
||||
@ -31,7 +31,9 @@ async def check_permissions(ctx, perms):
|
||||
return False
|
||||
resolved = ctx.channel.permissions_for(ctx.author)
|
||||
|
||||
return all(getattr(resolved, name, None) == value for name, value in perms.items())
|
||||
return resolved.administrator or all(
|
||||
getattr(resolved, name, None) == value for name, value in perms.items()
|
||||
)
|
||||
|
||||
|
||||
async def is_mod_or_superior(ctx):
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user