示例#1
0
 def __init__(self, store, templateResolver=None):
     if templateResolver is None:
         templateResolver = ITemplateNameResolver(store)
     PublicPage.__init__(self, None, store,
                         templateResolver.getDocFactory('reset'), None,
                         None, templateResolver)
     self.store = store
     self.loginSystem = store.findUnique(userbase.LoginSystem, default=None)
示例#2
0
 def __init__(self, store, templateResolver=None):
     if templateResolver is None:
         templateResolver = ITemplateNameResolver(store)
     PublicPage.__init__(self, None, store,
                         templateResolver.getDocFactory('reset'),
                         None, None, templateResolver)
     self.store = store
     self.loginSystem = store.findUnique(userbase.LoginSystem, default=None)
示例#3
0
 def __init__(self, original):
     for resource, domain in userbase.getAccountNames(original.installedOn):
         username = '******' % (resource, domain)
         break
     else:
         username = None
     PublicPage.__init__(self, original, original.store.parent, getLoader('initialize'),
                         IStaticShellContent(original.installedOn, None),
                         username)
示例#4
0
 def __init__(self, original):
     for resource, domain in userbase.getAccountNames(original.installedOn):
         username = '******' % (resource, domain)
         break
     else:
         username = None
     PublicPage.__init__(self, original, original.store.parent,
                         getLoader('initialize'),
                         IStaticShellContent(original.installedOn, None),
                         username)
示例#5
0
    def renderHTTP(self, ctx):
        """
        Handle the password reset form.

        The following exchange describes the process:

            S: Render C{reset}
            C: POST C{username} or C{email}
            S: L{handleRequestForUser}, render C{reset-check-email}

            (User follows the emailed reset link)

            S: Render C{reset-step-two}
            C: POST C{password1}
            S: L{resetPassword}, render C{reset-done}
        """
        req = inevow.IRequest(ctx)

        if req.method == 'POST':
            if req.args.get('username', [''])[0]:
                user = unicode(usernameFromRequest(req), 'ascii')
                self.handleRequestForUser(user, URL.fromContext(ctx))
                self.fragment = self.templateResolver.getDocFactory(
                    'reset-check-email')
            elif req.args.get('email', [''])[0]:
                email = req.args['email'][0].decode('ascii')
                acct = self.accountByAddress(email)
                if acct is not None:
                    username = '******'.join(
                        userbase.getAccountNames(acct.avatars.open()).next())
                    self.handleRequestForUser(username, URL.fromContext(ctx))
                self.fragment = self.templateResolver.getDocFactory(
                    'reset-check-email')
            elif 'password1' in req.args:
                (password, ) = req.args['password1']
                self.resetPassword(self.attempt, unicode(password))
                self.fragment = self.templateResolver.getDocFactory(
                    'reset-done')
            else:
                # Empty submit;  redirect back to self
                return URL.fromContext(ctx)
        elif self.attempt:
            self.fragment = self.templateResolver.getDocFactory(
                'reset-step-two')

        return PublicPage.renderHTTP(self, ctx)
示例#6
0
    def renderHTTP(self, ctx):
        """
        Handle the password reset form.

        The following exchange describes the process:

            S: Render C{reset}
            C: POST C{username} or C{email}
            S: L{handleRequestForUser}, render C{reset-check-email}

            (User follows the emailed reset link)

            S: Render C{reset-step-two}
            C: POST C{password1}
            S: L{resetPassword}, render C{reset-done}
        """
        req = inevow.IRequest(ctx)

        if req.method == 'POST':
            if req.args.get('username', [''])[0]:
                user = unicode(usernameFromRequest(req), 'ascii')
                self.handleRequestForUser(user, URL.fromContext(ctx))
                self.fragment = self.templateResolver.getDocFactory(
                    'reset-check-email')
            elif req.args.get('email', [''])[0]:
                email = req.args['email'][0].decode('ascii')
                acct = self.accountByAddress(email)
                if acct is not None:
                    username = '******'.join(
                        userbase.getAccountNames(acct.avatars.open()).next())
                    self.handleRequestForUser(username, URL.fromContext(ctx))
                self.fragment = self.templateResolver.getDocFactory('reset-check-email')
            elif 'password1' in req.args:
                (password,) = req.args['password1']
                self.resetPassword(self.attempt, unicode(password))
                self.fragment = self.templateResolver.getDocFactory('reset-done')
            else:
                # Empty submit;  redirect back to self
                return URL.fromContext(ctx)
        elif self.attempt:
            self.fragment = self.templateResolver.getDocFactory('reset-step-two')

        return PublicPage.renderHTTP(self, ctx)
示例#7
0
 def render_head(self, ctx, data):
     tag = PublicPage.render_head(self, ctx, data)
     return tag[tags.script(src='/Mantissa/js/initialize.js')]
示例#8
0
 def render_head(self, ctx, data):
     tag = PublicPage.render_head(self, ctx, data)
     return tag[tags.script(src='/Mantissa/js/initialize.js')]