def vpis_post(): zahtevaj_odjavo() ime = bottle.request.forms['uporabnisko_ime'] geslo1 = bottle.request.forms['geslo1'] geslo2 = bottle.request.forms['geslo2'] if geslo1 != geslo2: return bottle.template('vpis.html', napaka='Gesli se ne ujemata!', ime=ime) try: uporabnik = Uporabnik(ime) uporabnik.dodaj_v_bazo(geslo1) bottle.response.set_cookie('uporabnik', ime, path='/', secret=SKRIVNOST) bottle.response.set_cookie('uid', uporabnik.id, path='/', secret=SKRIVNOST) bottle.redirect('/') except IntegrityError: return bottle.template('vpis.html', napaka='Uporabniško ime že obstaja!', ime=ime)
def prijava_post(): uporabnisko_ime = bottle.request.forms.getunicode('uporabnisko_ime') geslo = bottle.request.forms.getunicode('geslo') zasifrirano_geslo = Uporabnik.sifriraj_geslo(geslo) uporabnik = Uporabnik.pridobi_podatke_uporabnika(uporabnisko_ime) if uporabnik is None or zasifrirano_geslo != uporabnik.zasifrirano_geslo: return bottle.template('prijava.html', cilji=CILJI, error="Nepravilno uporabniško ime ali geslo.") else: nastavi_piskotek(uporabnik.uporabnisko_ime) bottle.redirect('/')
def prijava_post(): uporabnisko_ime = bottle.request.forms.getunicode('uporabnisko_ime') geslo = bottle.request.forms.getunicode('geslo') h = hashlib.blake2b() h.update(geslo.encode(encoding='utf-8')) zasifrirano_geslo = h.hexdigest() if 'nov_racun' in bottle.request.forms and uporabnisko_ime not in uporabniki: uporabnik = Uporabnik(uporabnisko_ime, zasifrirano_geslo, ZbirkaPredavanj()) uporabniki[uporabnisko_ime] = uporabnik else: uporabnik = uporabniki[uporabnisko_ime] uporabnik.preveri_geslo(zasifrirano_geslo) bottle.response.set_cookie('uporabnisko_ime', uporabnik.uporabnisko_ime, path='/', secret=skrivnost) bottle.redirect('/')
def vpis_post(): zahtevaj_odjavo() ime = bottle.request.forms['uporabnisko_ime'] geslo1 = bottle.request.forms['geslo1'] geslo2 = bottle.request.forms['geslo2'] if geslo1 != geslo2: return bottle.template('html/vpis.html', napaka='Gesli se ne ujemata!', ime=ime) try: uporabnik = Uporabnik(ime) uporabnik.dodaj_v_bazo(geslo1) prijavi_uporabnika(uporabnik) except IntegrityError: return bottle.template('html/vpis.html', napaka='Uporabniško ime že obstaja!', ime=ime)
def prijava_post(): zahtevaj_odjavo() ime = bottle.request.forms['uporabnisko_ime'] geslo = bottle.request.forms['geslo'] try: prijavi_uporabnika(Uporabnik.prijava(ime, geslo)) except LoginError: return bottle.template( 'html/prijava.html', napaka='Uporabniško ime in geslo se ne ujemata!', ime=ime)
def prijava_post(): zahtevaj_odjavo() ime = bottle.request.forms['uporabnisko_ime'] geslo = bottle.request.forms['geslo'] try: uporabnik = Uporabnik.prijava(ime, geslo) bottle.response.set_cookie('uporabnik', ime, path='/', secret=SKRIVNOST) bottle.response.set_cookie('uid', uporabnik.id, path='/', secret=SKRIVNOST) bottle.redirect('/') except LoginError: return bottle.template( 'prijava.html', napaka='Uporabniško ime in geslo se ne ujemata!', ime=ime )
def registracija_post(): uporabnisko_ime = bottle.request.forms.getunicode('uporabnisko_ime') if uporabnisko_ime in uporabniki: return bottle.template('registracija.html', napaka=UPORABNIK_ZE_OBSTAJA) geslo = bottle.request.forms.getunicode('geslo') h = hashlib.blake2b() h.update(geslo.encode(encoding='utf-8')) zasifrirano_geslo = h.hexdigest() uporabnik = Uporabnik(uporabnisko_ime, zasifrirano_geslo, Caj()) uporabniki[uporabnisko_ime] = uporabnik bottle.response.set_cookie('uporabnisko_ime', uporabnik.uporabnisko_ime, path='/', secret=SKRIVNOST) bottle.redirect('/')
def registracija(): uporabnisko_ime = bottle.request.forms.getunicode('uporabnisko_ime') geslo = bottle.request.forms.getunicode('geslo') zasifrirano_geslo = Uporabnik.sifriraj_geslo(geslo) spol = bottle.request.forms.getunicode('spol') visina = bottle.request.forms['visina'] teza = bottle.request.forms['teza'] starost = bottle.request.forms['starost'] postava = Postava(spol, visina, teza, starost) cilj = bottle.request.forms.getunicode('cilj') if Uporabnik.ali_uporabnik_ze_obstaja(uporabnisko_ime): return bottle.template('prijava.html', cilji=CILJI, error="Uporabnik s tem imenom že obstaja") uporabnik = Uporabnik(uporabnisko_ime, zasifrirano_geslo, postava, cilj) uporabnik.shrani_slovar() nastavi_piskotek(uporabnik.uporabnisko_ime) bottle.redirect('/')
def trenutni_uporabnik(): uporabnisko_ime = bottle.request.get_cookie('uporabnisko_ime', secret=skrivnost) if uporabnisko_ime is None: bottle.redirect('/prijava/') return Uporabnik.pridobi_podatke_uporabnika(uporabnisko_ime)
def podatki_uporabnika(uporabnisko_ime): try: return Uporabnik.iz_datoteke(uporabnisko_ime) except FileNotFoundError: return bottle.redirect("/prijava/")
import bottle import random import os import hashlib from model import Inventura, Uporabnik imenik_s_podatki = 'uporabniki' uporabniki = {} skrivnost = 'TO JE ENA HUDA SKRIVNOST' if not os.path.isdir(imenik_s_podatki): os.mkdir(imenik_s_podatki) for ime_datoteke in os.listdir(imenik_s_podatki): uporabnik = Uporabnik.nalozi_stanje(os.path.join(imenik_s_podatki, ime_datoteke)) uporabniki[uporabnik.uporabnisko_ime] = uporabnik def trenutni_uporabnik(): uporabnisko_ime = bottle.request.get_cookie('uporabnisko_ime', secret=skrivnost) if uporabnisko_ime is None: bottle.redirect('/prijava/') return uporabniki[uporabnisko_ime] def inventura_uporabnika(): return trenutni_uporabnik().inventura def shrani_trenutnega_uporabnika(): uporabnik = trenutni_uporabnik() uporabnik.shrani_stanje(os.path.join('uporabniki', f'{uporabnik.uporabnisko_ime}.json')) @bottle.get('/')
import bottle from datetime import * import random import os import hashlib from model import Uporabnik, ZbirkaPredavanj, Predavanje, Ponovi uporabniki = {} skrivnost = 'TOP SECRET' for ime_datoteke in os.listdir('uporabniki'): uporabnik = Uporabnik.nalozi_stanje(os.path.join('uporabniki', ime_datoteke)) uporabniki[uporabnik.uporabnisko_ime] = uporabnik def trenutni_uporabnik(): uporabnisko_ime = bottle.request.get_cookie('uporabnisko_ime', secret=skrivnost) if uporabnisko_ime is None: bottle.redirect('/prijava/') return uporabniki[uporabnisko_ime] # se ne shranjenemu uporabniku doda novo zbirko, shranjenemu pa vrne svojo zbirko def zbirka_uporabnika(): return trenutni_uporabnik().zbirka def shrani_trenutnega_uporabnika(): uporabnik = trenutni_uporabnik() uporabnik.shrani_stanje(os.path.join('uporabniki', f'{uporabnik.uporabnisko_ime}.json')) @bottle.get('/')
# vklučimo knjižnico, ki nam generira naključna števila import random # vključimo model uporabnika from model import Uporabnik # vkljucimo knjiznico, ki generira datume from datetime import date danasnji_datum = date.today() danasnji_datum = danasnji_datum.strftime("%d_%m_%Y") # zgradimo uporabnika, ki sam prebere datoteko s svojim stanjem uporabnik = Uporabnik() def uvod(uporabnik): naslov = '====Utrjevanje osnovnih računskih operacij za otroke==' print('=' * len(naslov)) print(naslov) print("=" * len(naslov)) prikaz_rezultatov(uporabnik) def kazalo(): poglavja = ['1.Seštevanje', '2.Odštevanje', '3.Množenje', '4.Izhod'] print(poglavja[0]) print(poglavja[1]) print(poglavja[2]) print(poglavja[3])