Esempio n. 1
0
    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',''))
Esempio n. 2
0
    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();
Esempio n. 3
0
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)
Esempio n. 4
0
    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进行验证, 只有验证后才能发表心得哦!', '/')
Esempio n. 5
0
File: Login.py Progetto: ajiexw/note
    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('登录成功. 欢迎回来!')
Esempio n. 6
0
 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 ''
Esempio n. 7
0
    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('/')
Esempio n. 8
0
 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 ''
Esempio n. 9
0
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()
Esempio n. 10
0
    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 ''
Esempio n. 11
0
    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 ''
Esempio n. 12
0
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()
Esempio n. 13
0
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()
Esempio n. 14
0
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()