def POST(self, i=None): if i is None: i = web.input() assert(len(i.get('email','')) > 0) assert(len(i.get('password','')) > 0) user = UserCtrl().loginByEmail(i.email, i.password) if user: if user.dead == 'off': site_helper.login(user, i.get('rememberme', False) == 'on') # 根据当前url中的referer跳转 params = site_helper.getUrlParams() if params.get('referer', False): return page_helper.redirectTo(params['referer']) # 根据上一个页面地址中的referer跳转 params = site_helper.getUrlParams(site_helper.getEnv('HTTP_REFERER')) if params.get('referer', False): return page_helper.redirectTo(params['referer']) return page_helper.success('登录成功. 欢迎回来', i.get('referer', '/')) else: return page_render.failed('登录失败,你已被管理员列入黑名单,请联系我们.', '/') else: return site_helper.page_render.user.Login('用户名或密码错误, 请重新输入', i.get('email', ''), i.get('referer',''))
def POST(self): i = web.input() if i.has_key('email'): user = site_helper.getModel('User').getByEmail(i.email.strip()) if user is not None: reset_model = site_helper.getModel('ResetPasswdCode') reset = reset_model.getACode(user.Userid) reset_model.updateACode(user.Userid, reset) reset_model.sendACode(user, reset) return page_helper.success('发送成功,查收您的邮箱.', '/') elif i.has_key('password'): user_id = site_helper.getUrlParams(site_helper.getEnv('HTTP_REFERER'))['userid'] post_code = site_helper.getUrlParams(site_helper.getEnv('HTTP_REFERER'))['rcode'] user_model = site_helper.getModel('User') code_model = site_helper.getModel('ResetPasswdCode') user = user_model.get(user_id) if user is not None: code = code_model.getByUserid(user_id) if code is not None and code.acode == post_code and ((datetime.now() - code.created).seconds < 3600*24): assert(len(i.password) > 0) user_model.resetPassword(user_id, i.password) code_model.deleteByUserid(user_id) site_helper.login(user) return page_helper.success('重设密码成功,已登录.', '/') else: return page_helper.failed('本重置密码链接已使用或已过期,请重新申请.','/accounts/forget') else: return page_helper.redirectToLogin() else: return page_helper.redirect404();
def _check(user_id): do_tash = DoTask() task_names = site_helper.getUrlParams().get('check_task','').split('|') task_names = [task_name.strip() for task_name in task_names if len(task_name.strip()) > 0] for task_name in task_names: do_tash.doStatusTask(user_id, task_name.strip()) # 如果取消了绑定第三方帐号,就重新计算绑定勋章 if 'oauth' in site_helper.getUrlParams().get('check_task',''): User().checkConnectMedal(user_id)
def POST(self, i=None): #if i is None: i = web.input(imagefile={}) i = web.input() has_portrait = False i.login_ip = i.register_ip = site_helper.session.ip assert(i.has_key('email') and len(i.email.strip()) < 100 ) assert(i.has_key('username') and 2 <= len(i.username.strip()) <= 24 ) assert(i.has_key('password') and len(i.password)<60 ) i.email = i.email.strip() i.username = i.username.strip() user_model = getModel('User') if UserCtrl().isExists(i.email): return page_helper.failed('注册失败, 邮箱已被占用 :(') # 管理员注册不需要验证 if site_helper.session.is_admin: i.activated = 'on' new_id = user_model.insert(i) user = user_model.get(new_id) site_helper.login(user) self.processShareLink(user) acode_model = site_helper.getModel('ACode') acode = acode_model.getACode(user.Userid) acode_model.updateACode(user.Userid, acode) acode_model.sendACode(user, acode) if has_portrait: #return site_helper.page_render.user.ModifyPortrait(user) raise web.seeother('/accounts/portrait?hideupload=true') else: # 根据当前url中的referer跳转 params = site_helper.getUrlParams() if params.get('referer', False): return site_helper.page_render.Success('注册成功! 请打开您的Email进行验证, 只有验证后才能发表心得哦!', params['referer']) # 根据上一个页面地址中的referer跳转 params = site_helper.getUrlParams(site_helper.getEnv('HTTP_REFERER')) if params.get('referer', False): return site_helper.page_render.Success('注册成功! 请打开您的Email进行验证, 只有验证后才能发表心得哦!', params['referer']) return site_helper.page_render.Success('注册成功! 请打开您的Email进行验证, 只有验证后才能发表心得哦!', '/')
def POST(self, inputs=None): if not inputs: inputs = sh.inputs() assert(inputs.get('email', '').strip()) assert(inputs.get('password', '')) uc = sh.ctrl('User') model = sh.model('User') action = sh.getEnv('REQUEST_URI').partition('?')[0].strip('/') if action == 'login': if not uc.validate(inputs.email, inputs.password): return sh.page.user.Login('您输入的用户名或密码不对, 请重新输入', inputs.email) user = model.getByEmail(inputs.email) if user.dead == 'yes': return sh.alert('登录失败,你已被列入黑名单,请联系管理员') uc.login(user, inputs.get('remember_me', '') == 'on') # 获得打开login页面时url中指定的referer referer = sh.getUrlParams(sh.getEnv('HTTP_REFERER')).get('referer', None) if referer: return sh.redirect(referer) elif sh.inputs().get('referer', None): return sh.redirect(sh.inputs().get('referer', None)) else: return sh.alert('登录成功. 欢迎回来!')
def getCurrTopMenuTitle(self): it = sh.ctrl('IndentTable') indents = it.indent(sh.getEditorMenu()) if it.getIndentsLevel(indents) == 4: return sh.getUrlParams().get('top_menu', indents[0][0]).partition(' ')[0] else: return ''
def POST(self, inputs=None): if not inputs: inputs = sh.inputs() assert(inputs.get('email', '').strip()) assert(inputs.get('password', '')) uc = sh.ctrl('User') model = sh.model('User') action = sh.getEnv('REQUEST_URI').partition('?')[0].strip('/') if action == 'login': if not uc.validate(inputs.email, inputs.password): return sh.page.user.Login('您输入的用户名或密码不对, 请重新输入', inputs.email) user = model.getByEmail(inputs.email) if user.dead == 'yes': return sh.alert('登录失败,你已被列入黑名单,请联系管理员') uc.login(user, inputs.get('remember_me', '') == 'on') # 获得打开login页面时url中指定的referer referer = sh.getUrlParams(sh.getEnv('HTTP_REFERER')).get('referer', None) if referer: return sh.redirect(referer) elif sh.inputs().get('referer', None): return sh.redirect(sh.inputs().get('referer', None)) else: return sh.redirect('/')
def saveShareUserid(handler): params = site_helper.getUrlParams() if params.has_key('shareUserid'): if params['shareUserid'].isdigit(): session.share_user_id = int(params['shareUserid']) session.share_referer = site_helper.getEnv('HTTP_REFERER') return handler()
def _getEditorMenu(self): it = sh.ctrl('IndentTable') indents = it.indent(sh.getEditorMenu()) level = it.getIndentsLevel(indents) if level == 3: return sh.getEditorMenu() elif level == 4: menu_name = sh.getUrlParams().get('top_menu', indents[0][0]) for k,v in indents: if k == menu_name or (' ' in k and k.partition(' ')[0] == menu_name): return it.indentsToConfig(v) else: return ''
def _getEditorMenu(self): it = sh.ctrl('IndentTable') indents = it.indent(sh.getEditorMenu()) level = it.getIndentsLevel(indents) if level == 3: return sh.getEditorMenu() elif level == 4: menu_name = sh.getUrlParams().get('top_menu', indents[0][0]) for k, v in indents: if k == menu_name or (' ' in k and k.partition(' ')[0] == menu_name): return it.indentsToConfig(v) else: return ''
def profiler(handler): if site_helper.session.is_admin and site_helper.getUrlParams().get('profile', '0') == '1': html, x = Profile(handler)() return str(html) + '<pre>' + str(web.net.websafe(x)) + '</pre>' else: return handler()
def profiler(handler): if sh.session.is_admin and sh.getUrlParams().get('profile', None): html, x = Profile(handler)() return str(html) + '<pre>' + str(web.net.websafe(x)) + '</pre>' else: return handler()