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]
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'
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 ]
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 ]