Exemple #1
0
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)
Exemple #2
0
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('/')
Exemple #4
0
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)
Exemple #5
0
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)
Exemple #6
0
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
        )
Exemple #7
0
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('/')
Exemple #8
0
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('/')
Exemple #9
0
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])