Ejemplo n.º 1
0
    def renderHTTP(self, ctx):
        """Handle HTTP requests."""
        srv = IService(ctx)
        request = IRequest(ctx)

        current = must_user(ctx)
        user = srv.validate_challenge(  # pylint: disable-msg=E1101
            self.challenge, current.session)

        if user:
            message(ctx, u'Bienvenue, %s' % (user.email, ))
            request.redirect("/")
            request.finish()
            return ''

        # Some people simply reuse invitations: don't complain if they
        # are already connected, just redirect them to the main page.
        avatar = maybe_user(ctx)
        if avatar.identified:
            request.redirect("/")
            request.finish()
            return ''

        # pylint: disable-msg=E1101
        self.contentTags = [
            T.h1[u"Cette clé n'est pas valable"],
            T.p[u"Vous pouvez obtenir une nouvelle clé par e-mail.",
                T.div(_class="editable bl")[T.div(_class="br")[T.div(
                    _class="tl")[T.div(_class="tr")[T.div(
                        _class="edcontent")[login.LoginFragment(
                            original=login.LoginInfo(
                                force_reconnect=True))], ]]]]]
        ]

        return BasePage.renderHTTP(self, ctx)
Ejemplo n.º 2
0
    def renderHTTP(self, ctx):  # pylint: disable-msg=C0103
        """Handle HTTP requests."""
        request = IRequest(ctx)

        if request.method == 'POST':  # pylint: disable-msg=E1101
            session.destroy_session(ctx)
            request.redirect('/')
            return ''
        return BasePage.renderHTTP(self, ctx)
Ejemplo n.º 3
0
    def _create_list(self, ctx, name, email):
        """Actually create the new list."""
        req = IRequest(ctx)
        srv = IService(ctx)

        avatar = must_user(ctx)
        # pylint: disable-msg=E1101
        wl = srv.createList(avatar.user, name, email)
        if not wl:
            req.redirect('/')
            req.finish()
            return

        if not avatar.identified:
            message(
                ctx, u"Un message de confirmation a été envoyé"
                u" à l'adresse <%s>." % (email, ))

        req.redirect('/' + wl.url)
        req.finish()
Ejemplo n.º 4
0
    def data_form(self, ctx, _):
        """Return the options passed in the invitation form."""
        req = IRequest(ctx)

        warn = []
        vals = {'msg': ''}

        srv = IService(ctx)
        avatar = must_user(ctx)

        user = avatar.user
        # pylint: disable-msg=E1101
        if req.method == 'POST':

            if not arg(req, 'send'):
                req.redirect('/')
                req.finish()
                return self._defaults

            if not avatar.identified:
                warn.append(u"Vous n'avez pas encore activé votre compte.")

            vals['sender'] = arg(req, 'sender')
            if not vals['sender']:
                warn.append(u"Vous n'avez pas précisé votre nom.")

            vals['email'] = arg(req, 'email')
            if not vals['email']:
                warn.append(u"Vous n'avez pas précisé de destinataire.")

            vals['body'] = arg(req, 'body')
            if not vals['body']:
                warn.append(u"Votre message n'a pas de contenu.")

            # We simply filter out lists that don't belong to the
            # user.
            vals['lst'] = _my_lists(req.args.get('lst', []), srv, user)

            if not vals['lst']:
                warn.append(u"Choisissez au moins une liste ci-dessous.")

            vals['warn'] = warn

            if not warn:
                if not srv.inviteFriend(vals['sender'], user, vals['lst'],
                                        vals['email'], vals['body']):
                    warn.append(u"L'adresse <%s> n'est pas valide." %
                                (vals['email'], ))

                else:
                    vals['msg'] = u'Votre invitation a été envoyée à %s' % (
                        vals['email'], )

                    # When we have sent properly, forget the previous
                    # emails, so we don't double-send by mistake.
                    vals['email'] = ''

        else:
            vals = self._defaults

            vals['lst'] = _my_lists(req.args.get('lst', []), srv, user)
        return vals