Exemple #1
0
    def json_changepass(self):
        '''
        The first char of 'code' stands for the different field.
        '1' for user_name
        '2' for user_email
        '3' for user_pass
        '4' for user_role
        The seconde char of 'code' stands for different status.
        '1' for invalide
        '2' for already exists.
        '''

        # user_create_status = {'success': False, 'code': '00'} # Not used currently.
        post_data = self.get_post_data()

        check_usr_status = MUser.check_user(self.userinfo.uid,
                                            post_data['rawpass'])

        if check_usr_status == 1:

            user_create_status = self.__check_valid_pass(post_data)
            if not user_create_status['success']:
                return json.dump(user_create_status, self)

            form_pass = SumFormPass(self.request.arguments)

            if form_pass.validate():
                MUser.update_pass(self.userinfo.uid, post_data['user_pass'])
                return json.dump(user_create_status, self)

            return json.dump(user_create_status, self)

        return False
def run_send_all():
    muser = MUser()
    user_recs = muser.query_all()
    for user_rec in user_recs:
        email_add = user_rec.user_email
        print(email_add)
        send_mail([email_add], "{0}|{1}".format(smtp_cfg['name'], email_cfg['title']), email_cfg['content'])
Exemple #3
0
 def initialize(self):
     self.init()
     self.muser = MUser()
     self.mclass = MCategory()
     if self.get_current_user():
         self.userinfo = self.muser.get_by_name(self.get_current_user())
     else:
         self.userinfo = None
Exemple #4
0
    def __register__(self):
        '''
        regist the user.
        '''
        post_data = self.get_post_data()

        form = SumForm(self.request.arguments)
        ckname = MUser.get_by_name(post_data['user_name'])
        ckemail = MUser.get_by_email(post_data['user_email'])
        if ckname is None:
            pass
        else:
            kwd = {
                'info': '用户名已存在,请更换用户名。',
                'link': '/user/regist',
            }
            self.set_status(400)
            self.render('misc/html/404.html',
                        cfg=config.CMS_CFG,
                        kwd=kwd,
                        userinfo=None)
        if ckemail is None:
            pass
        else:
            kwd = {
                'info': '邮箱已经存在,请更换邮箱。',
                'link': '/user/regist',
            }
            self.set_status(400)
            self.render('misc/html/404.html',
                        cfg=config.CMS_CFG,
                        kwd=kwd,
                        userinfo=None)
        if form.validate():
            res_dic = MUser.create_user(post_data)
            if res_dic['success']:
                self.redirect('/user/login')
            else:
                kwd = {
                    'info': '注册不成功',
                    'link': '/user/regist',
                }
                self.set_status(400)
                self.render('misc/html/404.html',
                            cfg=config.CMS_CFG,
                            kwd=kwd,
                            userinfo=None)

        else:
            kwd = {
                'info': '注册不成功',
                'link': '/user/regist',
            }
            self.set_status(400)
            self.render('misc/html/404.html',
                        cfg=config.CMS_CFG,
                        kwd=kwd,
                        userinfo=None)
Exemple #5
0
    def setup(self):
        print('setup 方法执行于本类中每条用例之前')
        self.post = MPost()
        self.user = MUser()
        self.reply = MReply()

        self.post_title = 'ccc'
        self.username = '******'
        self.uid = tools.get_uu4d()
Exemple #6
0
    def changepassword(self):
        post_data = self.get_post_data()

        uu = MUser.check_user(self.userinfo.uid, post_data['rawpass'])
        if uu == 1:
            MUser.update_pass(self.userinfo.uid, post_data['user_pass'])
            self.redirect('/user/info')
        else:
            return False
Exemple #7
0
    def __change_role__(self, xg_username):
        '''
        Change th user rule
        '''
        post_data = self.get_post_data()

        # if self.tmpl_router == "user":
        MUser.update_role(xg_username, post_data['role'])
        self.redirect('/user/info')
