diff options
author | Kyomotoi <[email protected]> | 2022-10-17 23:42:18 +0800 |
---|---|---|
committer | Kyomotoi <[email protected]> | 2022-10-17 23:42:18 +0800 |
commit | dc2eae9d3c3e03fdc36a422a1d75d244cf607286 (patch) | |
tree | 2eb5d2d5061d22783edd999dbc17d7e2d5165b97 | |
parent | 7294539561d38f0202d6d5fde195551534f28cd6 (diff) | |
download | ATRI-dc2eae9d3c3e03fdc36a422a1d75d244cf607286.tar.gz ATRI-dc2eae9d3c3e03fdc36a422a1d75d244cf607286.tar.bz2 ATRI-dc2eae9d3c3e03fdc36a422a1d75d244cf607286.zip |
✨ 整合权限
-rw-r--r-- | ATRI/permission.py | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/ATRI/permission.py b/ATRI/permission.py new file mode 100644 index 0000000..1bd2e84 --- /dev/null +++ b/ATRI/permission.py @@ -0,0 +1,33 @@ +import json + +from nonebot.adapters import Bot, Event +from nonebot.permission import SUPERUSER, Permission +from nonebot.adapters.onebot.v11 import GROUP_OWNER, GROUP_ADMIN as _GROUP_ADMIN + +from ATRI.configs.config import CONFIG_PATH + + +MASTER_FILE_PATH = CONFIG_PATH / "master.json" +if not MASTER_FILE_PATH.is_file(): + with open(MASTER_FILE_PATH, "w") as w: + w.write(json.dumps(list())) + + +class MasterList: + """检查当前事件是否属于主人""" + + __slots__ = () + + async def __call__(self, bot: Bot, event: Event) -> bool: + try: + user_id = event.get_user_id() + except Exception: + return False + + data = json.loads(MASTER_FILE_PATH.read_bytes()) + return True if user_id in data else False + + +MASTER = SUPERUSER | Permission(MasterList()) +GROUP_ADMIN = GROUP_OWNER | _GROUP_ADMIN +ADMIN = MASTER | GROUP_ADMIN |