Compare commits
1 Commits
5fe3a36893
...
sifremi-si
| Author | SHA1 | Date | |
|---|---|---|---|
| b5a297e10c |
@ -251,14 +251,4 @@
|
||||
d="M14.3272 17.4867H5.66513C5.33609 17.4867 5.07048 17.7574 5.07048 18.0928C5.07048 18.4281 5.33609 18.6989 5.66513 18.6989H14.3232C14.6522 18.6989 14.9179 18.4281 14.9179 18.0928C14.9179 17.7574 14.6522 17.4867 14.3232 17.4867H14.3272Z"
|
||||
/>
|
||||
</symbol>
|
||||
<symbol id="eyeclose" viewBox="0 0 59 22">
|
||||
<path
|
||||
d="M56.61,11.89l2.55-1.57L52.83.03l-2.55,1.57h0s-11.76,7.25-11.76,7.25c-.94.58-1.91,1.05-2.91,1.43l-2.61.74v.02c-2.43.5-4.94.45-7.36-.14l-1.2-.34c-1.28-.41-2.53-.98-3.72-1.71L7.68.82h0s-1.35-.82-1.35-.82L0,10.28l2.55,1.57,4.76-7.73,6.18,3.81-4.79,7.77,2.55,1.57,4.79-7.77,3.09,1.9c1.15.71,2.35,1.28,3.58,1.74l-2.48,8.78,2.89.82,2.48-8.76c1.32.27,2.66.41,4.01.41,1.41,0,2.82-.16,4.2-.46l2.46,8.7,2.89-.82-2.48-8.75c1.16-.44,2.3-.99,3.39-1.66l3.12-1.92,4.79,7.77,2.55-1.57-4.79-7.77,6.08-3.75,4.75,7.72Z" />
|
||||
</symbol>
|
||||
<symbol id="eye" viewBox="0 0 51 24">
|
||||
<path
|
||||
d="M25.59,24.58c-3.62,0-7.24-.99-10.47-2.98L0,12.29,15.11,2.98c6.46-3.98,14.48-3.98,20.94,0l15.11,9.31-15.11,9.31c-3.23,1.99-6.85,2.98-10.47,2.98ZM5.72,12.29l10.97,6.75c5.49,3.38,12.31,3.38,17.8,0l10.97-6.75-10.97-6.75c-5.49-3.38-12.31-3.38-17.8,0l-10.97,6.75Z" />
|
||||
<path
|
||||
d="M25.59,21.71c-5.19,0-9.42-4.23-9.42-9.42S20.39,2.87,25.59,2.87s9.42,4.23,9.42,9.42-4.23,9.42-9.42,9.42ZM25.59,5.87c-3.54,0-6.42,2.88-6.42,6.42s2.88,6.42,6.42,6.42,6.42-2.88,6.42-6.42-2.88-6.42-6.42-6.42Z" />
|
||||
</symbol>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 44 KiB After Width: | Height: | Size: 43 KiB |
@ -454,7 +454,6 @@ label {
|
||||
flex-wrap: wrap;
|
||||
width: 100%;
|
||||
padding: 2px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
label>span {
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
</span>
|
||||
<input
|
||||
:value="modelValue"
|
||||
:type="inputType"
|
||||
:type="type"
|
||||
:placeholder="placeholder"
|
||||
:disabled="disabled"
|
||||
@input="OnInput"
|
||||
@ -22,24 +22,12 @@
|
||||
@keyup="OnKeyUp"
|
||||
:class="[
|
||||
invalidText !== undefined && invalidText !== '' ? 'invalid' : '',
|
||||
iclass || '',
|
||||
isPasswordVisible || props.type === 'password' ? 'password-visible' : ''
|
||||
iclass || ''
|
||||
]"
|
||||
:min="min"
|
||||
:max="max"
|
||||
:minlength="minlength"
|
||||
:maxlength="maxlength" />
|
||||
<i
|
||||
class="ico-c ico-password-visible"
|
||||
v-if="props.type === 'password'"
|
||||
@click="PasswordVisibleToggle">
|
||||
<svg>
|
||||
<use
|
||||
:href="
|
||||
'/src/assets/images/icons.svg#' + (isPasswordVisible ? 'eye' : 'eyeclose')
|
||||
"></use>
|
||||
</svg>
|
||||
</i>
|
||||
<span
|
||||
class="form-item-alert"
|
||||
v-if="InvalidMessages.length > 0 && InvalidMessages !== ''">
|
||||
@ -94,18 +82,9 @@
|
||||
'keydown',
|
||||
'keyup'
|
||||
])
|
||||
const isPasswordVisible = ref<boolean>(false)
|
||||
const localValue = ref<any>()
|
||||
const InvalidMessageText = reactive<Record<string, any>>({})
|
||||
|
||||
const inputType = computed(() => {
|
||||
if (props.type !== 'password') {
|
||||
return props.type
|
||||
} else {
|
||||
if (isPasswordVisible.value) return 'text'
|
||||
else return 'password'
|
||||
}
|
||||
})
|
||||
|
||||
const InvalidMessages = computed<string>(() => {
|
||||
let text = ''
|
||||
Object.keys(InvalidMessageText).forEach((k: string, i: number) => {
|
||||
@ -159,9 +138,7 @@
|
||||
emit('update:modelValue', (e.target as HTMLInputElement).value)
|
||||
emit('keyup', e)
|
||||
}
|
||||
const PasswordVisibleToggle = () => {
|
||||
if (props.type === 'password') isPasswordVisible.value = !isPasswordVisible.value
|
||||
}
|
||||
|
||||
watch(
|
||||
() => props.invalidText,
|
||||
() => {
|
||||
@ -174,16 +151,3 @@
|
||||
}
|
||||
)
|
||||
</script>
|
||||
<style scoped>
|
||||
.ico-password-visible {
|
||||
position: absolute;
|
||||
right: 8px;
|
||||
top: 32px;
|
||||
min-width: 32px;
|
||||
min-height: 32px;
|
||||
cursor: pointer;
|
||||
}
|
||||
.password-visible {
|
||||
padding: 8px 40px 8px 8px;
|
||||
}
|
||||
</style>
|
||||
|
||||
@ -48,7 +48,7 @@ axios.interceptors.response.use(
|
||||
const token = sessionStorage.getItem(usersStore.userStorageKeys.TOKEN)
|
||||
if (token !== undefined) {
|
||||
usersStore.ResetUserData()
|
||||
router.push('/login')
|
||||
router.push('/giris')
|
||||
}
|
||||
}
|
||||
return Promise.reject(error)
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
let dt = await dataStore.dataPost('Auth/logout')
|
||||
}
|
||||
usersStore.ResetUserData()
|
||||
router.push('/login')
|
||||
router.push('/giris')
|
||||
}
|
||||
|
||||
const closeProfileMenu = (e: Event) => {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import ForgotPassword from '@/module/auth/views/ForgotPassword.vue'
|
||||
|
||||
export default {
|
||||
path: '/forgot-password',
|
||||
path: '/sifremi-unuttum',
|
||||
name: 'ForgotPassword',
|
||||
component: ForgotPassword,
|
||||
meta: {
|
||||
|
||||
@ -1,11 +1,6 @@
|
||||
import Login from "@/module/auth/routes/login";
|
||||
import Register from "@/module/auth/routes/register";
|
||||
import ForgotPassword from "@/module/auth/routes/forgot-password";
|
||||
|
||||
export default [
|
||||
Login,
|
||||
Register,
|
||||
ForgotPassword
|
||||
]
|
||||
|
||||
import Login from '@/module/auth/routes/login'
|
||||
import Register from '@/module/auth/routes/register'
|
||||
import ForgotPassword from '@/module/auth/routes/forgot-password'
|
||||
import ResetPassword from '@/module/auth/routes/reset-password'
|
||||
|
||||
export default [Login, Register, ForgotPassword, ResetPassword]
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import Login from '@/module/auth/views/Login.vue'
|
||||
|
||||
export default {
|
||||
path: '/login',
|
||||
path: '/giris',
|
||||
name: 'Login',
|
||||
component: Login,
|
||||
meta: {
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
import Register from '@/module/auth/views/Register.vue'
|
||||
|
||||
export default {
|
||||
path: '/register',
|
||||
path: '/kayit-ol',
|
||||
name: 'Register',
|
||||
component: Register,
|
||||
meta: {
|
||||
|
||||
10
src/module/auth/routes/reset-password.ts
Normal file
10
src/module/auth/routes/reset-password.ts
Normal file
@ -0,0 +1,10 @@
|
||||
import ResetPassword from '@/module/auth/views/ResetPassword.vue'
|
||||
|
||||
export default {
|
||||
path: '/sifreyi-sifirla',
|
||||
name: 'ResetPassword',
|
||||
component: ResetPassword,
|
||||
meta: {
|
||||
authpage: true
|
||||
}
|
||||
}
|
||||
@ -1,17 +1,59 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
import { useAuthStore } from '../stores/authStore'
|
||||
import { useAuthValidationStore } from '../validation/authValidationStore'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
import router from '@/router'
|
||||
|
||||
export const useAppService = defineStore('appService', () => {
|
||||
export const useAuthService = defineStore('authService', () => {
|
||||
const dataStore = useDataStore()
|
||||
const authStore = useAuthStore()
|
||||
const authValidationStore = useAuthValidationStore()
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
const GetAAuthRoleList = async () => {
|
||||
if (authStore.rolesList.length === 0) {
|
||||
let data = await dataStore.dataGet('Auth/rolelistesi')
|
||||
authStore.rolesList = data
|
||||
const Login = async () => {
|
||||
if (authValidationStore.LoginFormCheck()) {
|
||||
let login = await dataStore.dataPost('Auth/login', {
|
||||
data: authStore.loginData
|
||||
})
|
||||
Object.assign(authStore.loginData, authStore.safeLoginData)
|
||||
if (login !== 'errorfalse') {
|
||||
await usersStore.SetUserSessionData(login)
|
||||
await usersStore.SetUserData()
|
||||
|
||||
if (usersStore.isPanelUser) {
|
||||
router.push('/')
|
||||
} else {
|
||||
if (usersStore.userStatus === 0 || usersStore.userStatus === null) {
|
||||
router.push('/profil')
|
||||
} else {
|
||||
router.push('/')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
authValidationStore.loginMessageType = 'alert'
|
||||
authValidationStore.loginMessage =
|
||||
'Kullanıcı adı veya şifrenizi yanlış girdiniz. Lütfen kontrol edip tekrar deneyiniz.'
|
||||
authValidationStore.isLoginMessage = true
|
||||
}
|
||||
} else {
|
||||
authValidationStore.isLoginFormValid = true
|
||||
}
|
||||
}
|
||||
|
||||
return {GetAAuthRoleList}
|
||||
const ResetPassword = async () => {
|
||||
if (authValidationStore.ResetPasswordFormCheck()) {
|
||||
let dt: any
|
||||
|
||||
dt = await dataStore.dataPost('ResetPassword', {
|
||||
data: authStore.resetPasswordForm
|
||||
})
|
||||
if (dt !== 'errorfalse') {
|
||||
}
|
||||
} else {
|
||||
authValidationStore.isResetPasswordFormValid = true
|
||||
}
|
||||
}
|
||||
|
||||
return { Login, ResetPassword }
|
||||
})
|
||||
|
||||
@ -1,12 +1,19 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref,reactive } from 'vue'
|
||||
import { ref, reactive } from 'vue'
|
||||
|
||||
export const useAuthStore = defineStore('authStore', () => {
|
||||
const loginData = reactive<Record<string, any>>({ username: '', password: '' })
|
||||
const safeLoginData = reactive<Record<string, any>>({})
|
||||
const rolesList = ref<Record<string, any>[]>([])
|
||||
const resetCheckData = ref<string>('')
|
||||
|
||||
const resetPasswordForm = reactive<Record<string, any>>({
|
||||
newPassword: '',
|
||||
newPasswordRepeat: '',
|
||||
check: ''
|
||||
})
|
||||
|
||||
Object.assign(safeLoginData, loginData)
|
||||
|
||||
return { loginData, safeLoginData, rolesList }
|
||||
return { loginData, safeLoginData, rolesList, resetPasswordForm, resetCheckData }
|
||||
})
|
||||
|
||||
@ -1,46 +0,0 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useAuthStore } from './authStore'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
|
||||
export const useAuthValidationStore = defineStore('authValidationStore', () => {
|
||||
const authStore = useAuthStore()
|
||||
const validationStore = useValidationStore()
|
||||
|
||||
const isFormValid = ref<boolean>(true)
|
||||
const isLoginMessage = ref<boolean>(false)
|
||||
const loginMessageType = ref<string>('success')
|
||||
const loginMessage = ref<string>('')
|
||||
const registerMessage = ref<string>('')
|
||||
const invalidTexts = reactive<Record<string, any>>({})
|
||||
|
||||
const FormCheck = (): boolean => {
|
||||
Object.assign(invalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.loginData,
|
||||
invalidTexts,
|
||||
'username',
|
||||
'Kullanıcı adı alanını doldurmalısınız. Örn: isim@alanadi.td'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.loginData,
|
||||
invalidTexts,
|
||||
'password',
|
||||
'Lütfen şifrenizi giriniz.'
|
||||
)
|
||||
|
||||
isFormValid.value = Object.keys(invalidTexts).length === 0
|
||||
return isFormValid.value
|
||||
}
|
||||
|
||||
return {
|
||||
isFormValid,
|
||||
invalidTexts,
|
||||
isLoginMessage,
|
||||
loginMessageType,
|
||||
loginMessage,
|
||||
registerMessage,
|
||||
FormCheck
|
||||
}
|
||||
})
|
||||
89
src/module/auth/validation/authValidationStore.ts
Normal file
89
src/module/auth/validation/authValidationStore.ts
Normal file
@ -0,0 +1,89 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
import { useAuthStore } from '../stores/authStore'
|
||||
|
||||
export const useAuthValidationStore = defineStore('authValidationStore', () => {
|
||||
const validationStore = useValidationStore()
|
||||
const authStore = useAuthStore()
|
||||
|
||||
const isLoginMessage = ref<boolean>(false)
|
||||
const loginMessageType = ref<string>('success')
|
||||
const loginMessage = ref<string>('')
|
||||
const registerMessage = ref<string>('')
|
||||
|
||||
const loginInvalidTexts = reactive<Record<string, any>>({})
|
||||
const isLoginFormValid = ref<boolean>(true)
|
||||
const resetPasswordFormChanged = ref<boolean>(false)
|
||||
const isResetPasswordFormValid = ref<boolean>(true)
|
||||
const resetPasswordInvalidTexts = reactive<Record<string, any>>({})
|
||||
|
||||
const LoginFormCheck = (): boolean => {
|
||||
Object.assign(loginInvalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.loginData,
|
||||
loginInvalidTexts,
|
||||
'username',
|
||||
'Kullanıcı adı alanını doldurmalısınız. Örn: isim@alanadi.td'
|
||||
)
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.loginData,
|
||||
loginInvalidTexts,
|
||||
'password',
|
||||
'Lütfen şifrenizi giriniz.'
|
||||
)
|
||||
|
||||
isLoginFormValid.value = Object.keys(loginInvalidTexts).length === 0
|
||||
return isLoginFormValid.value
|
||||
}
|
||||
|
||||
const ResetPasswordFormCheck = (): boolean => {
|
||||
Object.assign(resetPasswordInvalidTexts, {})
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.resetPasswordForm,
|
||||
resetPasswordInvalidTexts,
|
||||
'newPassword',
|
||||
'Lütfen yeni şifrenizi giriniz.'
|
||||
)
|
||||
|
||||
validationStore.IsFieldEmpty(
|
||||
authStore.resetPasswordForm,
|
||||
resetPasswordInvalidTexts,
|
||||
'newPasswordRepeat',
|
||||
'Lütfen yeni şifrenizi tekrar giriniz.'
|
||||
)
|
||||
|
||||
if (
|
||||
!validationStore.checkEmpty(authStore.resetPasswordForm.newPassword) &&
|
||||
!validationStore.checkEmpty(authStore.resetPasswordForm.newPasswordRepeat)
|
||||
) {
|
||||
if (
|
||||
authStore.resetPasswordForm.newPassword !==
|
||||
authStore.resetPasswordForm.newPasswordRepeat
|
||||
) {
|
||||
isResetPasswordFormValid.value = false
|
||||
resetPasswordInvalidTexts.newPasswordRepeat =
|
||||
'Şifrenizi tekrar doğru girdiğinizden emin olunuz.'
|
||||
}
|
||||
}
|
||||
|
||||
isResetPasswordFormValid.value = Object.keys(resetPasswordInvalidTexts).length === 0
|
||||
return isResetPasswordFormValid.value
|
||||
}
|
||||
|
||||
return {
|
||||
isLoginMessage,
|
||||
loginMessageType,
|
||||
loginMessage,
|
||||
loginInvalidTexts,
|
||||
registerMessage,
|
||||
isLoginFormValid,
|
||||
resetPasswordFormChanged,
|
||||
isResetPasswordFormValid,
|
||||
resetPasswordInvalidTexts,
|
||||
LoginFormCheck,
|
||||
ResetPasswordFormCheck
|
||||
}
|
||||
})
|
||||
@ -24,7 +24,7 @@
|
||||
</button>
|
||||
</form>
|
||||
<div class="login-nav login-nav-back">
|
||||
<RouterLink to="/login">< Geri</RouterLink>
|
||||
<RouterLink to="/giris">< Geri</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
@ -3,14 +3,12 @@
|
||||
<section class="section-login">
|
||||
<div class="login-header">
|
||||
<div class="logo-header">
|
||||
<img
|
||||
src="@/assets/images/cekilisevi-logo-n.png"
|
||||
alt="MPI Çekiliş Evi"/>
|
||||
<img src="@/assets/images/cekilisevi-logo-n.png" alt="MPI Çekiliş Evi" />
|
||||
</div>
|
||||
<h1>Giriş Yap</h1>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<form action="#" id="login-form" @submit.prevent="Login">
|
||||
<form action="#" id="login-form" @submit.prevent="authService.Login">
|
||||
<form-input
|
||||
type="email"
|
||||
modelKey="username"
|
||||
@ -18,12 +16,11 @@
|
||||
required
|
||||
label="Kullanıcı Adı (e-posta adresi)"
|
||||
placeholder="eposta@alanadi.com"
|
||||
:invalidText="authValidationStore.invalidTexts.username" />
|
||||
:invalidText="authValidationStore.loginInvalidTexts.username" />
|
||||
|
||||
<form-input
|
||||
type="password"
|
||||
label="Şifre"
|
||||
|
||||
v-model="authStore.loginData.password"
|
||||
required />
|
||||
|
||||
@ -32,64 +29,38 @@
|
||||
v-if="authValidationStore.isLoginMessage">
|
||||
<span>{{ authValidationStore.loginMessage }}</span>
|
||||
</div>
|
||||
<button class="button-c button-second button-login" type="submit">
|
||||
<button
|
||||
class="button-c button-second button-login"
|
||||
type="submit"
|
||||
@submit="authService.Login"
|
||||
@click="authService.Login">
|
||||
Giriş Yap
|
||||
</button>
|
||||
</form>
|
||||
<div class="login-nav">
|
||||
<RouterLink to="/forgot-password">Şifremi Unuttum</RouterLink>
|
||||
<RouterLink to="/register">Kaydol</RouterLink>
|
||||
<RouterLink to="/sifremi-unuttum">Şifremi Unuttum</RouterLink>
|
||||
<RouterLink to="/kayit-ol">Kayıt Ol</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</GuestLayout>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onBeforeMount, reactive, ref } from 'vue'
|
||||
import { onBeforeMount } from 'vue'
|
||||
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
const usersStore = useUsersStore()
|
||||
import { useDataStore } from '@/stores/dataStore'
|
||||
const dataStore = useDataStore()
|
||||
import { useAuthStore } from '../stores/authStore'
|
||||
const authStore = useAuthStore()
|
||||
import { useAuthValidationStore } from '../stores/authValidationStore'
|
||||
import { useAuthValidationStore } from '../validation/authValidationStore'
|
||||
const authValidationStore = useAuthValidationStore()
|
||||
import { useAuthService } from '../services/authService'
|
||||
const authService = useAuthService()
|
||||
import router from '@/router'
|
||||
|
||||
import GuestLayout from '@/layouts/GuestLayout.vue'
|
||||
|
||||
const Login = async () => {
|
||||
if (authValidationStore.FormCheck()) {
|
||||
let login = await dataStore.dataPost('Auth/login', {
|
||||
data: authStore.loginData
|
||||
})
|
||||
Object.assign(authStore.loginData, authStore.safeLoginData)
|
||||
if (login !== 'errorfalse') {
|
||||
await usersStore.SetUserSessionData(login)
|
||||
await usersStore.SetUserData()
|
||||
|
||||
if (usersStore.isPanelUser) {
|
||||
router.push('/')
|
||||
} else {
|
||||
if (usersStore.userStatus === 0 || usersStore.userStatus === null) {
|
||||
router.push('/profil')
|
||||
} else {
|
||||
router.push('/')
|
||||
}
|
||||
}
|
||||
} else {
|
||||
authValidationStore.loginMessageType = 'alert'
|
||||
authValidationStore.loginMessage =
|
||||
'Kullanıcı adı veya şifrenizi yanlış girdiniz. Lütfen kontrol edip tekrar deneyiniz.'
|
||||
authValidationStore.isLoginMessage = true
|
||||
}
|
||||
} else {
|
||||
authValidationStore.isFormValid = true
|
||||
}
|
||||
}
|
||||
|
||||
onBeforeMount(() => {
|
||||
if(usersStore.userIsAuth) router.push('/')
|
||||
if (usersStore.userIsAuth) router.push('/')
|
||||
})
|
||||
</script>
|
||||
|
||||
@ -339,7 +339,7 @@
|
||||
</button>
|
||||
</form>
|
||||
<div class="login-nav login-nav-back">
|
||||
<RouterLink to="/login">< Geri</RouterLink>
|
||||
<RouterLink to="/giris">< Geri</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@ -355,7 +355,7 @@
|
||||
const globalDataStore = useGlobalDataStore()
|
||||
import { useValidationStore } from '@/stores/validationStore'
|
||||
const validationStore = useValidationStore()
|
||||
import { useAuthValidationStore } from '../stores/authValidationStore'
|
||||
import { useAuthValidationStore } from '../validation/authValidationStore'
|
||||
const authValidationStore = useAuthValidationStore()
|
||||
import router from '@/router'
|
||||
|
||||
@ -413,7 +413,7 @@
|
||||
'Başarıyla kayıt oldunuz. Kullanıcı adı ve şifreniz ile giriş yapabilirsiniz.'
|
||||
authValidationStore.isLoginMessage = true
|
||||
|
||||
router.push('/login')
|
||||
router.push('/giris')
|
||||
}
|
||||
} else {
|
||||
uyeBilgileriStore.isFormValid = true
|
||||
|
||||
62
src/module/auth/views/ResetPassword.vue
Normal file
62
src/module/auth/views/ResetPassword.vue
Normal file
@ -0,0 +1,62 @@
|
||||
<template>
|
||||
<GuestLayout>
|
||||
<section class="section-login">
|
||||
<div class="login-header">
|
||||
<div class="logo-header">
|
||||
<img src="@/assets/images/cekilisevi-logo-n.png" alt="MPI Çekiliş Evi" />
|
||||
</div>
|
||||
<h1>Şifremi Sıfırla</h1>
|
||||
</div>
|
||||
<div class="section-content">
|
||||
<form id="sifremi-unuttum" @submit.prevent="authService.ResetPassword">
|
||||
<form-input
|
||||
type="password"
|
||||
modelKey="newPassword"
|
||||
v-model="authStore.resetPasswordForm.newPassword"
|
||||
required
|
||||
label="Yeni Şifre"
|
||||
placeholder="Yeni Şifre"
|
||||
:invalidText="authValidationStore.resetPasswordInvalidTexts.newPassword" />
|
||||
<form-input
|
||||
type="password"
|
||||
modelKey="newPasswordRepeat"
|
||||
v-model="authStore.resetPasswordForm.newPasswordRepeat"
|
||||
required
|
||||
label="Yeni Şifre Tekrar"
|
||||
placeholder="Yeni Şifre Tekrar"
|
||||
:invalidText="
|
||||
authValidationStore.resetPasswordInvalidTexts.newPasswordRepeat
|
||||
" />
|
||||
<button
|
||||
class="button-c button-second button-login"
|
||||
type="submit"
|
||||
@submit="authService.ResetPassword"
|
||||
@click="authService.ResetPassword">
|
||||
Şifremi Sıfırla
|
||||
</button>
|
||||
</form>
|
||||
<div class="login-nav login-nav-back">
|
||||
<RouterLink to="/giris">< Geri</RouterLink>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
</GuestLayout>
|
||||
</template>
|
||||
<script setup lang="ts">
|
||||
import { onMounted } from 'vue'
|
||||
import GuestLayout from '@/layouts/GuestLayout.vue'
|
||||
import { useAuthStore } from '../stores/authStore'
|
||||
const authStore = useAuthStore()
|
||||
import { useAuthService } from '../services/authService'
|
||||
const authService = useAuthService()
|
||||
import { useAuthValidationStore } from '../validation/authValidationStore'
|
||||
const authValidationStore = useAuthValidationStore()
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
onMounted(() => {
|
||||
if (route.query && route.query.check !== undefined)
|
||||
authStore.resetCheckData = route.query.check as string
|
||||
else router.push('/giris')
|
||||
})
|
||||
</script>
|
||||
@ -108,9 +108,6 @@
|
||||
}
|
||||
|
||||
const OnIkramiyeChanged = (e: Event, val: any, item: Record<string, any>) => {
|
||||
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.ikramiyeId = item.id
|
||||
|
||||
piyangoDosyaKapamaStore.dosyaKapamaIkramiyeData.tahhutEdilenIkramiye = `
|
||||
${item.cinsi}, ${item.marka}, ${item.model}, (${item.asilTalihliAdedi} adet)
|
||||
`
|
||||
|
||||
@ -12,7 +12,7 @@ export const connectToHub = async () => {
|
||||
|
||||
connection = new signalR.HubConnectionBuilder()
|
||||
.withUrl(import.meta.env.VITE_SOCKET_URL, {
|
||||
withCredentials: false,
|
||||
withCredentials: true,
|
||||
skipNegotiation: true, // WebSocket kullanırken negotiation atlanabilir
|
||||
transport: signalR.HttpTransportType.WebSockets
|
||||
})
|
||||
|
||||
@ -2,13 +2,10 @@ import { defineStore } from 'pinia'
|
||||
import { ref, reactive } from 'vue'
|
||||
import { useGlobalStore } from '@/stores/globalStore'
|
||||
import { usePiyangoStore } from './piyangoStore'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
|
||||
|
||||
export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore', () => {
|
||||
const globalStore = useGlobalStore()
|
||||
const piyangoStore = usePiyangoStore()
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
const baseDosyaKapamaData = reactive<Record<string, any>>({
|
||||
katilimSekli: '',
|
||||
@ -52,8 +49,6 @@ export const usePiyangoDosyaKapamaStore = defineStore('piyangoDosyaKapamaStore',
|
||||
teslimEdilenIkramiye: '',
|
||||
alinmayanIkramiye: '',
|
||||
aciklama: '',
|
||||
duzenleyenId: usersStore.userId,
|
||||
ikramiyeId:'',
|
||||
cekilisId: piyangoStore.selectedLottery
|
||||
})
|
||||
const dosyaKapamaData = reactive<Record<string, any>>({})
|
||||
|
||||
@ -39,7 +39,7 @@ router.beforeEach((to, from) => {
|
||||
const usersStore = useUsersStore()
|
||||
|
||||
if (to.meta.authRequired && !usersStore.userIsAuth && from.name !== 'Login') {
|
||||
router.push('/login')
|
||||
router.push('/giris')
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user