Exemple #8
0
def run_send_nologin(*args):
    '''
    Send email to who not logged in recently.
    '''
    for user_rec in MUser.query_nologin():
        email_add = user_rec.user_email
        print(email_add)
        send_mail([email_add], f"{SMTP_CFG['name']}|{email_cfg['title']}",
                  email_cfg['content'])
        MUser.set_sendemail_time(user_rec.uid)
    def setup(self):
        print('setup 方法执行于本类中每条用例之前')
        self.user = MUser()
        self.reply = MReply()
        self.r2u = MReply2User()
        self.username = '******'
        self.password = '******'

        self.user_uid = '12345'
        self.reply_uid = '65412'
Exemple #10
0
 def test_db_email(self):
     self.tearDown()
     pdata = {
         'user_name': 'asdfdsf',
         'user_pass': '******',
         'user_email': '*****@*****.**',
     }
     MUser.create_user(pdata)
     bb = MUser.create_user(pdata)
     assert bb == {'code': '31', 'success': False}
     self.uu.delete_by_user_name(pdata['user_name'])
Exemple #11
0
    def add_user(self, **kwargs):
        name = kwargs.get('user_name', self.username)
        post_data = {
            'user_name': name,
            'user_pass': kwargs.get('user_pass', 'g131322'),
            'user_email': kwargs.get('user_email', '*****@*****.**'),
        }

        MUser.create_user(post_data)
        aa = MUser.get_by_name(name)
        self.user_uid = aa.uid
Exemple #12
0
    def p_changepassword(self):

        post_data = self.get_post_data()

        usercheck = MUser.check_user(self.userinfo.uid, post_data['rawpass'])
        if usercheck == 1:
            MUser.update_pass(self.userinfo.uid, post_data['user_pass'])
            output = {'changepass ': usercheck}
        else:
            output = {'changepass ': 0}
        return json.dump(output, self)
Exemple #13
0
 def setup(self):
     print('setup 方法执行于本类中每条用例之前')
     self.M2U = MEntity2User()
     self.username = '******'
     self.uu = MUser()
     self.user_uid = ''
     self.e_uid = 'q112'
     self.path = '/static/123123'
     self.userip = '10.6.0.177'
     self.ee = MEntity()
     self.uid = ''
def run_send_nologin(*args):
    '''
    Send email to who not logged in recently.
    :return:
    '''
    for user_rec in MUser.query_nologin():
        email_add = user_rec.user_email
        print(email_add)
        send_mail([email_add], "{0}|{1}".format(SMTP_CFG['name'],
                                                email_cfg['title']),
                  email_cfg['content'])
        MUser.set_sendemail_time(user_rec.uid)
def run_create_admin():
    post_data = {
        'user_name': 'giser',
        'user_email': '*****@*****.**',
        'user_pass': '******',
        'role': 'fffff',
    }
    muser = MUser()
    entry = muser.get_by_name(post_data['user_name'])
    if entry:
        pass
    else:
        muser.insert_data(post_data)
Exemple #16
0
    def setup(self):
        print('setup 方法执行于本类中每条用例之前')
        self.post = MPost()
        self.user = MUser()
        self.reply = MReply()
        self.r2u = MReply2User()

        self.post_title = 'fwwgccc'
        self.username = '******'
        self.user_uid = ''
        self.reply_uid = ''
        self.post_uid = '998h'
        self.password = '******'
Exemple #17
0
 def p_changeinfo(self):
     '''
     Change Infor via Ajax.
     :return:
     '''
     post_data = self.get_post_data()
     usercheck = MUser.check_user(self.userinfo.uid, post_data['rawpass'])
     if usercheck == 1:
         MUser.update_info(self.userinfo.uid, post_data['user_email'])
         output = {'changeinfo ': usercheck}
     else:
         output = {'changeinfo ': 0}
     return json.dump(output, self)
Exemple #18
0
    def changepassword(self):
        post_data = self.get_post_data()

        uu = MUser.check_user(self.userinfo.uid, post_data['rawpass'])
        if uu == 1:
            MUser.update_pass(self.userinfo.uid, post_data['user_pass'])
            self.redirect('/user/info')
        else:
            kwd = {
                'info': '原密码输入错误,请重新输入',
                'link': '/user/changepass',
            }
            self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo)
