Przeglądaj źródła

fix login para aceitar cracha do associado

Gustavo Zanatta 1 miesiąc temu
rodzic
commit
d7c6a8a44d

+ 2 - 2
src/composables/useAuth.js

@@ -10,10 +10,10 @@ export const useAuth = () => {
     await permissionStore().fetchScopes();
   };
 
-  const login = async (email, password, tipo) => {
+  const login = async (identifier, password, tipo) => {
     try {
       const response = await api.post("/login", {
-        email,
+        identifier,
         password,
         tipo,
       });

+ 2 - 1
src/i18n/locales/en.json

@@ -231,7 +231,8 @@
     "password_hint": "Minimum 6 characters with uppercase, lowercase and numbers",
     "confirm": "Confirm",
     "back_to_site": "Back to Site",
-    "wrong_type": "User found, but the selected type is incorrect. Please select the correct login type."
+    "wrong_type": "User found, but the selected type is incorrect. Please select the correct login type.",
+    "email_or_badge": "Email or Badge"
   },
   "business": {
     "advertise": "Advertise",

+ 2 - 1
src/i18n/locales/es.json

@@ -232,7 +232,8 @@
     "password_hint": "Mínimo 6 caracteres con mayúsculas, minúsculas y números",
     "confirm": "Confirmar",
     "back_to_site": "Volver al Sitio",
-    "wrong_type": "Usuario encontrado, pero el tipo seleccionado es incorrecto. Seleccione el tipo correcto."
+    "wrong_type": "Usuario encontrado, pero el tipo seleccionado es incorrecto. Seleccione el tipo correcto.",
+    "email_or_badge": "Correo o Credencial"
   },
   "business": {
     "advertise": "Anunciar",

+ 2 - 1
src/i18n/locales/pt.json

@@ -232,7 +232,8 @@
     "password_hint": "Mínimo de 6 caracteres com letras maiúsculas, minúsculas e números",
     "confirm": "Confirmar",
     "back_to_site": "Voltar ao Site",
-    "wrong_type": "Usuário encontrado, mas o tipo selecionado está incorreto. Selecione o login correto."
+    "wrong_type": "Usuário encontrado, mas o tipo selecionado está incorreto. Selecione o login correto.",
+    "email_or_badge": "E-mail ou Crachá"
   },
   "business": {
     "advertise": "Anunciar",

+ 10 - 9
src/pages/login/LoginPage.vue

@@ -33,12 +33,12 @@
           @submit="onSubmit"
         >
           <DefaultInput
-            v-model="form.email"
-            v-model:error="validationErrors.email"
-            type="email"
+            v-model="form.identifier"
+            v-model:error="validationErrors.identifier"
+            :type="isAssociado ? 'text' : 'email'"
             autofocus
-            :label="$t('common.terms.email')"
-            :rules="[inputRules.required, inputRules.email]"
+            :label="isAssociado ? $t('auth.email_or_badge') : $t('common.terms.email')"
+            :rules="isAssociado ? [inputRules.required] : [inputRules.required, inputRules.email]"
           >
             <template #append>
               <q-icon name="mdi-account-outline" color="grey-5" />
@@ -84,7 +84,7 @@
 </template>
 
 <script setup>
-import { ref, onBeforeMount, useTemplateRef } from "vue";
+import { ref, computed, onBeforeMount, useTemplateRef } from "vue";
 import { useQuasar } from "quasar";
 import { useAuth } from "src/composables/useAuth";
 import { useRouter } from "vue-router";
@@ -104,6 +104,7 @@ const store = userStore();
 
 const formRef = useTemplateRef("formRef");
 const selectedTipo = ref("administrador");
+const isAssociado = computed(() => selectedTipo.value === "associado");
 
 const userTypes = [
   { value: "associado",     label: "auth.type.associado",     icon: "mdi-account-outline" },
@@ -128,18 +129,18 @@ const {
 });
 
 const form = ref({
-  email: null,
+  identifier: null,
   password: process.env.PASSWORD ?? null,
 });
 
 const onSubmit = async () => {
-  await submitForm(() => login(form.value.email, form.value.password, selectedTipo.value));
+  await submitForm(() => login(form.value.identifier, form.value.password, selectedTipo.value));
 };
 
 onBeforeMount(() => {
   const savedEmail = $q.cookies.get("email");
   if (savedEmail) {
-    form.value.email = savedEmail;
+    form.value.identifier = savedEmail;
   }
 });
 </script>