From 4b0d2a104bc024c1c3618f835d13480b5738bae5 Mon Sep 17 00:00:00 2001 From: HibiKier <45528451+HibiKier@users.noreply.github.com> Date: Sun, 3 Oct 2021 15:34:53 +0800 Subject: [PATCH] Add files via upload --- admin_manager.py | 51 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 admin_manager.py diff --git a/admin_manager.py b/admin_manager.py new file mode 100644 index 00000000..c050ad16 --- /dev/null +++ b/admin_manager.py @@ -0,0 +1,51 @@ +from typing import Optional, Dict +from .data_class import StaticData +from utils.utils import FreqLimiter +from services.log import logger +from pathlib import Path + + +class AdminManager(StaticData): + """ + 管理员命令 管理器 + """ + + def __init__(self): + super().__init__(None) + + def add_admin_command(self, plugin: str, level: int): + """ + 添加一个管理员命令 + :param plugin: 模块名 + :param level: 权限等级 + """ + self._data[plugin] = level + + def remove_admin_command(self, plugin: str): + """ + 删除一个管理员命令 + :param plugin: 模块名 + """ + if plugin in self._data.keys(): + del self._data[plugin] + + def check(self, plugin: str, level: int) -> bool: + """ + 检查是否满足权限 + :param plugin: 模块名 + :param level: 权限等级 + """ + if plugin in self._data.keys(): + return level >= self._data[plugin] + return True + + def get_plugin_level(self, plugin: str) -> int: + """ + 获取插件等级 + :param plugin: 模块名 + """ + if plugin in self._data.keys(): + return self._data[plugin] + return 0 + +