Ejemplo n.º 1
0
def change_password():
    '''更改密码'''
    validator = ChangePasswordValidator().nt_data
    UserDao.change_password(uid=g.user.id,
                            old_password=validator.old_password,
                            new_password=validator.new_password)
    return Success(error_code=1)
Ejemplo n.º 2
0
 def verify_by_wx_account(code, *args):
     ot = AccountToken(code)
     user_info = ot.get()
     unionid = user_info['unionid']
     user = User.query.filter_by(unionid=unionid).first()
     if not user:
         user = UserDao.register_by_wx_account(form=user_info)
     return {'uid': user.id, 'scope': user.auth_scope}
Ejemplo n.º 3
0
 def verify_by_wx_open(code, *args):
     # 微信开放平台(第三方)登录
     ot = OpenToken(code)
     user_info = ot.get()
     openid = user_info['openid']  # 用户唯一标识
     user = User.query.filter_by(openid=openid).first()
     if not user:
         user = UserDao.register_by_wx_open(form=user_info)
     return {'uid': user.id, 'scope': user.auth_scope}
Ejemplo n.º 4
0
 def verify_by_wx_mina(code, *args):
     ut = WxToken(code)
     wx_result = ut.get()  # wx_result = {session_key, expires_in, openid}
     openid = wx_result['openid']
     identity = Identity.get(identifier=openid, type=ClientTypeEnum.WX_MINA.value)
     # 如果不在数据库,则新建用户
     if not identity:
         user = UserDao.register_by_wx_mina(openid=openid)
     else:
         user = User.get(id=identity.user_id)
     return {'uid': user.id, 'scope': user.auth_scope}
Ejemplo n.º 5
0
def reset_password(uid):
    '''更改用户密码'''
    new_password = ResetPasswordValidator().nt_data.new_password
    UserDao.reset_password(uid=uid, password=new_password)
    return Success(error_code=1, msg='密码修改成功')
Ejemplo n.º 6
0
def delete_user(uid):
    '''删除用户'''
    UserDao.delete_user(uid)
    return Success(error_code=2)
Ejemplo n.º 7
0
def update_user(uid):
    '''更新用户分组'''
    group_id = UpdateAdminValidator().get_data('group_id')
    UserDao.change_group(uid, group_id)
    return Success(error_code=1)
Ejemplo n.º 8
0
def get_user_list():
    '''查询用户列表(分页)'''
    page, size = paginate()
    rv = UserDao.get_user_list(page, size)
    return Success(rv)
Ejemplo n.º 9
0
 def get_rel(self):
     user = UserDao.relation_test()
     logger.info('get_rel..........')
     return Success(user)
Ejemplo n.º 10
0
 def post_test(self):
     UserDao.create_user()
     return Success()
Ejemplo n.º 11
0
def delete_user():
    '''注销自身'''
    UserDao.delete_user(uid=g.user.id)
    return Success(error_code=2)
Ejemplo n.º 12
0
def update_user():
    '''更新自身'''
    form = UpdateUserValidator().nt_data
    UserDao.update_user(uid=g.user.id, form=form)
    return Success(error_code=1)
Ejemplo n.º 13
0
def create_user():
    '''用户注册'''
    form = CreateUserValidator().nt_data
    UserDao.create_user(form)
    return Success(error_code=1)
Ejemplo n.º 14
0
def set_avatar():
    '''更新用户头像'''
    validator = UpdateAvatarValidator().nt_data
    UserDao.set_avatar(id=g.user.id, avatar=validator.avatar)
    return Success(error_code=1, msg='更新头像成功')
Ejemplo n.º 15
0
class UserService(object):

#used
    def _md5(self,str):
        if str == None:
            return ''
        else:
            return hashlib.md5(str).hexdigest()

    def __init__(self):
        self.uda = UserDao()
        self.InvalidDateTime = datetime.datetime(1900,1,1,0,0,0)
        self.BadWords = ':;,\'"/\\*#!&^.%<>'

