ifms-pti/web/src/components/ReplacePasswordForm.vue

82 lines
1.9 KiB
Vue
Raw Normal View History

2020-11-06 13:31:28 +00:00
<template>
2020-12-11 22:44:22 +00:00
<v-card :loading="loading" flat outlined class="light-shadow">
2022-03-30 20:10:10 +00:00
<v-card-title class="font-weight-light mb-1">
Alterar senha de {{ studentsOnly ? 'estudante' : 'usuário' }}
2020-11-06 13:31:28 +00:00
</v-card-title>
2022-03-30 20:10:10 +00:00
<v-divider />
2020-11-06 13:31:28 +00:00
<v-card-text>
2022-03-30 20:10:10 +00:00
<UserSelect v-model="username" :students="studentsOnly" />
2020-11-06 13:31:28 +00:00
<NewPasswordFields v-model="newPassword" :suggestion="suggestion" />
<v-btn text color="info" @click="generatePassword"
><v-icon left>mdi-refresh</v-icon>Gerar</v-btn
>
<v-btn :disabled="!username" text color="info" @click="defaultPassword"
><v-icon left>mdi-account-outline</v-icon> Padrão</v-btn
>
<v-alert color="error" :value="!!errors.length" icon="mdi-alert-circle">
<p v-for="(error, index) in errors" :key="index">{{ error }}</p>
</v-alert>
</v-card-text>
<v-divider />
<v-card-actions>
<v-spacer />
<v-btn text large :to="{ name: 'home' }" exact>Cancelar</v-btn>
<v-btn
:disabled="!username || !newPassword"
color="primary"
large
2022-03-30 20:10:10 +00:00
@click="$emit('submit', { username, newPassword })"
2020-11-06 13:31:28 +00:00
>
Trocar a senha
</v-btn>
</v-card-actions>
</v-card>
</template>
<script>
import UserSelect from './UserSelect'
import NewPasswordFields from './NewPasswordFields'
2022-03-30 20:10:10 +00:00
2020-11-06 13:31:28 +00:00
export default {
name: 'ReplacePasswordForm',
2022-03-30 20:10:10 +00:00
2020-11-06 13:31:28 +00:00
components: {
NewPasswordFields,
UserSelect
},
2022-03-30 20:10:10 +00:00
props: {
studentsOnly: {
type: Boolean,
default: false
},
loading: {
type: Boolean,
default: false
},
errors: {
type: Array,
default: () => []
}
},
2020-11-06 13:31:28 +00:00
data: () => ({
username: null,
newPassword: '',
2022-03-30 20:10:10 +00:00
suggestion: ''
2020-11-06 13:31:28 +00:00
}),
methods: {
generatePassword() {
this.suggestion = Math.random().toString(36).slice(-10)
},
defaultPassword() {
this.suggestion = `ifms.${this.username}`
}
}
}
</script>
<style scoped></style>