コード例 #1
0
ファイル: SysuserController.py プロジェクト: heartshare/base
 def edit(self):
   # 参数
   req = self.request()
   data = Inc.json_decode(req.get('data'))
   if not data or type(data)!=dict or not data.get('tel') :
     return self.getJSON({'code':4000,'msg':'参数错误!'})
   uid = req.get('uid').strip()
   tel = data['tel'].strip()
   passwd = Inc.md5(data['passwd']) if data['passwd']!='' else ''
   # 验证手机
   res = Safety.isRight('tel',tel)
   if not Safety.isRight('tel',tel) :
     return self.getJSON({'code':4000,'msg':'手机号码有误!'})
   # 是否存在
   res = User().findFirst({'where':'tel=:tel:','bind':{'tel':tel}})
   if res :
     if passwd != '' :
       params = {'data': {'password':passwd}, 'where':'id=:uid:', 'bind':{'uid':uid}}
       if User().update(params) : return self.getJSON({'code':0,'msg':'成功'})
       else : return self.getJSON({'code':5000,'msg':'更新密码失败!'})
     else :
       return self.getJSON({'code':4000,'msg':'密码为6-16位字符!'})
   # 修改手机
   uData = {'tel':tel}
   if passwd != '' : uData['password']=passwd
   params = {'data': uData, 'where':'id=:uid:', 'bind':{'uid':uid}}
   if User().update(params) :
     return self.getJSON({'code':0,'msg':'成功'})
   else :
     return self.getJSON({'code':5000,'msg':'编辑失败!'})
コード例 #2
0
 def edit(self):
   req = self.request()
   passwd = req.get('passwd')
   passwd1 = req.get('passwd1')
   # 验证
   if passwd==passwd1 :
     return self.getJSON({'code':4000,'msg':'不能与原密码相同!'})
   if not Safety.isRight('passwd',passwd) or not Safety.isRight('passwd',passwd1) :
     return self.getJSON({'code':4000,'msg':'密码格式错误!'})
   # 用户信息
   m1 = User()
   m1.where('id=%s AND password="******"'%(self.tokenData['uid'],Inc.md5(passwd)))
   m1.columns('id')
   info = m1.findFirst()
   # 是否存在
   if len(info)==0 :
     return self.getJSON({'code':4000,'msg':'当前密码错误!'})
   # 保存
   m2 = User()
   m2.password = Inc.md5(passwd1)
   m2.where('id='+str(self.tokenData['uid']))
   if m2.update() :
     return self.getJSON({'code':0,'msg':'成功'})
   else :
     return self.getJSON({'code':5000,'msg':'修改失败!'})
コード例 #3
0
ファイル: SysuserController.py プロジェクト: heartshare/base
 def add(self):
   # 参数
   req = self.request()
   data = Inc.json_decode(req.get('data'))
   if not data or type(data)!=dict or not data.get('tel') :
     return self.getJSON({'code':4000,'msg':'参数错误!'})
   tel = data['tel'].strip()
   passwd = Inc.md5(data['passwd']) if data['passwd']!='' else Inc.md5('123456')
   # 验证手机
   res = Safety.isRight('tel',tel)
   if not Safety.isRight('tel',tel) :
     return self.getJSON({'code':4000,'msg':'手机号码有误!'})
   # 是否存在
   res = User().findFirst({'where':'tel=:tel:','bind':{'tel':tel}})
   if res : return self.getJSON({'code':4000,'msg':'该用户已存在!'})
   # 保存
   params = {
     'id': Data.getId(),
     'tel': tel,
     'password': passwd,
     'rtime': Inc.date('%Y%m%d%H%M%S'),
   }
   # 结果
   if User().insert(params) == 0 :
     return self.getJSON({'code':0,'msg':'成功'})
   else :
     return self.getJSON({'code':5000,'msg':'添加失败!'})
コード例 #4
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
         })
     })
コード例 #5
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
         })
     })
コード例 #6
0
 def create(self,data) :
   data['l_time'] = Inc.date('%Y-%m-%d %H:%M:%S')
   token = Safety.encode(data)
   # 缓存
   name = Env.admin_token_prefix+str(data['uid'])
   Redis.run().setex(name,Env.admin_token_time,'1')
   return token
コード例 #7
0
 def socket(token) :
   # 验证Token
   res = Safety.decode(token)
   if res==None : return {'state':False,'msg':'Token验证失败!'}
   name = Env.admin_token_prefix+str(res['uid'])
   # 是否超时
   time = Redis.run().ttl(name)
   if time<=0 : return {'state':False,'msg':'Token已超时!'}
   res['n_time'] = time
   return {'state':True,'data':res}
コード例 #8
0
 def verify(self) :
   # 获取Token
   data = None
   if request.method=='POST': data=request.form
   elif request.method=='GET': data=request.args
   token = data.get('token')
   # 验证Token
   res = Safety.decode(token)
   if res==None : self.error('Token验证失败!')
   name = Env.admin_token_prefix+str(res['uid'])
   # 是否超时
   time = Redis.run().ttl(name)
   if time<=0 : self.error('Token已超时!')
   res['n_time'] = time
   # 是否续期
   if Env.admin_token_auto : Redis.run().setex(name,Env.admin_token_time,'1')
   return res
コード例 #9
0
 def setAction(self, val):
     if not Safety.test(r'^[a-zA-Z]{2,16}$', val):
         self.error('命名为2~16位英文!')
     self.action = val
コード例 #10
0
 def setUrl(self,val) :
   if val!='' and not Safety.test(r'^[a-zA-Z]{2,24}$',val) :
     self.error('控制器为2~24位英文!')
   self.action = val
コード例 #11
0
ファイル: User.py プロジェクト: MohamedAhmedAliGpaly/base
 def setEmail(self, val):
     if val != '':
         if not Safety.isRight('email', val): self.error('邮箱有误!')
     self.email = val
コード例 #12
0
ファイル: User.py プロジェクト: MohamedAhmedAliGpaly/base
 def setTel(self, val):
     if val != '':
         if not Safety.isRight('tel', val): self.error('手机号码有误!')
     self.tel = val
コード例 #13
0
ファイル: User.py プロジェクト: MohamedAhmedAliGpaly/base
 def setUname(self, val):
     if val != '':
         if not Safety.isRight('uname', val): self.error('用户名英文开头4~16位!')
     self.uname = val