#coding: utf-8 # +------------------------------------------------------------------- # | 宝塔Linux面板 # +------------------------------------------------------------------- # | Copyright (c) 2015-2017 宝塔软件(http://bt.cn) All rights reserved. # +------------------------------------------------------------------- # | Author: 阿良 <287962566@qq.com> # +------------------------------------------------------------------- # # ┏┓ ┏┓ # ┏┛┻━━━━━━┛┻┓ # ┃ ☃ ┃ # ┃ ┳┛ ┗┳ ┃ # ┃ ┻ ┃ # ┗━┓ ┏━┛ # ┃ ┗━━━┓ # ┃ 神兽保佑 ┣┓ # ┃ 永无BUG! ┏┛ # ┗┓┓┏━┳┓┏━━━┛ # ┃┫┫ ┃┫┫ # ┗┻┛ ┗┻┛ # #+------------------------------ #| RESTful API控制器 #+------------------------------ import public,os from json import loads,dumps class panelApi: tokenFile = 'data/token.json' #获取Token def GetToken(self,get): if not os.path.exists(self.tokenFile): return public.returnMsg(False,'NOT_TURNON_API') if os.path.exists(self.tokenFile): self.CreateToken(get); token = loads(public.readFile(self.tokenFile)) return token; #设置Token def SetToken(self,get): if not os.path.exists(self.tokenFile): return public.returnMsg(False,'NOT_TURNON_API') token = loads(public.readFile(self.tokenFile)) #设置AK/SK if hasattr(get,'access_key'): token['access_key'] = get.access_key token['secret_key'] = get.secret_key #设置权限 if hasattr(get,'rule'): token['rule'] = get.rule.split(',') #设置IP白名单 if hasattr(get,'address'): token['address'] = get.address.split(',') public.writeFile(self.tokenFile,dumps(token)) public.WriteLog('API','EDIT_API'); return public.returnMsg(True,'SET_SUCCESS') #初始化API接口 def CreateToken(self,get): token = {} token['access_key'] = public.GetRandomString(24) token['secret_key'] = public.GetRandomString(48) token['rule'] = [] token['address'] = [] token['status'] = False public.writeFile(self.tokenFile,dumps(token)) public.WriteLog('API','TURNON_API') return public.returnMsg(True,'INIT_API') #设置API接口状态 def SetTokenStatus(self,get): if not os.path.exists(self.tokenFile): return public.returnMsg(False,'NOT_TURNON_API') token = loads(public.readFile(self.tokenFile)) if token['status']: token['status'] = False public.WriteLog('API','SET_API_STATUS',"关闭"); else: token['status'] = True public.WriteLog('API','SET_API_STATUS',"开启"); public.writeFile(self.tokenFile,dumps(token)) return public.returnMsg(True,'SET_SUCCESS')