edit password functionality and page

This commit is contained in:
María
2025-08-14 15:26:33 +02:00
parent 61d96ac328
commit 51f49a2b7d
3 changed files with 32 additions and 8 deletions

8
example copy.env Normal file
View File

@@ -0,0 +1,8 @@
API = 'http://0.0.0.0:8000/'
API_V1 = '/api/v1/'
BASE_URL= $API$API_V1
GOOGLE_CLIENT_ID='1076928279923-s6hdbpcpbeaeqnact5t5kmktrkaipndq.apps.googleusercontent.com'
FACEBOOK_ID='751687992155393'
GOOGLE_MAPS_API_KEY = 'AIzaSyDX_8JveVk4S5cnDcMHijmOO9HGj5OJHmQ'
GOOGLE_ANALYTICS_ID = 'G-QT1WE1L619'

View File

@@ -9,18 +9,21 @@
type="text" type="text"
label-text="Contraseña actual" label-text="Contraseña actual"
required required
@input="form.old_password = $event"
/> />
<FormInput <FormInput
v-model="form.password" v-model="form.password"
type="password" type="password"
label-text="Nueva contraseña" label-text="Nueva contraseña"
required required
@input="form.password = $event"
/> />
<FormInput <FormInput
v-model="form.password2" v-model="form.password2"
type="password" type="password"
label-text="Nueva contraseña" label-text="Nueva contraseña"
required required
@input="form.password2 = $event"
/> />
<small v-if="error" class="error">{{ error }}</small> <small v-if="error" class="error">{{ error }}</small>
<small v-if="success" class="success">{{ success }}</small> <small v-if="success" class="success">{{ success }}</small>
@@ -28,12 +31,15 @@
<SubmitButton text="Actualizar" image-url="" /> <SubmitButton text="Actualizar" image-url="" />
</div> </div>
</form> </form>
{{ form }}
</BCol> </BCol>
</BRow> </BRow>
</BContainer> </BContainer>
</template> </template>
<script> <script>
import { mapState } from 'pinia'
import { useAuthStore } from '@/stores/auth'
export default { export default {
setup() { setup() {
definePageMeta({ definePageMeta({
@@ -53,18 +59,29 @@ export default {
success: null, success: null,
} }
}, },
computed: {
...mapState(useAuthStore, ['id', 'access']),
},
methods: { methods: {
async submitUser() { async submitUser() {
this.error = null this.error = null
this.success = null this.success = null
if (this.form.password === this.form.password2) { if (this.form.password === this.form.password2) {
try { try {
await this.$api.put( const config = useRuntimeConfig()
`/user/change_password/${this.$store.state.auth.id}/`, const userId = this.id
this.form const access = this.access
) await $fetch(`/user/change_password/${userId}/`, {
baseURL: config.public.baseURL,
method: 'PUT',
body: this.form,
headers: {
Authorization: `Bearer ${access}`
}
})
this.success = 'Contraseña cambiada correctamente' this.success = 'Contraseña cambiada correctamente'
} catch { } catch (error) {
console.error('Error cambiando la contraseña:', error)
this.error = 'La contraseña actual no es correcta' this.error = 'La contraseña actual no es correcta'
} }
} else { } else {

View File

@@ -58,12 +58,12 @@ export default {
async fetch() { async fetch() {
const config = useRuntimeConfig() const config = useRuntimeConfig()
try { try {
const response = await $fetch(`/my_user/`, { await $fetch(`/my_user/`, {
baseURL: config.public.baseURL, baseURL: config.public.baseURL,
method: 'GET', method: 'GET',
body: JSON.stringify(this.form), body: JSON.stringify(this.form),
}) })
console.log('User data fetched successfully:', response) //console.log('User data fetched successfully:', response)
} catch (err) { } catch (err) {
console.error('Error fetching user data:', err) console.error('Error fetching user data:', err)
this.error = true this.error = true
@@ -79,7 +79,6 @@ export default {
methods: { methods: {
...mapActions( useAuthStore, ['setUser']), ...mapActions( useAuthStore, ['setUser']),
async submitUser() { async submitUser() {
// TODO: configurar primero el estar logeado (estados, getters) para que peuda coger esa info y actualizarla
this.error = false this.error = false
const config = useRuntimeConfig() const config = useRuntimeConfig()
try { try {