Example #1
0
    def post(self):
        teksti_input = self.form.getvalue("teksti")
        teksti = None

        if teksti_input is not None:
            parser = CommentHTMLParser(
                ok_tags=["p", "strong", "pre", "em", "b", "br", "i", "hr", "s", "sub", "sup", "tt", "u"]
            )
            teksti = parser.parse_string(teksti_input)

        kuva_input = self.form.getvalue("kuva")
        kuva = None
        if kuva_input is not None and len(kuva_input) > 0:
            kuva = kuva_input

        kommentti = Kommentti.new(kohde_id=self.kohde_id, teksti=teksti, kuva=kuva)

        if self.sessio is not None:
            kommentti.omistaja = self.sessio.henkilo_id
            kommentti.save()

        self.redirect_after_post(
            "%s/%s/%d?comment_created=%d&yyy=%s"
            % (self.conf["script_name"], self.kohde_luokka, self.kohde_id, kommentti.kommentti_id, kuva is None)
        )

        return [self.headers, self.parameters]
Example #2
0
    def handle_newuser(self):
        henkilon_nimi_input = self.form.getvalue("henkilon_nimi")
        tunnus_input = self.form.getvalue("tunnus")
        salasana1_input = self.form.getvalue("salasana1")
        salasana2_input = self.form.getvalue("salasana2")

        if (henkilon_nimi_input is None or
            tunnus_input is None or
            salasana1_input is None or
            salasana2_input is None):
            self.parameters = { 'status': '<p class="status">Ole hyvä ja täytä kaikki kentät!</p>' }
            return 'missing_newuser_input'

        #
        # Siivoa tekstimuotoiset parameterit. Nimissä ja tunnuksissa
        # ei sallita mitään tageja.
        #
        parser = CommentHTMLParser(ok_tags=[])

        henkilon_nimi = parser.parse_string(henkilon_nimi_input)
        tunnus = parser.parse_string(tunnus_input)

        if salasana1_input != salasana2_input:
            return 'password_mismatch'

        henkilo_ids = Henkilo.load_ids(tunnus=tunnus)

        # blääh
        henkilo_id = None
        for i in henkilo_ids:
            henkilo_id = i
            break

        henkilo = None
        if henkilo_id is not None:
            henkilo = Henkilo.load_from_database(henkilo_id)
        if henkilo is not None:
            self.parameters = { 'status': '<p class="status">Tunnus "%s" on jo käytössä!</p>' % (tunnus) }
            return 'username_exists'

        #
        # Tehdään salasanasta hajautussumma.
        #
        salasana_hash = salasana.hash_password(salasana1_input)

        #
        # Tallennetaan henkilo tietokantaan
        #
        henkilo = Henkilo.new(nimi=henkilon_nimi, tunnus=tunnus, salasana=salasana_hash, omistajaa=None)

        #
        # Luo uusi istunto saman tien.
        #
        self.create_new_session(henkilo_id=henkilo.henkilo_id)

        self.parameters = { 'status': '<p class="status">Tunnus luotu, tervetuloa %s!</p>' % (tunnus) }

        return 'welcome'
Example #3
0
    def post(self):
        rajoitus_input = self.form.getvalue('rajoitus')
        rajoitus = None

        if rajoitus_input is not None:
            parser = CommentHTMLParser(ok_tags=[])
            rajoitus = parser.parse_string(rajoitus_input)

        ruokaaine_id_input = self.form.getvalue('ruokaaine_id')
        if ruokaaine_id_input is not None:
            ruokaaine_id = int(ruokaaine_id_input)

        rajoitus = Rajoitus.new(henkilo_id=self.kohde_id,
                                ruokaaine_id=ruokaaine_id,
                                rajoitus=rajoitus)

        self.redirect_after_post("%s/%s/%d?rajoitus_created=%d" %
                                 (self.conf['script_name'],
                                  self.kohde_luokka,
                                  self.kohde_id,
                                  rajoitus.rajoitus_id))

        return [ self.headers, self.parameters ]
Example #4
0
    def post(self):
        if self.authorized(self.resepti_id):
            action = self.form.getvalue('action')

            if action == 'updaterecipe':
                valmistusohje_unsafe = self.form.getvalue('valmistusohje')

                #
                # Salli vain turvallisten HTML-tagien käyttö kommenteissa.
                #
                parser = CommentHTMLParser(ok_tags=['p', 'strong', 'pre', 'em', 'b', 'br', 'i', 'hr', 's', 'sub', 'sup', 'tt', 'u'])
                valmistusohje = parser.parse_string(valmistusohje_unsafe)

                self.resepti = Resepti.load_from_database(self.resepti_id)

                self.resepti.valmistusohje = valmistusohje
                self.resepti.save()

                self.redirect_after_post("%s?updated=true" % (self.conf['full_path']))
        else:
            self.redirect_after_post("%s/resepti?status=not_authorized" % (self.conf['script_name']))

        return [ self.headers, self.parameters ]