Example #1
0
 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})
Example #2
0
 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
     })
Example #4
0
 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': '请重新登录!'})
Example #5
0
 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'])
Example #6
0
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
Example #7
0
 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)})
Example #11
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
         })
     })
Example #12
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': '请输入用户名/手机/邮箱'})
     # 查询数据
     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
         })
     })
Example #13
0
 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': '删除失败!'})
Example #14
0
 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': '添加失败!'})
Example #15
0
 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': '请重新登录!'})
Example #16
0
 def __init__(self):
     AdminToken().urlVerify('SysRole')
Example #17
0
 def __init__(self):
     AdminToken().urlVerify('/')
Example #18
0
 def __init__(self):
   self.tokenData = AdminToken().urlVerify('SysUser')
Example #19
0
 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