From 2c42e54d590fe9af44610821544283fef9cf83d9 Mon Sep 17 00:00:00 2001 From: Reginaldo Date: Fri, 30 Jun 2023 17:51:05 -0300 Subject: [PATCH] troca de senha no primeiro acesso --- lib/telas/tela_login.dart | 113 ++++++++++++++++++++++++++++++++------ 1 file changed, 97 insertions(+), 16 deletions(-) diff --git a/lib/telas/tela_login.dart b/lib/telas/tela_login.dart index 73d757c..aaa56ad 100644 --- a/lib/telas/tela_login.dart +++ b/lib/telas/tela_login.dart @@ -2,6 +2,7 @@ import 'dart:convert'; import 'package:brasil_fields/brasil_fields.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; +import 'package:intl/intl.dart'; import 'package:rkm_educa_app/Telas/tela_situacao_escolar.dart'; import 'package:rkm_educa_app/modelos/estudante_modelo.dart'; import 'package:rkm_educa_app/telas/tela_seleciona_filho.dart'; @@ -24,10 +25,14 @@ class TelaLogin extends StatefulWidget { class _TelaLoginState extends State { final inputLogin = TextEditingController(text: '402.061.058-43'); - final inputSenha = TextEditingController(text: 'loginapp2023'); + final inputSenha = TextEditingController(); + final inputRepetirSenha = TextEditingController(); bool loading = false; + bool alterarSenha = false; + String tituloSenha = 'Senha'; EstudanteModelo? estudanteModelo; String status = 'VALIDANDO ACESSO...'; + var map; verificacao(){ if(inputLogin.text.isNotEmpty){ @@ -44,32 +49,97 @@ class _TelaLoginState extends State { } } + salvarSenha()async{ + if(inputLogin.text.isNotEmpty && inputSenha.text.isNotEmpty && inputRepetirSenha.text.isNotEmpty){ + if(inputLogin.text.replaceAll('-', '').replaceAll('.', '') != inputSenha.text + && inputLogin.text.replaceAll('-', '').replaceAll('.', '') != inputRepetirSenha.text){ + if(inputSenha.text == inputRepetirSenha.text){ + if(inputSenha.text.length >5){ + loading = true; + alterarSenha = false; + status = 'ALTERANDO SENHA ...'; + setState(() {}); + final url = 'http://192.168.18.2:8000/inserirpais'; + + final response = await http.post( + Uri.parse(url), + body:{ + 'CD_ALUNO' : map['CD_ALUNO'], + 'ALUNO': map['ALUNO'], + 'CPF': map['CPF'], + 'NOME' : map['NOME'], + 'SENHA' : inputSenha.text, + 'PARENTESCO' : map['PARENTESCO'], + 'DATA_CADASTRO' : DateFormat('dd/MM/yyyy HH:mm').format(DateTime.now()), + 'CONDICAO' : 'EDITADO', + 'CIDADE' : map['CIDADE'] + } + ); + + showSnackBar(context, 'Senha Alterada com Sucesso!'.toString().toUpperCase(), Colors.green); + loading = false; + alterarSenha = false; + inputSenha.clear(); + inputRepetirSenha.clear(); + tituloSenha = 'Senha'; + setState(() {}); + }else{ + showSnackBar(context, 'Mínimo deve conter 6 caracteres', Colors.red); + } + }else{ + showSnackBar(context, 'Novas senhas não são iguais', Colors.red); + } + }else{ + showSnackBar(context, 'Nova senha não pode ser igual a anterior', Colors.red); + } + }else{ + showSnackBar(context, 'Preencha todos os campos para avançar', Colors.red); + } + } + conectAPI(String cpf, String senha)async{ + final PrefService _prefService = PrefService(); final url = 'http://192.168.18.2:8000/loginpais?CPF=$cpf'; print(url); final response = await http.get(Uri.parse(url)); - var map = json.decode(response.body); - // print(map); + map = json.decode(response.body); + print(map); if(map==false){ setState(() { loading = false; }); showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); }else{ - if(map['CPF']==cpf && map['SENHA'].toString().toUpperCase()==senha){ - setState(() { - status = 'CARREGANDO ESTUDANTE(S) ...'; - }); - showSnackBar(context, 'Acesso validado', Colors.green); - final PrefService _prefService = PrefService(); - _prefService.createCacheLogin(map['CPF'], map['SENHA']).then((value){ - buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']); - }); + if(map['CONDICAO']!='BLOQUEADO'){ + if(map['CPF'].toString().replaceAll('-', '').replaceAll('.', '')!= map['SENHA']){ + if(map['CPF']==cpf && map['SENHA'].toString().toUpperCase()==senha){ + setState(() { + status = 'CARREGANDO ESTUDANTE(S) ...'; + }); + showSnackBar(context, 'Acesso validado', Colors.green); + _prefService.createCacheLogin(map['CPF'], map['SENHA']).then((value){ + buscaFilhos(map['NOME'],map['PARENTESCO'],map['CIDADE']); + }); + }else{ + setState(() { + loading = false; + }); + _prefService.removeCacheLogin(); + showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); + } + }else{ + alterarSenha = true; + loading = false; + inputSenha.clear(); + tituloSenha = 'Senha Nova'; + setState(() {}); + showSnackBar(context, 'Altere sua senha para continuar', Colors.red); + } }else{ setState(() { loading = false; }); - showSnackBar(context, 'Login não cadastrado e/ou senha incorreta', Colors.red); + showSnackBar(context, 'Seu acesso não está liberado', Colors.red); } } } @@ -163,7 +233,18 @@ class _TelaLoginState extends State { child: InputText( inputFormatters: [], controller: inputSenha, - title: 'Senha', + title: tituloSenha, + obscure: true, + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, + colorBorder: PaletaCores.branco, + ), + ), + !alterarSenha?Container():Container( + width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, + child: InputText( + inputFormatters: [], + controller: inputRepetirSenha, + title: 'Repetir Nova senha', obscure: true, width: Dimensoes.width>900? Dimensoes.width * 0.18:Dimensoes.width*0.7, colorBorder: PaletaCores.branco, @@ -180,12 +261,12 @@ class _TelaLoginState extends State { ):ButtonCustom( widthCustom: 0.7, heightCustom: 0.07, - text: "Entrar", + text: alterarSenha?'Alterar Senha':"Entrar", size: 14.0, colorText: PaletaCores.branco, colorButton: PaletaCores.corPrimaria, colorBorder: PaletaCores.corPrimaria, - onPressed: ()=>verificacao(), + onPressed: ()=>alterarSenha?salvarSenha():verificacao(), ), ], ),