Descrição da nova funcionalidade
Atualmente, para criar o super user é necessário ter interação com o sistema a pedir email, pass.
Sugeria que fosse possível adicionar um novo comando para que os parâmetros passassem pela linha de comandos diretamente.
Isto implica modificar o app.py
Exemplo do pretendido - (Adicionei o nome como create_superuser_param pois já há o defualt e é só como exepmlo)
@app.cli.command("create_superuser_param")
@click.option("-e", "--email", required=True)
@click.option("-p", "--password", required=True)
@click.option("-c", "--email_confirmed", default=True)
def create_superuser_param(email, password, email_confirmed):
"""
Cria um novo utilizador a partir dos dados inseridos na linha de comandos.
Para criar um novo utilizador é necessário preencher:
- email (deve ser válido e único);
- password;
- email confirmado.
"""
user_email = email.strip()
user_password = password.strip()
email_confirmed = email_confirmed.strip()
if email_confirmed.upper() in ("Y", "YES"):
email_confirmed = True
else:
email_confirmed = False
print("Deve enviar o email de confirmação pelo admin")
# Validar email vazio
if not user_email:
print("Email não pode ser vazio")
return
# Validar formato do email
form = EmailForm(data={"email": user_email})
if not form.validate():
print("Deve inserir um email válido!")
return
# Validar unicidade do email
if controllers.get_user_by_email(user_email):
print("Já existe outro utilizador com esse email!")
return
# Validar password vazia
if not user_password:
print("Senha não pode ser vazia")
return
# Informar quando o email não está confirmado
if not email_confirmed:
print("Deve enviar o email de confirmação pelo admin")
# Criar utilizador
create_user(user_email, user_password, email_confirmed)
print("Novo utilizador criado com sucesso!")
Esta parte poderá ser revista:
email_confirmed = email_confirmed.strip()
if email_confirmed.upper() in ("Y", "YES"):
email_confirmed = True
else:
email_confirmed = False
print("Deve enviar o email de confirmação pelo admin")
Descrição da nova funcionalidade
Atualmente, para criar o super user é necessário ter interação com o sistema a pedir email, pass.
Sugeria que fosse possível adicionar um novo comando para que os parâmetros passassem pela linha de comandos diretamente.
Isto implica modificar o app.py
Exemplo do pretendido - (Adicionei o nome como create_superuser_param pois já há o defualt e é só como exepmlo)
Esta parte poderá ser revista:
email_confirmed = email_confirmed.strip()
if email_confirmed.upper() in ("Y", "YES"):
email_confirmed = True
else:
email_confirmed = False
print("Deve enviar o email de confirmação pelo admin")