últimas mudanças
This commit is contained in:
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user