def getAction(self): # 验证 self.tokenData = AdminToken().verify() # 参数 req = self.request() url = req.get('url') if url == '': return self.getJSON({'code': 4000, 'msg': '获取动作不能为空!'}) # 菜单ID m1 = SysMenu() m1.where('url=":url:"', {'url': url}) m1.columns('id') mid = m1.findFirst() if len(mid) == 0: return self.getJSON({ 'code': 4000, 'msg': '获取 ' + str(url) + ' 不存在!' }) # 全部动作 action = [] permAll = AdminToken().perm(self.tokenData['uid']) perm = permAll[str(mid['id'])] m2 = SysMenuAction() m2.columns('name,action,ico,perm') aMenus = m2.find() for val in aMenus: # 匹配权限值 if int(perm) & int(val['perm']) > 0: action += [{ 'name': val['name'], 'action': val['action'], 'ico': val['ico'] }] return self.getJSON({'code': 0, 'action': action})
def getMenus(self): # 全部菜单 self.menus = {} all = SysMenu().find({'columns':'id,fid,title,url,ico','order':'sort DESC,id'}) for val in all : fid = str(val['fid']) if fid in self.menus : self.menus[fid] += [val] else : self.menus[fid] = [val] # 全部权限 self.permAll = AdminToken().perm(self.tokenData['uid']) # 组合菜单 return self.getJSON({'code':0,'menus':self._getMenu(0)})
def list(self): # 验证 AdminToken().urlVerify('SysMenus') # 搜索 req = self.request() data = Inc.json_decode(req.get('data')) fid = data['fid'].strip() if 'fid' in data.keys() else '' title = data['title'].strip() if 'title' in data.keys() else '' url = data['url'].strip() if 'url' in data.keys() else '' where = 'fid LIKE "%:fid:%" AND title LIKE "%:title:%" AND url LIKE "%:url:%"' bind = {'fid': fid, 'title': title, 'url': url} # 查询 model = SysMenu() model.where(where, bind) model.order('sort DESC, fid') # 统计 total = model.count() # 分页 page = req.get('page') limit = req.get('limit') start = (int(page) - 1) * int(limit) model.limit(str(start) + ',' + limit) # 数据 list = model.find() # 状态 for val in list: val['ctime'] = str(val['ctime']) if val['ctime'] else '' val['utime'] = str(val['utime']) if val['utime'] else '' return self.getJSON({ 'code': 0, 'msg': '成功', 'list': list, 'total': total })
def token(self): request = self.request() uinfo = request.get('uinfo') res = AdminToken().verify() if res: if uinfo != '1': return self.getJSON({'code': 0, 'time': res['n_time']}) # 用户信息 uinfo = UserInfo().findFirst({ 'where': 'uid=%s' % (res['uid']), 'columns': 'nickname,position,name,img', }) uinfo['uname'] = res['uname'] uinfo['img'] = Env.base_url + uinfo['img'] if uinfo[ 'img'] != '' else '' return self.getJSON({ 'code': 0, 'msg': '成功', 'time': res['n_time'], 'uinfo': uinfo }) else: return self.getJSON({'code': 4000, 'msg': '请重新登录!'})
async def open(self, server, path): # 清理 uids = list(set(self.__fds.keys())) for k in uids: if self.__fds[k].closed: self.__fds.pop(k) # 参数 param = self.__getParam(path) token = param['token'] if 'token' in param.keys() else '' if not token: return await self.__errer(server, 'Socket参数错误!') # 类型 type = param['type'] if 'type' in param.keys() else '' if type == 'admin': res = AdminToken.socket(token) elif type == 'api': res = ApiToken.socket(token) else: return await self.__errer(server, 'Socket参数错误!') # 验证 if res['state'] or token == Env.key: # 用户ID if token == Env.key: self.__token = {'uid': self.__suid} self.__uid = str(self.__suid) else: self.__token = res['data'] self.__uid = str(self.__token['uid']) # 记录FD self.__fds[self.__uid] = server # 消息 async for msg in server: await Msg().router(self.__fds, server, msg, self.__token) else: return await self.__errer(server, res['msg'])
class SysmenusController(Base) : menus = {} tokenData = {} permAll = {} # 构造函数 def __init__(self): # 验证 self.tokenData = AdminToken().verify() # 获取[菜单] def getMenus(self): # 全部菜单 self.menus = {} all = SysMenu().find({'columns':'id,fid,title,url,ico','order':'sort DESC,id'}) for val in all : fid = str(val['fid']) if fid in self.menus : self.menus[fid] += [val] else : self.menus[fid] = [val] # 全部权限 self.permAll = AdminToken().perm(self.tokenData['uid']) # 组合菜单 return self.getJSON({'code':0,'menus':self._getMenu(0)}) # 递归菜单 def _getMenu(self,fid) : data = [] M = self.menus[str(fid)] if str(fid) in self.menus else [] for val in M : if str(val['id']) in self.permAll.keys() : val['children'] = self._getMenu(val['id']) data += [val] return data
def list(self): # 验证 AdminToken().urlVerify('SysMenusAction') # 搜索 req = self.request() data = Inc.json_decode(req.get('data')) name = data['name'].strip() if 'name' in data.keys() else '' action = data['action'].strip() if 'action' in data.keys() else '' where = 'name LIKE "%:name:%" AND action LIKE "%:action:%"' bind = {'name': name, 'action': action} # 查询 model = SysMenuAction() model.where(where, bind) # 统计 total = model.count() # 分页 page = req.get('page') limit = req.get('limit') start = (int(page) - 1) * int(limit) model.limit(str(start) + ',' + limit) # 数据 list = model.find() print(model.getSql()) # 返回 return self.getJSON({ 'code': 0, 'msg': '成功', 'list': list, 'total': total })
def edit(self): # 验证 AdminToken().urlVerify('SysMenus') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data or type(data) != dict: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) id = req.get('id') # 数据 model = SysMenu() model.fid = data['fid'] if 'fid' in data.keys() else '0' model.title = data['title'].strip() if 'title' in data.keys() else '' model.url = data['url'].strip() if 'url' in data.keys() else '' model.perm = data['perm'] if 'perm' in data.keys() else '0' model.ico = data['ico'].strip() if 'ico' in data.keys() else '' model.sort = data['sort'] if 'sort' in data.keys() else '0' model.remark = data['remark'].strip() if 'remark' in data.keys( ) else '' model.where('id=:id:', {'id': id}) # 结果 if model.update(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '编辑失败!'})
def getAction(self): req = self.request() url = req.get('url') # 是否为空 if url == '': return self.getJSON({'code': 4000, 'msg': '获取动作不能为空!'}) # 菜单ID mid = SysMenu().findFirst({ 'where': 'url="%s"' % (url), 'columns': 'id' }) if mid == None: return self.getJSON({'code': 4000, 'msg': '获取动作不存在!'}) # 全部动作 action = [] permAll = AdminToken().perm(self.tokenData['uid']) perm = permAll[str(mid['id'])] aMenus = SysMenuAction().find({'columns': 'name,action,ico,perm'}) for val in aMenus: # 匹配权限值 if int(perm) & int(val['perm']) > 0: action += [{ 'name': val['name'], 'action': val['action'], 'ico': val['ico'] }] return self.getJSON({'code': 0, 'action': action})
def getMenus(self): # 验证 self.tokenData = AdminToken().verify() # 全部菜单 self.menus = {} model = SysMenu() model.columns('id,fid,title,url,ico') model.order('sort DESC,id') all = model.find() for val in all: fid = str(val['fid']) if fid in self.menus: self.menus[fid] += [val] else: self.menus[fid] = [val] # 全部权限 self.permAll = AdminToken().perm(self.tokenData['uid']) # 组合菜单 return self.getJSON({'code': 0, 'menus': self._getMenu(0)})
def login(self): req = self.request() uname = req.get('uname') passwd = Inc.md5(req.get('passwd')) # 验证用户名 if Safety.isRight('uname', uname) and Safety.isRight( 'tel', uname) and Safety.isRight('email', uname): return self.getJSON({'code': 4000, 'msg': '请输入用户名/手机/邮箱'}) # 查询 model = User() model.table( 'user AS a LEFT JOIN user_info AS b ON a.id=b.uid LEFT JOIN user_perm AS c ON a.id=c.uid' ) model.columns( 'a.id, a.state, b.position, b.nickname, b.name, b.gender, b.img, c.state_admin' ) model.where( '(a.uname=":uname:" OR a.tel=":uname:" OR a.email=":uname:") AND a.password="******"', { 'uname': uname, 'passwd': passwd }) uData = model.findFirst() # 是否存在 if len(uData) == 0: return self.getJSON({'code': 4000, 'msg': '帐号或密码错误'}) # 是否禁用 if uData['state'] != '1': return self.getJSON({'code': 4000, 'msg': '该用户已被禁用'}) elif uData['state_admin'] != '1': return self.getJSON({'code': 4000, 'msg': '该用户不允许登录'}) # 登录时间 m = User() m.ltime = Inc.date('%Y%m%d%H%M%S') m.where('id=' + str(uData['id'])) m.update() # 返回 return self.getJSON({ 'code': 0, 'msg': '成功登录', 'uinfo': { 'uid': uData['id'], 'uname': uname, 'position': uData['position'], 'nickname': uData['nickname'], 'name': uData['name'], 'gender': uData['gender'], 'img': Env.base_url + uData['img'] if uData['img'] != '' else '', }, 'token': AdminToken().create({ 'uid': str(uData['id']), 'uname': uname }) })
def login(self): req = self.request() uname = req.get('uname') passwd = Inc.md5(req.get('passwd')) # 验证用户名 if Safety.isRight('uname', uname) and Safety.isRight( 'tel', uname) and Safety.isRight('email', uname): return self.getJSON({'code': 4000, 'msg': '请输入用户名/手机/邮箱'}) # 查询数据 uData = User().findFirst({ 'table': 'user as a LEFT JOIN user_info as b ON a.id=b.uid LEFT JOIN user_perm as c ON a.id=c.uid', 'columns': 'a.id, a.state, b.position, b.nickname, b.name, b.gender, b.img, c.state_admin', 'where': f'(a.uname="{uname}" OR a.tel="{uname}" OR a.email="{uname}") AND a.password="******"', }) # 是否存在 if uData == None: return self.getJSON({'code': 4000, 'msg': '帐号或密码错误'}) # 是否禁用 if uData['state'] != '1': return self.getJSON({'code': 4000, 'msg': '该用户已被禁用'}) elif uData['state_admin'] != '1': return self.getJSON({'code': 4000, 'msg': '该用户不允许登录'}) # 登录时间 User().update({ 'data': { 'ltime': Inc.date('%Y%m%d%H%M%S') }, 'where': 'id=' + str(uData['id']), }), # 返回 return self.getJSON({ 'code': 0, 'msg': '成功登录', 'uinfo': { 'uid': uData['id'], 'uname': uname, 'position': uData['position'], 'nickname': uData['nickname'], 'name': uData['name'], 'gender': uData['gender'], 'img': Env.base_url + uData['img'] if uData['img'] != '' else '', }, 'token': AdminToken().create({ 'uid': str(uData['id']), 'uname': uname }) })
def delete(self): # 验证 AdminToken().urlVerify('SysMenusAction') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) # ID ids = Inc.implode(',', data) model = SysMenuAction() model.where('id in(:ids:)', {'ids': ids}) # 结果 if model.delete(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '删除失败!'})
def add(self): # 验证 AdminToken().urlVerify('SysMenusAction') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data or type(data) != dict: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) # 数据 model = SysMenuAction() model.name = data['name'].strip() if 'name' in data.keys() else '' model.action = data['action'].strip() if 'action' in data.keys( ) else '' model.perm = data['perm'].strip() if 'perm' in data.keys() else '2' model.ico = data['ico'].strip() if 'ico' in data.keys() else '' # 结果 if model.create(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '添加失败!'})
def token(self): request = self.request() uinfo = request.get('uinfo') res = AdminToken().verify() if res: if uinfo != '1': return self.getJSON({'code': 0, 'time': res['n_time']}) # 用户信息 model = UserInfo() model.where('uid=' + str(res['uid'])) model.columns('nickname,position,name,img') uinfo = model.findFirst() uinfo['uname'] = res['uname'] uinfo['img'] = Env.base_url + uinfo['img'] if uinfo[ 'img'] != '' else '' # 返回 return self.getJSON({ 'code': 0, 'msg': '成功', 'time': res['n_time'], 'uinfo': uinfo }) else: return self.getJSON({'code': 4000, 'msg': '请重新登录!'})
def __init__(self): AdminToken().urlVerify('SysRole')
def __init__(self): AdminToken().urlVerify('/')
def __init__(self): self.tokenData = AdminToken().urlVerify('SysUser')
def __init__(self): # 验证 self.tokenData = AdminToken().verify()
def __init__(self): AdminToken().urlVerify('SysConfig')
def __init__(self): self.tokenData = AdminToken().urlVerify('UserPasswd')
def __init__(self): AdminToken().urlVerify('SysFileManage') # 文件根目录 Files.file_root = self.dirRoot if not os.path.exists(self.dirRoot): os.makedirs(self.dirRoot)
def __init__(self): self.tokenData = AdminToken().urlVerify('UserInfo')
class SysmenusController(Base): menus = {} tokenData = {} permAll = {} # 列表 def list(self): # 验证 AdminToken().urlVerify('SysMenus') # 搜索 req = self.request() data = Inc.json_decode(req.get('data')) fid = data['fid'].strip() if 'fid' in data.keys() else '' title = data['title'].strip() if 'title' in data.keys() else '' url = data['url'].strip() if 'url' in data.keys() else '' where = 'fid LIKE "%:fid:%" AND title LIKE "%:title:%" AND url LIKE "%:url:%"' bind = {'fid': fid, 'title': title, 'url': url} # 查询 model = SysMenu() model.where(where, bind) model.order('sort DESC, fid') # 统计 total = model.count() # 分页 page = req.get('page') limit = req.get('limit') start = (int(page) - 1) * int(limit) model.limit(str(start) + ',' + limit) # 数据 list = model.find() # 状态 for val in list: val['ctime'] = str(val['ctime']) if val['ctime'] else '' val['utime'] = str(val['utime']) if val['utime'] else '' return self.getJSON({ 'code': 0, 'msg': '成功', 'list': list, 'total': total }) # 添加 def add(self): # 验证 AdminToken().urlVerify('SysMenus') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data or type(data) != dict: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) # 数据 model = SysMenu() model.fid = data['fid'].strip() if 'fid' in data.keys() else '0' model.title = data['title'].strip() if 'title' in data.keys() else '' model.url = data['url'].strip() if 'url' in data.keys() else '' model.perm = data['perm'].strip() if 'perm' in data.keys() else '0' model.ico = data['ico'].strip() if 'ico' in data.keys() else '' model.sort = data['sort'].strip() if 'sort' in data.keys() else '0' model.remark = data['remark'].strip() if 'remark' in data.keys( ) else '' # 结果 if model.create(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '添加失败!'}) # 编辑 def edit(self): # 验证 AdminToken().urlVerify('SysMenus') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data or type(data) != dict: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) id = req.get('id') # 数据 model = SysMenu() model.fid = data['fid'] if 'fid' in data.keys() else '0' model.title = data['title'].strip() if 'title' in data.keys() else '' model.url = data['url'].strip() if 'url' in data.keys() else '' model.perm = data['perm'] if 'perm' in data.keys() else '0' model.ico = data['ico'].strip() if 'ico' in data.keys() else '' model.sort = data['sort'] if 'sort' in data.keys() else '0' model.remark = data['remark'].strip() if 'remark' in data.keys( ) else '' model.where('id=:id:', {'id': id}) # 结果 if model.update(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '编辑失败!'}) # 删除 def delete(self): # 验证 AdminToken().urlVerify('SysMenus') # 参数 req = self.request() data = Inc.json_decode(req.get('data')) if not data: return self.getJSON({'code': 4000, 'msg': '参数错误!'}) # ID ids = Inc.implode(',', data) model = SysMenu() model.where('id in(:ids:)', {'ids': ids}) # 结果 if model.delete(): return self.getJSON({'code': 0, 'msg': '成功'}) else: return self.getJSON({'code': 5000, 'msg': '删除失败!'}) # 获取[菜单] def getMenus(self): # 验证 self.tokenData = AdminToken().verify() # 全部菜单 self.menus = {} model = SysMenu() model.columns('id,fid,title,url,ico') model.order('sort DESC,id') all = model.find() for val in all: fid = str(val['fid']) if fid in self.menus: self.menus[fid] += [val] else: self.menus[fid] = [val] # 全部权限 self.permAll = AdminToken().perm(self.tokenData['uid']) # 组合菜单 return self.getJSON({'code': 0, 'menus': self._getMenu(0)}) # 递归菜单 def _getMenu(self, fid): data = [] M = self.menus[str(fid)] if str(fid) in self.menus else [] for val in M: if str(val['id']) in self.permAll.keys(): val['children'] = self._getMenu(val['id']) data += [val] return data