ú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',
|
||||
|
||||
@@ -41,12 +41,14 @@ class _SignupPageState extends State<SignupPage> {
|
||||
Future<void> _loadAvailableClasses() async {
|
||||
setState(() => _isLoadingClasses = true);
|
||||
try {
|
||||
print('DEBUG: Loading school_classes from Firestore');
|
||||
final snapshot = await FirebaseFirestore.instance
|
||||
.collection('school_classes')
|
||||
.where('active', isEqualTo: true)
|
||||
.orderBy('year')
|
||||
.orderBy('section')
|
||||
.get();
|
||||
print('DEBUG: Loaded ${snapshot.docs.length} school classes');
|
||||
setState(() {
|
||||
_availableClasses = snapshot.docs.map((doc) {
|
||||
final data = doc.data();
|
||||
@@ -55,6 +57,7 @@ class _SignupPageState extends State<SignupPage> {
|
||||
_isLoadingClasses = false;
|
||||
});
|
||||
} catch (e) {
|
||||
print('DEBUG: Error loading school_classes: $e');
|
||||
setState(() => _isLoadingClasses = false);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user