dundie-rewards icon indicating copy to clipboard operation
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

Open rochacbruno opened this issue 2 years ago • 1 comments

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 usando getpass (aprendemos isso no day 4) ou se achar melhor a senha poderá ser exportada para uma variável de ambiente DUNDIE_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.

rochacbruno avatar Mar 08 '22 14:03 rochacbruno