últimas mudanças

This commit is contained in:
2026-06-11 23:59:58 +01:00
parent 3533d3436b
commit 34d7ae8afc
4 changed files with 248 additions and 206 deletions

View File

@@ -93,6 +93,20 @@ class _LoginPageState extends State<LoginPage> {
return;
}
// Se role não existe na Firestore (null), permitir login e criar documento
if (actualRole == null) {
print(
'DEBUG: Role não encontrado na Firestore, criando documento com role selecionado: $selectedRole',
);
try {
await AuthService.createUserRole(uid, selectedRole);
print('DEBUG: Role criado com sucesso');
} catch (e) {
print('DEBUG: Erro ao criar role: $e');
// Continuar mesmo se falhar, pois o usuário já está autenticado
}
}
// Validar se o role selecionado corresponde ao role real
if (actualRole != null && selectedRole != actualRole) {
// Fazer logout imediato antes de mostrar erro
@@ -118,6 +132,9 @@ class _LoginPageState extends State<LoginPage> {
return;
}
// Usar selectedRole se actualRole for null (caso acabamos de criar)
final finalRole = actualRole ?? selectedRole;
// Save session based on remember me preference
await SessionService.saveSession(
rememberMe: _rememberMe,
@@ -137,7 +154,7 @@ class _LoginPageState extends State<LoginPage> {
);
// Redirecionar baseado no role real
if (actualRole == 'teacher') {
if (finalRole == 'teacher') {
context.go('/teacher-dashboard');
} else {
context.go('/student-dashboard');
@@ -523,7 +540,9 @@ class _LoginPageState extends State<LoginPage> {
// Signup link
GestureDetector(
onTap: () {
context.go('/signup');
context.go(
'/signup?role=${widget.selectedRole}',
);
},
child: Text(
'Não tem conta? Criar aqui',