Bug fix: wrong token generated after password update

This commit is contained in:
Douglas Barone 2021-10-26 11:00:13 -04:00
parent 95f46a3357
commit 6ac2fc883d
4 changed files with 27 additions and 26 deletions

View File

@ -19,13 +19,13 @@ class User {
* Initializes the object, since asynchronous tasks can't run in the constructor
* @return {Promise<User>}
*/
async init() {
async init(forceAD = false) {
try {
let user = await prisma.user.findUnique({
where: { sAMAccountName: this.username }
})
if (!user || !user.roles || !user.groups)
if (forceAD || !user || !user.roles || !user.groups)
user = await User.upsertUser(this.username)
else User.upsertUser(this.username)
@ -200,15 +200,16 @@ class User {
})
reject(new Error(err.message))
} else {
User.upsertUser(this.username)
client.unbind(() => {
logSuccess({
message: `Usuário ${this.username} alterou sua senha.`,
data: result,
tags: ['ldap']
User.upsertUser(this.username, true).then(() => {
client.unbind(() => {
logSuccess({
message: `Usuário ${this.username} alterou sua senha.`,
data: result,
tags: ['ldap']
})
})
resolve(User.login(this.username, newPassword))
})
resolve(User.login(this.username, newPassword))
}
}
)
@ -232,8 +233,8 @@ class User {
*
* @return {Object}
*/
static async upsertUser(username) {
const DEBOUNCE_TIME_IN_SECONDS = 350
static async upsertUser(username, forceAD = false) {
const DEBOUNCE_TIME_IN_SECONDS = 30
const oldUserData = await prisma.user.findUnique({
where: { sAMAccountName: username }
@ -242,6 +243,7 @@ class User {
const now = new Date()
if (
!forceAD &&
oldUserData &&
differenceInSeconds(
now,

View File

@ -20,9 +20,8 @@ class AuthDirective extends SchemaDirectiveVisitor {
if (authorizationHeader) {
const token = authorizationHeader.replace('Bearer ', '')
const { sAMAccountName, pwdLastSet } = validateToken(
authorizationHeader
)
const { sAMAccountName, pwdLastSet } =
validateToken(authorizationHeader)
const user = await new User(sAMAccountName).init()

View File

@ -6,7 +6,7 @@ const typeDefs = gql`
basicUser(sAMAccountName: String!): User! @cacheControl(maxAge: 350)
"The authenticated user"
me: User! @auth @cacheControl(maxAge: 30, scope: PRIVATE)
me: User! @auth
"All users matching the criteria"
users(

View File

@ -11,19 +11,19 @@ export default {
title: 'Dashboard',
icon: 'mdi-view-dashboard-outline',
route: { name: 'home' }
},
{
title: 'Crachá Virtual',
icon: 'mdi-badge-account-horizontal',
route: { name: 'user-id' },
role: 'servant'
},
{
title: 'Alterar minha senha',
icon: 'mdi-form-textbox-password',
route: { name: 'update-password' }
}
// {
// title: 'Crachá Virtual',
// icon: 'mdi-badge-account-horizontal',
// route: { name: 'user-id' },
// role: 'servant'
// },
// {
// title: 'Alterar minha senha',
// icon: 'mdi-form-textbox-password',
// route: { name: 'update-password' }
// },
// {
// title: 'Meus dispositivos',
// icon: 'mdi-cellphone-link',
// route: { name: 'my-devices' },