Code Monkey home page Code Monkey logo

nonebot-plugin-flexperm's Introduction

nonebot-plugin-flexperm

精细化的 NoneBot 权限管理插件。

提供对用户精确到人或群、对插件精确到指令或更细粒度的权限管理功能。

安装

  • 使用 nb-cli
nb plugin install nonebot-plugin-flexperm
  • 使用 poetry
poetry add nonebot-plugin-flexperm
  • 使用 pip
pip install nonebot-plugin-flexperm

依赖

目前只支持 OneBot V11 协议,之后可能会支持其他协议。

使用

本插件主要通过 NoneBot 的 require 机制向其他插件提供功能。本插件也提供了一组命令,用于直接管理权限配置。

from nonebot import require
require("nonebot_plugin_flexperm")
from nonebot_plugin_flexperm import register
P = register("my_plugin")

P是一个可调用对象,以权限名为参数调用即可得到相应的检查器。P的其他接口详见接口文档

from nonebot import on_command
cmd = on_command("my_command", permission=P("my_command"))

@cmd.handle()
async def _(bot, event):
    ...

这样,运行时只有具有my_plugin.my_command权限的用户或群才能使用该命令。

权限配置文件

权限配置文件使用 YAML 格式,详见权限配置文档。示例:

anyone:
  permissions:
    - my_plugin.help

group_admin:
  permissions:
    - my_plugin.my_command
    - another_plugin.*
    - -another_plugin.another_command

这个配置文件授予了所有用户my_plugin.help权限,同时授予了群管理员my_plugin.my_command权限和another_plugin下的所有子权限,但撤销another_plugin.another_command权限。

命令

权限配置文件可以在运行时修改,然后使用/flexperm.reload命令重新加载。

也可以通过命令编辑权限配置,详见命令文档

配置

本插件使用3个配置项,均为可选。如需修改,写入 NoneBot 项目环境文件.env.*即可。

  • flexperm_base: 权限配置文件所在目录,默认为permissions
  • flexperm_debug_check: 是否输出检查权限过程中的调试信息,默认为false。未启用 NoneBot 的调试模式时无效。
  • flexperm_export: 是否使用旧版本 NoneBot 形式的 export 导出接口,默认为true。对通常使用影响不大,设置为false可以干掉一个 DeprecationWarning 。

鸣谢

nonebot-plugin-flexperm's People

Contributors

rmuchan avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.