dundie-rewards
dundie-rewards copied to clipboard
Eu como FUNCIONARIO quero que as operações sejam protegidas por senha, impedindo que outro usuário altere minha conta
User Story:
Eu como FUNCIONARIO quero que as operações sejam protegidas por senha, impedindo que outro usuário altere minha conta
Detalhes
Em dundie/models.py
criamos o model User
, todos os funcionários quando criamos usando a função dundie.core.load
automaticamente recebem um password
que é armazeado em User
(table user no sql)
Desafio
Altere o código em dundie/core.py
fazendo com que as operações sejam protegidas por senha, a implementação pode ser feita utilizando uma condicional if
no começo de cada função ou utilizando um decorator
que aprendemos no capitulo sobre funções:
Ex:
def show(...):
if not access_allowed():
raise AuthenticationError("You don't have access, please set your password")
# Ou com decorator
@require_password
def show(...):
Dicas:
- O usuário poderá informar a senha através de um
input
usandogetpass
(aprendemos isso no day 4) ou se achar melhor a senha poderá ser exportada para uma variável de ambienteDUNDIE_USER=michael@dunder... DUNDIE_PASSWORD=548641
- Faça uma query usando o email em cima do model
User
e obtenha o password do usuário - Verifique se o password é = ao informado na variavel de ambiente ou input
- Crie uma Exception
AuthenticationError
para o caso de senha errada.