mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-06 11:18:54 -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:
|
for vc in guild.voice_channels:
|
||||||
resolved = vc.permissions_for(author)
|
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:
|
if not good:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
@ -40,7 +42,9 @@ def admin_or_voice_permissions(**perms):
|
|||||||
return True
|
return True
|
||||||
for vc in guild.voice_channels:
|
for vc in guild.voice_channels:
|
||||||
resolved = vc.permissions_for(author)
|
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:
|
if not good:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
@ -55,7 +59,9 @@ def bot_has_voice_permissions(**perms):
|
|||||||
guild = ctx.guild
|
guild = ctx.guild
|
||||||
for vc in guild.voice_channels:
|
for vc in guild.voice_channels:
|
||||||
resolved = vc.permissions_for(guild.me)
|
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:
|
if not good:
|
||||||
return False
|
return False
|
||||||
else:
|
else:
|
||||||
|
|||||||
@ -31,7 +31,9 @@ async def check_permissions(ctx, perms):
|
|||||||
return False
|
return False
|
||||||
resolved = ctx.channel.permissions_for(ctx.author)
|
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):
|
async def is_mod_or_superior(ctx):
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user