diff options
Diffstat (limited to 'ATRI')
| -rw-r--r-- | ATRI/permission.py | 23 | 
1 files changed, 18 insertions, 5 deletions
| diff --git a/ATRI/permission.py b/ATRI/permission.py index f5c7e1e..9c05c23 100644 --- a/ATRI/permission.py +++ b/ATRI/permission.py @@ -14,7 +14,7 @@ MASTER_FILE = FileDealer(MASTER_FILE_PATH)  MASTER_LIST = set() -def create_master_file(): +def __create_master_file():      if not MASTER_FILE_PATH.is_file():          data = dict()          for i in conf.BotConfig.superusers: @@ -24,15 +24,15 @@ def create_master_file():              w.write(json.dumps(data)) -def init_permission(): +def __init_permission():      global MASTER_LIST -    create_master_file() +    __create_master_file()      data = MASTER_FILE.json()      MASTER_LIST = set.union(set(data), conf.BotConfig.superusers)  def is_master(bot: Bot, event: Event) -> bool: -    init_permission() +    __init_permission()      try:          user_id = event.get_user_id()      except Exception: @@ -41,6 +41,19 @@ def is_master(bot: Bot, event: Event) -> bool:      return user_id in MASTER_LIST +async def toggle_master(user_id: str): +    """ +    添加/移除主人 +    如存在即移除,如不存在即添加 +    """ +    data = MASTER_FILE.json() +    if user_id in data: +        data.pop(user_id) +    else: +        data[user_id] = {"is_conf": False} +    await MASTER_FILE.write_json(data) + +  class Permission(_Permission):      name = "UnknownPermission" @@ -83,6 +96,6 @@ class Admin:              return False -init_permission() +__init_permission()  MASTER = Permission(Master()).set_name("Master")  ADMIN = Permission(Admin()).set_name("Admin") | 
