Skip to content

Commit 82df63b

Browse files
committed
Fixed * problem, added get command and get level for permissions
1 parent 41ce2ea commit 82df63b

File tree

1 file changed

+89
-64
lines changed

1 file changed

+89
-64
lines changed

cogs/utility.py

Lines changed: 89 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -883,7 +883,7 @@ async def add_perms(self, ctx):
883883

884884
@add_perms.command(name='command')
885885
@checks.has_permissions(PermissionLevel.OWNER)
886-
async def add_perms_command(self, ctx, *, command: str, user_or_role: Union[User, str]):
886+
async def add_perms_command(self, ctx, command: str, user_or_role: Union[User, str]):
887887
"""Add a user, role, or everyone permission to use a command."""
888888
if command not in self.bot.all_commands:
889889
embed = Embed(
@@ -912,7 +912,7 @@ async def add_perms_command(self, ctx, *, command: str, user_or_role: Union[User
912912

913913
@add_perms.command(name='level', aliases=['group'])
914914
@checks.has_permissions(PermissionLevel.OWNER)
915-
async def add_perms_level(self, ctx, *, level: str, user_or_role: Union[User, str]):
915+
async def add_perms_level(self, ctx, level: str, user_or_role: Union[User, str]):
916916
"""Add a user, role, or everyone permission to use commands of a permission level."""
917917
if level.upper() not in PermissionLevel._member_names_:
918918
embed = Embed(
@@ -949,7 +949,7 @@ async def remove_perms(self, ctx):
949949

950950
@remove_perms.command(name='command')
951951
@checks.has_permissions(PermissionLevel.OWNER)
952-
async def remove_perms_command(self, ctx, *, command: str, user_or_role: Union[User, str]):
952+
async def remove_perms_command(self, ctx, command: str, user_or_role: Union[User, str]):
953953
"""Remove a user, role, or everyone permission to use a command."""
954954
if command not in self.bot.all_commands:
955955
embed = Embed(
@@ -978,7 +978,7 @@ async def remove_perms_command(self, ctx, *, command: str, user_or_role: Union[U
978978

979979
@remove_perms.command(name='level', aliases=['group'])
980980
@checks.has_permissions(PermissionLevel.OWNER)
981-
async def remove_perms_level(self, ctx, *, level: str, user_or_role: Union[User, str]):
981+
async def remove_perms_level(self, ctx, level: str, user_or_role: Union[User, str]):
982982
"""Remove a user, role, or everyone permission to use commands of a permission level."""
983983
if level.upper() not in PermissionLevel._member_names_:
984984
embed = Embed(
@@ -1014,75 +1014,100 @@ async def get_perms(self, ctx):
10141014

10151015
@get_perms.command(name='command')
10161016
@checks.has_permissions(PermissionLevel.OWNER)
1017-
async def get_perms_command(self, ctx, *, command: str):
1017+
async def get_perms_command(self, ctx, *, command: str = None):
10181018
"""View the currently-set permissions for a command."""
1019-
if command not in self.bot.all_commands:
1020-
embed = Embed(
1021-
title='Error',
1022-
color=Color.red(),
1023-
description='The command you are attempting to point '
1024-
f'to does not exist: `{command}`.'
1025-
)
1026-
return await ctx.send(embed=embed)
1027-
permissions = self.bot.config.command_permissions.get(self.bot.all_commands[command].name)
1028-
if permissions is None or not permissions:
1029-
embed = Embed(
1030-
title=f'Permission entries for command `{command}`:',
1031-
description='No permission entries found.'
1032-
)
1033-
else:
1034-
values = []
1035-
for perm in permissions:
1036-
if perm == -1:
1037-
values.insert(0, '**everyone**')
1038-
else:
1039-
user = self.bot.get_user(perm)
1040-
if user is not None:
1041-
values.append(user.name)
1019+
1020+
def get_command(cmd):
1021+
permissions = self.bot.config.command_permissions.get(cmd.name)
1022+
if permissions is None or not permissions:
1023+
embed = Embed(
1024+
title=f'Permission entries for command `{cmd.name}`:',
1025+
description='No permission entries found.'
1026+
)
1027+
else:
1028+
values = []
1029+
for perm in permissions:
1030+
if perm == -1:
1031+
values.insert(0, '**everyone**')
10421032
else:
1043-
values.append(str(perm))
1033+
user = self.bot.get_user(perm)
1034+
if user is not None:
1035+
values.append(user.name)
1036+
else:
1037+
values.append(str(perm))
10441038

1045-
embed = Embed(
1046-
title=f'Permission entries for command `{command}`:',
1047-
description=', '.join(values)
1048-
)
1049-
return await ctx.send(embed=embed)
1039+
embed = Embed(
1040+
title=f'Permission entries for command `{cmd.name}`:',
1041+
description=', '.join(values)
1042+
)
1043+
return embed
1044+
1045+
embeds = []
1046+
if command is not None:
1047+
if command not in self.bot.all_commands:
1048+
embed = Embed(
1049+
title='Error',
1050+
color=Color.red(),
1051+
description='The command you are attempting to point '
1052+
f'to does not exist: `{command}`.'
1053+
)
1054+
return await ctx.send(embed=embed)
1055+
embeds.append(get_command(self.bot.all_commands[command]))
1056+
else:
1057+
for cmd in self.bot.commands:
1058+
embeds.append(get_command(cmd))
1059+
1060+
p_session = PaginatorSession(ctx, *embeds)
1061+
return await p_session.run()
10501062

10511063
@get_perms.command(name='level', aliases=['group'])
10521064
@checks.has_permissions(PermissionLevel.OWNER)
1053-
async def get_perms_level(self, ctx, *, level: str):
1065+
async def get_perms_level(self, ctx, *, level: str = None):
10541066
"""View the currently-set permissions for commands of a permission level."""
1055-
if level.upper() not in PermissionLevel._member_names_:
1056-
embed = Embed(
1057-
title='Error',
1058-
color=Color.red(),
1059-
description='The permission level you are attempting to point '
1060-
f'to does not exist: `{level}`.'
1061-
)
1062-
return await ctx.send(embed=embed)
1063-
permissions = self.bot.config.level_permissions.get(PermissionLevel[level.upper()].name)
1064-
if permissions is None or not permissions:
1065-
embed = Embed(
1066-
title=f'Permission entries for permission level `{level}`:',
1067-
description='No permission entries found.'
1068-
)
1069-
else:
1070-
values = []
1071-
for perm in permissions:
1072-
if perm == -1:
1073-
values.insert(0, '**everyone**')
1074-
else:
1075-
user = self.bot.get_user(perm)
1076-
if user is not None:
1077-
values.append(user.name)
1067+
1068+
def get_level(perm_level):
1069+
permissions = self.bot.config.level_permissions.get(perm_level.name)
1070+
if permissions is None or not permissions:
1071+
embed = Embed(
1072+
title='Permission entries for permission '
1073+
f'level `{perm_level.name}`:',
1074+
description='No permission entries found.'
1075+
)
1076+
else:
1077+
values = []
1078+
for perm in permissions:
1079+
if perm == -1:
1080+
values.insert(0, '**everyone**')
10781081
else:
1079-
values.append(str(perm))
1082+
user = self.bot.get_user(perm)
1083+
if user is not None:
1084+
values.append(user.name)
1085+
else:
1086+
values.append(str(perm))
10801087

1081-
embed = Embed(
1082-
title=f'Permission entries for permission level `{level}`:',
1083-
description=', '.join(values)
1084-
)
1085-
return await ctx.send(embed=embed)
1088+
embed = Embed(
1089+
title=f'Permission entries for permission level `{perm_level.name}`:',
1090+
description=', '.join(values)
1091+
)
1092+
return embed
1093+
1094+
embeds = []
1095+
if level is not None:
1096+
if level.upper() not in PermissionLevel._member_names_:
1097+
embed = Embed(
1098+
title='Error',
1099+
color=Color.red(),
1100+
description='The permission level you are attempting to point '
1101+
f'to does not exist: `{level}`.'
1102+
)
1103+
return await ctx.send(embed=embed)
1104+
embeds.append(get_level(PermissionLevel[level.upper()].name))
1105+
else:
1106+
for perm_level in PermissionLevel:
1107+
embeds.append(get_level(perm_level))
1108+
1109+
p_session = PaginatorSession(ctx, *embeds)
1110+
return await p_session.run()
10861111

10871112
@commands.command(hidden=True, name='eval')
10881113
@checks.has_permissions(PermissionLevel.OWNER)

0 commit comments

Comments
 (0)