Exemple #19
0
    def login(self):
        '''
        user login.
        '''
        post_data = self.get_post_data()

        if 'next' in post_data:
            next_url = post_data['next']
        else:
            next_url = '/'

        u_name = post_data['user_name']
        u_pass = post_data['user_pass']

        check_email = re.compile(r'^\w+@(\w+\.)+(com|cn|net)$')

        if check_email.search(u_name):

            result = MUser.check_user_by_email(u_name, u_pass)
            if result == 1:
                u_name = MUser.get_by_email(u_name).user_name
        else:
            result = MUser.check_user_by_name(u_name, u_pass)

        # Todo: the kwd should remove from the codes.
        if result == 1:
            self.set_secure_cookie("user", u_name)
            MUser.update_time_login(u_name)
            self.redirect(next_url)
        elif result == 0:
            self.set_status(401)

            self.render('user/user_relogin.html',
                        cfg=config.CMS_CFG,
                        kwd={
                            'info': '密码验证出错,请重新登陆。',
                            'link': '/user/login',
                        },
                        userinfo=self.userinfo)
        elif result == -1:
            self.set_status(401)
            self.render('misc/html/404.html',
                        cfg=config.CMS_CFG,
                        kwd={
                            'info': '没有这个用户',
                            'link': '/user/login',
                        },
                        userinfo=self.userinfo)
        else:
            self.set_status(305)
            self.redirect("{0}".format(next_url))
Exemple #20
0
    def reset_password(self):
        '''
        Do reset password
        :return:
        '''
        post_data = self.get_post_data()

        if 'email' in post_data:
            userinfo = MUser.get_by_email(post_data['email'])

            if tools.timestamp() - userinfo.time_reset_passwd < 70:
                self.set_status(400)
                kwd = {
                    'info': '两次重置密码时间应该大于1分钟',
                    'link': '/user/reset-password',
                }
                self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo)
                return False

            if userinfo:
                timestamp = tools.timestamp()
                passwd = userinfo.user_pass
                username = userinfo.user_name
                hash_str = tools.md5(username + str(timestamp) + passwd)
                url_reset = '{0}/user/reset-passwd?u={1}&t={2}&p={3}'.format(
                    config.SITE_CFG['site_url'],
                    username,
                    timestamp,
                    hash_str)
                email_cnt = '''<div>请查看下面的信息,并<span style="color:red">谨慎操作</span>:</div>
            <div>您在"{0}"网站({1})申请了密码重置,如果确定要进行密码重置,请打开下面链接:</div>
            <div><a href={2}>{2}</a></div>
            <div>如果无法确定本信息的有效性,请忽略本邮件。</div>'''.format(config.SMTP_CFG['name'],
                                                       config.SITE_CFG['site_url'],
                                                       url_reset)

                if send_mail([userinfo.user_email], "{0}|密码重置".format(config.SMTP_CFG['name']),
                             email_cnt):
                    MUser.update_time_reset_passwd(username, timestamp)
                    self.set_status(200)
                    logger.info('password has been reset.')
                    return True
                else:
                    self.set_status(400)
                    return False
            else:
                self.set_status(400)
                return False
        else:
            self.set_status(400)
            return False
Exemple #21
0
def run_create_admin():
    post_data = {
        'user_name': ['giser'],
        'user_email': ['*****@*****.**'],
        'user_pass': ['131322'],
        'privilege': ['fffff'],
    }
    muser = MUser()
    entry = muser.get_by_name(post_data['user_name'][0])
    if entry:
        pass
    else:

        muser.insert_data(post_data)
Exemple #22
0
def run_create_admin(*args):
    '''
    creating the default administrator.
    '''
    post_data = {
        'user_name': 'admin',
        'user_email': '*****@*****.**',
        'user_pass': '******',
        'role': '3300',
    }
    if MUser.get_by_name(post_data['user_name']):
        print(f'User `{post_data["user_name"]}` already exists.')
    else:
        MUser.create_user(post_data)
Exemple #23
0
def run_create_admin(*args):
    '''
    creating the default administrator.
    '''
    post_data = {
        'user_name': 'giser',
        'user_email': '*****@*****.**',
        'user_pass': '******',
        'role': '3300',
    }
    if MUser.get_by_name(post_data['user_name']):
        print('User {user_name} already exists.'.format(user_name='giser'))
    else:
        MUser.create_user(post_data)
