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'])
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
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)
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()
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
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')
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'
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'])
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
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)
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)
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 = '******'
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)
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)
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))
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
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)
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)
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)
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, )
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)
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={})
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)
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
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)
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)