Created
May 10, 2019 09:12
-
-
Save vasekch/86e1ff7edf780ce9e6cdbef4fbdbdb22 to your computer and use it in GitHub Desktop.
PyLadies jaro 2019 NTK - opakovaci cviceni
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
''' | |
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