#used
    def check_user_identity(self,username,password):
        encpwd = self._md5(password)
        return self.uda.validate_user_encpwd(username,encpwd)

    def is_safe_username(self, username):
        ua = re.split('['+self.BadWords+']',username)
        if len(ua) > 1:
            return False
        else:
            return True

    def is_user_exist(self, username):
        rows = self.uda.get_user_info(username,field='FUID')
        if rows == None or len(rows) == 0:
            return False
        else:
            return True
        
    def register(self,boy,girl):
        encodeUtil = EncodeUtil()
        boyname = boy['username']
        girlname = girl['username']
        nowtime = datetime.datetime.now()
        boy['id'] = uuid.uuid5(uuid.NAMESPACE_DNS,uuid.uuid1().get_hex()).get_hex()
        boy['lover']    = girlname
        boy['time']    = nowtime
        boy['password'] = encodeUtil.md5hash(boy['password'])
        boy['birthday'] = self.InvalidDateTime
        boy['nickname'] = boyname
        boy['sex']    = '1'

        girl['id'] = uuid.uuid5(uuid.NAMESPACE_DNS,uuid.uuid1().get_hex()).get_hex()
        girl['lover']    = boyname
        girl['time']    = nowtime
        girl['password'] = encodeUtil.md5hash(girl['password'])
        girl['birthday'] = self.InvalidDateTime
        girl['nickname'] = girlname
        girl['sex']    = '2'

        if self.is_user_exist(boyname):
            return -1
        if self.is_user_exist(girlname):
            return -2
        self.uda.insert_user_info(boy)
        self.uda.insert_user_info(girl)
        return 0

    def get_user_face_path(self, username):
        rows = self.uda.get_user_info(username, field='FUFaceImage')
        if(rows == None or len(rows) == 0):
            return None
        else:
            return rows[0]['FUFaceImage']

    def get_lover_name(self, username):
        return self.uda.get_user_lover_name(username)
        #cache

    def update_user_logininfo(self, username,ip):
        logininfo = {
            'username':username,
            'ip':ip,
            'time':datetime.datetime.now()
            }
        self.uda.update_user_logininfo(logininfo)

    def update_password(self, username, old_pwd, pwd, pwd_lover):
        old_pwd_pass = self.check_user_identity(username, old_pwd)
        if not old_pwd_pass:
            return -1
        encodeUtil = EncodeUtil()
        if pwd != None and len(pwd) > 0 :
            self.uda.reset_password(username,encodeUtil.md5hash(pwd))
        if pwd_lover != None and len(pwd_lover) > 0:
            self.uda.reset_password_lover(username,encodeUtil.md5hash(pwd_lover))
        return 0

    def reset_password(self, username, enc_pwd, pwd):
        pwd_field = 'FUPassword'
        userinfo = self.uda.get_user_info(username,pwd_field)
        old_pwd = userinfo[pwd_field]
        encodeUtil = EncodeUtil()
        old_encpwd = encodeUtil.md5hash('walpw'+old_pwd+'walgw')
        if enc_pwd == old_encpwd:
            self.uda.reset_password(username,encodeUtil.md5hash(pwd))
            return 0
        else:
            return -1


    def save_userinfo(self,username,userinfo):
        strbirthday = userinfo['birthday']
        if strbirthday == None or len(strbirthday) == 0:
            birthday = self.InvalidDateTime
        else:
            birthday = datetime.datetime.strptime(strbirthday,'%Y_%m_%d')
        self.uda.save_user_info(username,userinfo['bigarea'],userinfo['smallarea'],birthday,userinfo['email'])


#used
    def get_user_info(self, username):
        userinfo = None
        if username != None and len(username) > 0:
            userinfos = self.uda.get_user_info(username)
            if userinfos != None and len(userinfos) > 0:
                userinfo = userinfos[0]
        return userinfo














        strArray = []
        strArray.append('<?xml version=\"1.0\" encoding=\"utf-8\"?>')
        strArray.append('<userinfos>')
        strArray.append(self.strf_userinfo(userinfo))
        strArray.append('</userinfos>')
        return ''.join(strArray)

    def strf_userinfo(self, userinfo):
        if userinfo == None :
            return ''
        if userinfo['FUSex'] == 1:
            sex = 'male'
        else:
            sex = 'female'
        birthday = userinfo['FUBirthday']
        if birthday == self.InvalidDateTime:
            strbirthday = ''
        else:
            strbirthday = birthday.strftime('%m/%d/%Y')
        
        strArray = []
        strArray.append('<userinfo>')
        strArray.append('<username>{0}</username>'.format(userinfo['FUName']))
        strArray.append('<sex>{0}</sex>'.format(sex))
        strArray.append('<lover>{0}</lover>'.format(userinfo['FULover']))
        strArray.append('<email>{0}</email>'.format(userinfo['FUSafeEmail']))
        strArray.append('<birthday>{0}</birthday>'.format(strbirthday))
        strArray.append('<bigarea>{0}</bigarea>'.format(userinfo['FUAreaBig']))
        strArray.append('<smallarea>{0}</smallarea>'.format(userinfo['FUAreaSmall']))
        strArray.append('</userinfo>')
        return ''.join(strArray)
Ejemplo n.º 16
0
 def __init__(self):
     self.uda = UserDao()
     self.InvalidDateTime = datetime.datetime(1900,1,1,0,0,0)
     self.BadWords = ':;,\'"/\\*#!&^.%<>'