def post(self, objava_id): objava = Objava.get_by_id(int(objava_id)) uporabnik = users.get_current_user() if objava.uporabnik_email == uporabnik.email( ) or users.is_current_user_admin(): Objava.delete(objava=objava) return self.write("Objava izbrisana.")
def post(self): vrednost_csrf = self.request.get("csrf-zeton") if not memcache.get(vrednost_csrf): return self.write("CSRF napad v dogajanju.") naslov = cgi.escape(self.request.get("title")) vsebina = cgi.escape(self.request.get("text")) uporabnik = users.get_current_user() email = uporabnik.email() nova_objava = Objava(naslov=naslov, vsebina=vsebina, uporabnik_email=email) nova_objava.put() return self.write("Objava dodana.")
def test_dodaj_objavo(self): # Preverimo ali GET zahteva na /dodaj-objavo deluje. get = self.testapp.get('/dodaj-objavo') # do a GET request self.assertEqual(get.status_int, 200) # Preverimo ali POST zahteva na /dodaj-objavo deluje. # Najprej moramo v memcache bazo dodati CSRF zeton. # Pozor: To je samo testna memcache baza, namenjena izkljucno za # test test_dodaj_objavo! Na zacetku je torej prazna. csrf_zeton = str(uuid.uuid4()) memcache.add(key=csrf_zeton, value=True, time=20) naslov = "Nova objava" vsebina = "To je nova objava" params = {"title": naslov, "text": vsebina, "csrf-zeton": csrf_zeton} # Sedaj naredimo post zahtevo. Ce je vse prav, bi se morala v bazo # dodati nova objava. Spet pozor: gre se za testno bazo, ki obstaja # le za test test_dodaj_objavo. Na zacetku je torej prazna. post = self.testapp.post('/dodaj-objavo', params) # do a POST request self.assertEqual(post.status_int, 200) # Iz te testne baze sedaj preberemo objavo in preverimo, da so se podatki # pravilno zapisali. objava = Objava.query().get( ) # Ker imamo sedaj v bazi le eno objavo, lahko naredimo get(). self.assertEqual(objava.naslov, naslov) self.assertEqual(objava.vsebina, vsebina)
def get(self): trenutni_cas = datetime.now() mejni_cas_izbrisa = trenutni_cas - timedelta(days=30) objave = Objava.query(Objava.cas_izbrisa != None, Objava.cas_izbrisa < mejni_cas_izbrisa).fetch() for objava in objave: objava.key.delete()
def post(self): vrednost_csrf = self.request.get("csrf-token") if not memcache.get(vrednost_csrf): return self.write("CSRF attack.") naslov = self.request.get("title") vsebina = self.request.get("text") if users.get_current_user(): email = users.get_current_user().email() else: return self.write("You must be logged in to participate.") nova_objava = Objava(naslov=naslov, vsebina=vsebina, uporabnikEmail=email) nova_objava.put() return self.redirect("/objava/" + str(nova_objava.key.id()))
def get(self): params = {} objave = [] user = users.get_current_user().email() vseobjave = Objava.query() vsikomentarji = Komentar.query() for komentar in vsikomentarji: if komentar.uporabnikEmail == user: objava = Objava.get_by_id(int(komentar.objavaID)) #objave[str(objava.naslov)] = objava.key.id() if not objava.cas_izbrisa: if not params.get(objava.naslov): params[objava.naslov] = [komentar] else: params[objava.naslov].append(komentar) for i in Objava.query(): objave.append(i) wrapper = {"comments": params, "objave": objave} return self.render_template("comments.html", wrapper)
def post(self, id): user = users.get_current_user() if not user: return self.write("You must first log in.") if not users.is_current_user_admin(): return self.write("You must be admin to delete topics.") else: objava = Objava.get_by_id(int(id)) objava.cas_izbrisa = True objava.put() time.sleep(0.1) return self.redirect("/")
def get(self, objava_id): objava = Objava.get_by_id(int(objava_id)) if not objava: return self.write('Te objave ni.') if not (users.get_current_user().email() == objava.uporabnik_email or users.is_current_user_admin()): return self.write( "Objavo lahko izbrise le njen avtor ali administrator.") objava.cas_izbrisa = datetime.now() objava.put() return self.write("Objava je bila izbrisana.")
def get(self, id): objava = Objava.get_by_id(int(id)) komentarji = Komentar.query(Komentar.objavaID == str( objava.key.id())).order(-Komentar.cas_objave).fetch() parami = { "id": id, "deleted": objava.cas_izbrisa, "naslov": objava.naslov, "vsebina": objava.vsebina, "cas_objave": objava.cas_objave, "objava": objava, "komentarji": komentarji } return self.render_template("detajli.html", params=parami)
def get(self, objava_id): objava = Objava.get_by_id(int(objava_id)) if not objava: return self.write('Te objave ni.') if objava.cas_izbrisa != None: return self.write('Ta objava je bila izbrisana.') komentarji = Komentar.query(Komentar.objava_id == str( objava.key.id())).order(-Komentar.cas_objave).fetch() prikazi_izbris = users.get_current_user().email( ) == objava.uporabnik_email or users.is_current_user_admin() params = { "objava": objava, "komentarji": komentarji, "prikazi_izbris": prikazi_izbris } return self.render_template("preglej_objavo.html", params)
def render_template(self, view_filename, params=None): if not params: params = {} piskotek = self.request.cookies.get("piskotek") if piskotek: params["cookies"] = True uporabnik = users.get_current_user() if uporabnik: params["url_odjave"] = users.create_logout_url("/") else: params["url_prijave"] = users.create_login_url("/") params["objave"] = Objava.query() params["uporabnik"] = uporabnik template = jinja_env.get_template(view_filename) return self.response.out.write(template.render(params))
def get(self, objava_id): objava = Objava.get_by_id(int(objava_id)) if not objava: return self.write('Te objave ni.') komentarji = Komentar.query(Komentar.objava_id == str( objava.key.id())).order(-Komentar.cas_objave).fetch() # params = { # "objava": objava, # "komentarji": komentarji, #} # preverimo, ali lahko trenutni uporabnik izbrise objavo: lahko_izbrise = False if users.get_current_user().email( ) == objava.uporabnik_email or users.is_current_user_admin(): lahko_izbrise = True params = { "objava": objava, "komentarji": komentarji, "lahko_izbrise": lahko_izbrise } return self.render_template("preglej_objavo.html", params)
def get(self): seznam = Objava.query().order(-Objava.cas_objave).fetch() params = {"seznam": seznam} return self.render_template("home.html", params=params)
def get(self, objava_id): objava = Objava.get_by_id(int(objava_id)) if not objava: return self.write("Te objave ni") params = {"objava": objava} return self.render_template("objave.html", params=params)
def get(self): #objave = Objava.query().order(-Objava.cas_objave).fetch() objave = Objava.query( Objava.cas_izbrisa == None).order(-Objava.cas_objave).fetch() params = {"objave": objave} return self.render_template("preglej_objave.html", params)