当前位置: 首页 > 面试题库 >

如何仅允许管理员执行命令

阎卓
2023-03-14
问题内容

我正在写以下命令

@bot.command(pass_context=True)
async def admins_only_command(ctx, *, args):
    '''do stuff

我怎样才能将此命令限制为仅管理员?我试着看,ctx.author.roles.role它说@everyone。我如何检查给定的用户是否是admin


问题答案:

有两种方法:通过使用的角色白名单
has_any_role

@bot.command(pass_context=True)
@commands.has_any_role("Big Cheese", "Medium Cheese")
async def admins_only_command(ctx, *, args):
    '''do stuff'''

或经许可使用
has_permissions

@bot.command(pass_context=True)
@commands.has_permissions(administrator=True)
async def admins_only_command(ctx, *, args):
    '''do stuff'''

这两个装饰器都是Checks,CommandError如果它们失败,将引发您的一些子类供您选择处理。



 类似资料:
  • 非常好的一天, 任何帮助都很感激。提前谢了。

  • 我想使用java中的参数执行一些管理命令。 这些命令是: 我怎么能从java驱动程序做到这一点? 以下代码不起作用:

  • 我正在尝试建立一个只有我可以编写的Firebase数据库。所以没有用户有权编写任何东西。但每个人都可以阅读它。 然而,我无法为它制定规则。我使用电子邮件/密码登录创建了一个管理员用户,我知道它的UID。假设我的UID是: 我尝试了这两种方法,但它们不允许我写入数据库。 . 那么,如何只允许一个具有特定UID的用户向数据库写入任何内容呢?

  • 根据企业需求选择允许/不允许员工修改自己在企业中的名字。 人员管理-人事管理-人员管理-员工个人资料权限管理-编辑-保存。

  • 我一直在捕捉非数字时遇到问题。 我试过了,但抓不住。如果我让它捕获非数字,但不让用户再次尝试输入。。。它完全停止了我的代码。 这是我的密码:

  • 管理组采用逐级授权模式,上级包含下级所有权限(应用管理、通讯录管理、API接口等),权限逐级为:企业创建人>系统管理组>下级管理组 由于每个管理组权限不同,一个管理员只能授权管理一个管理组(系统管理组、二级管理组、三级管理组、四级管理组等) 授权/变更系统管理员 企业创建人可将成员添加为系统管理组管理员,则该管理员具有所有应用和服务号的管理权限,具体操作如下: 1)企业创建人登录企业管理平台:ht