Exemple #24
0
    def gen_passwd(self):
        '''
        reseting password
        :return:
        '''
        post_data = self.get_post_data()

        userinfo = MUser.get_by_name(post_data['u'])

        sub_timestamp = int(post_data['t'])
        cur_timestamp = tools.timestamp()
        if cur_timestamp - sub_timestamp < 600 and cur_timestamp > sub_timestamp:
            pass
        else:
            kwd = {
                'info': '密码重置已超时!',
                'link': '/user/reset-password',
            }
            self.set_status(400)
            self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo)

        hash_str = tools.md5(userinfo.user_name + post_data['t'] +
                             userinfo.user_pass)
        if hash_str == post_data['p']:
            pass
        else:
            kwd = {
                'info': '密码重置验证出错!',
                'link': '/user/reset-password',
            }
            self.set_status(400)
            self.render(
                'misc/html/404.html',
                kwd=kwd,
                userinfo=self.userinfo,
            )

        new_passwd = tools.get_uu8d()
        MUser.update_pass(userinfo.uid, new_passwd)
        kwd = {
            'user_name': userinfo.user_name,
            'new_pass': new_passwd,
        }
        self.render(
            'user/user_show_pass.html',
            cfg=config.CMS_CFG,
            kwd=kwd,
            userinfo=self.userinfo,
        )
Exemple #25
0
    def changeinfo(self):

        post_data = self.get_post_data()

        uu = MUser.check_user(self.userinfo.uid, post_data['rawpass'])

        if uu == 1:
            MUser.update_info(self.userinfo.uid, post_data['user_email'])
            self.redirect(('/user/info'))
        else:
            kwd = {
                'info': '密码输入错误。',
                'link': '/user/changeinfo',
            }
            self.render('misc/html/404.html', kwd=kwd, userinfo=self.userinfo)
Exemple #26
0
 def __to_change_role__(self, xg_username):
     '''
     to change the user role
     '''
     self.render('user/user_changerole.html',
                 userinfo=MUser.get_by_name(xg_username),
                 kwd={})
Exemple #27
0
 def show_info(self):
     '''
     show the user info
     '''
     rec = MUser.get_by_uid(self.userinfo.uid)
     self.render(self.wrap_tmpl('user/{sig}user_info.html'),
                 userinfo=self.userinfo, extinfo=rec.extinfo)
Exemple #28
0
 def add_w_h(self):
     self.add_user()
     self.add_wiki()
     post_data = MWiki.get_by_uid(self.wiki_uid)
     userinfo = MUser.get_by_uid(self.user_uid)
     aa = MWikiHist.create_wiki_history(post_data, userinfo)
     self.uid = aa
Exemple #29
0
    def json_register(self):
        '''
                The first char of 'code' stands for the different field.
                '1' for user_name
                '2' for user_email
                '3' for user_pass
                '4' for user_role
                The seconde char of 'code' stands for different status.
                '1' for invalide
                '2' for already exists.
        '''
        user_create_status = {'success': False, 'code': '00'}
        post_data = self.get_post_data()
        user_create_status = self.__check_valid(post_data)
        if not user_create_status['success']:
            return json.dump(user_create_status, self)

        form = SumForm(self.request.arguments)

        if form.validate():
            user_create_status = MUser.create_user(post_data)
            logger.info('user_register_status: {0}'.format(user_create_status))
            return json.dump(user_create_status, self)
        else:
            return json.dump(user_create_status, self)
Exemple #30
0
    def register(self):
        post_data = self.get_post_data()

        form = SumForm(self.request.arguments)

        if form.validate():
            res_dic = MUser.create_user(post_data)
            if res_dic['success']:
                self.redirect('/user/login')
            else:
                kwd = {
                    'info': '注册不成功',
                }
                self.set_status(400)
                self.render('misc/html/404.html',
                            cfg=config.CMS_CFG,
                            kwd=kwd,
                            userinfo=None)

        else:
            kwd = {
                'info': '注册不成功',
            }
            self.set_status(400)
            self.render('misc/html/404.html',
                        cfg=config.CMS_CFG,
                        kwd=kwd,
                        userinfo=None)