Skip to content

Instantly share code, notes, and snippets.

@vasekch
Created May 10, 2019 09:12
Show Gist options
  • Save vasekch/86e1ff7edf780ce9e6cdbef4fbdbdb22 to your computer and use it in GitHub Desktop.
Save vasekch/86e1ff7edf780ce9e6cdbef4fbdbdb22 to your computer and use it in GitHub Desktop.
PyLadies jaro 2019 NTK - opakovaci cviceni
'''
Zadani: udelej CLI (command line interface) pro Airbnb
Analyza:
- user - guest: book, manage bookings, pay, chat
- user - host: accept, manage rooms, chat
- user - anonym: sign in, sign up, forgotten password
Navrh:
Zkusime si naimplementovat use case prihlasit - sign in
1. Uzivatel pusti v terminalu program airbnb.py
2. opakuj
2.1 Zadej uzivatelske jmeno
2.2 Zadej heslo
2.3 zkontroluj zadane udaje s databazi pomoci funkce "authentication"
3. platneho uzivatele pust dal do aplikace TODO
Poznamka: Toto je velmi naivni pristup, kdy jsou uzivatele a hesla v programu,
V praxi bychom zadane udaje "saltovali" a "hashovali" a dotazovali se do externi databaze
cteni pro odvazne: https://en.wikipedia.org/wiki/Salt_(cryptography)
'''
# databazi si pro tentokrat udelame jen do promenne
user_db = {
"vasek": "sasek",
"verca": "kralicek"
}
# Vstupem funkce je slovnik uzivatelu a hesel udaje zadane uzivatelem
# NOTE: zde by se misto promenne se vsemi uzivateli mohl predat tzv. descriptor pripojeni k DB
def authentication(db, user_str, password_str):
'''
Tahle funkce vraci True, kdyz je jmeno a heslo
nalezeno v databazi - parametr db, jinak vraci False
'''
vysledek = False
if user_str in db.keys():
if db[user_str] == password_str:
vysledek = True
return vysledek
# nekonecna smycka pro prihlaseni - prerusi se Ctrl+C nebo zadanim platneho hesla.
while True:
user = input("Zadej uz. jmeno: ")
password = input("Zadej heslo: ")
if authentication(user_db, user, password):
# prihlasen
print("Vitej zpet {}!".format(user))
break
else:
# spatne heslo
print("Spatne jmeno, nebo heslo.")
# TODO dodelat zbytek aplikace :)
print('tady bude vyber dovolene, ale zatim neni')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment