Initial YakPanel commit
This commit is contained in:
97
class_v2/plugin_auth_v2.py
Normal file
97
class_v2/plugin_auth_v2.py
Normal file
@@ -0,0 +1,97 @@
|
||||
#coding: utf-8
|
||||
# +-------------------------------------------------------------------
|
||||
# | YakPanel
|
||||
# +-------------------------------------------------------------------
|
||||
# | Copyright (c) 2015-2099 YakPanel(www.yakpanel.com) All rights reserved.
|
||||
# +-------------------------------------------------------------------
|
||||
# | Author: hwliang <hwl@yakpanel.com>
|
||||
# +-------------------------------------------------------------------
|
||||
|
||||
#+--------------------------------------------------------------------
|
||||
#| 插件认证模块
|
||||
#+--------------------------------------------------------------------
|
||||
|
||||
|
||||
import public
|
||||
import PluginLoader
|
||||
|
||||
class Plugin:
|
||||
__plugin_name = None
|
||||
__is_php = False
|
||||
__dict__ = None
|
||||
__obj_dict = {}
|
||||
|
||||
|
||||
def __init__(self,init_plugin_name = None):
|
||||
'''
|
||||
@name 实例化插件对像
|
||||
@author hwliang<2021-06-15>
|
||||
@param init_plugin_name<string> 插件名称
|
||||
@return Plguin<object>
|
||||
'''
|
||||
if not init_plugin_name is False:
|
||||
if not init_plugin_name:
|
||||
raise ValueError('参数错误,plugin_name少需要一个有效参数')
|
||||
self.__plugin_name = init_plugin_name
|
||||
|
||||
def get_plugin_list(self,upgrade_force = False):
|
||||
'''
|
||||
@name 获取插件列表
|
||||
@author hwliang<2021-06-15>
|
||||
@param upgrade_force<bool> 是否强制重新获取列表
|
||||
@return dict
|
||||
'''
|
||||
force = 1 if upgrade_force else 0
|
||||
return PluginLoader.get_plugin_list(force)
|
||||
|
||||
|
||||
def exec_fun(self,get_args,def_name = None):
|
||||
'''
|
||||
@name 执行指定方法
|
||||
@author hwliang<2021-06-16>
|
||||
@param def_name<string> 方法名称
|
||||
@param get_args<dict_obj> POST/GET参数对像
|
||||
@return mixed
|
||||
'''
|
||||
if not def_name:
|
||||
def_name = get_args.get("s","")
|
||||
else:
|
||||
if not 's' in get_args:
|
||||
get_args.s = def_name
|
||||
|
||||
res = PluginLoader.plugin_run(self.__plugin_name,def_name,get_args)
|
||||
if isinstance(res,dict):
|
||||
if 'status' in res and res['status'] == False and 'msg' in res:
|
||||
if isinstance(res['msg'],str):
|
||||
if res['msg'].find('Traceback ') != -1:
|
||||
raise public.PanelError(res['msg'])
|
||||
return res
|
||||
|
||||
def get_fun(self,def_name):
|
||||
'''
|
||||
@name 获取函对像
|
||||
@author hwliang<2021-06-28>
|
||||
@param def_name<string> 函数名称
|
||||
@return func_object
|
||||
'''
|
||||
if def_name in self.__obj_dict.keys():
|
||||
return self.__obj_dict[def_name]
|
||||
get_args = public.dict_obj()
|
||||
get_args.plugin_get_object = 1
|
||||
return PluginLoader.plugin_run(self.__plugin_name,def_name,get_args)
|
||||
|
||||
|
||||
def isdef(self,def_name):
|
||||
'''
|
||||
@name 指定方法是否存在
|
||||
@author hwliang<2021-06-16>
|
||||
@param def_name<string> 方法名称
|
||||
@return bool
|
||||
'''
|
||||
if self.__is_php: return True
|
||||
self.__obj_dict[def_name] = self.get_fun(def_name)
|
||||
return True if self.__obj_dict[def_name] else False
|
||||
|
||||
def __dir__(self):
|
||||
return ''
|
||||
|
||||
Reference in New Issue
Block a user