Bug fix: wrong token generated after password update
This commit is contained in:
parent
95f46a3357
commit
6ac2fc883d
|
@ -19,13 +19,13 @@ class User {
|
||||||
* Initializes the object, since asynchronous tasks can't run in the constructor
|
* Initializes the object, since asynchronous tasks can't run in the constructor
|
||||||
* @return {Promise<User>}
|
* @return {Promise<User>}
|
||||||
*/
|
*/
|
||||||
async init() {
|
async init(forceAD = false) {
|
||||||
try {
|
try {
|
||||||
let user = await prisma.user.findUnique({
|
let user = await prisma.user.findUnique({
|
||||||
where: { sAMAccountName: this.username }
|
where: { sAMAccountName: this.username }
|
||||||
})
|
})
|
||||||
|
|
||||||
if (!user || !user.roles || !user.groups)
|
if (forceAD || !user || !user.roles || !user.groups)
|
||||||
user = await User.upsertUser(this.username)
|
user = await User.upsertUser(this.username)
|
||||||
else User.upsertUser(this.username)
|
else User.upsertUser(this.username)
|
||||||
|
|
||||||
|
@ -200,15 +200,16 @@ class User {
|
||||||
})
|
})
|
||||||
reject(new Error(err.message))
|
reject(new Error(err.message))
|
||||||
} else {
|
} else {
|
||||||
User.upsertUser(this.username)
|
User.upsertUser(this.username, true).then(() => {
|
||||||
client.unbind(() => {
|
client.unbind(() => {
|
||||||
logSuccess({
|
logSuccess({
|
||||||
message: `Usuário ${this.username} alterou sua senha.`,
|
message: `Usuário ${this.username} alterou sua senha.`,
|
||||||
data: result,
|
data: result,
|
||||||
tags: ['ldap']
|
tags: ['ldap']
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
resolve(User.login(this.username, newPassword))
|
||||||
})
|
})
|
||||||
resolve(User.login(this.username, newPassword))
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -232,8 +233,8 @@ class User {
|
||||||
*
|
*
|
||||||
* @return {Object}
|
* @return {Object}
|
||||||
*/
|
*/
|
||||||
static async upsertUser(username) {
|
static async upsertUser(username, forceAD = false) {
|
||||||
const DEBOUNCE_TIME_IN_SECONDS = 350
|
const DEBOUNCE_TIME_IN_SECONDS = 30
|
||||||
|
|
||||||
const oldUserData = await prisma.user.findUnique({
|
const oldUserData = await prisma.user.findUnique({
|
||||||
where: { sAMAccountName: username }
|
where: { sAMAccountName: username }
|
||||||
|
@ -242,6 +243,7 @@ class User {
|
||||||
const now = new Date()
|
const now = new Date()
|
||||||
|
|
||||||
if (
|
if (
|
||||||
|
!forceAD &&
|
||||||
oldUserData &&
|
oldUserData &&
|
||||||
differenceInSeconds(
|
differenceInSeconds(
|
||||||
now,
|
now,
|
||||||
|
|
|
@ -20,9 +20,8 @@ class AuthDirective extends SchemaDirectiveVisitor {
|
||||||
if (authorizationHeader) {
|
if (authorizationHeader) {
|
||||||
const token = authorizationHeader.replace('Bearer ', '')
|
const token = authorizationHeader.replace('Bearer ', '')
|
||||||
|
|
||||||
const { sAMAccountName, pwdLastSet } = validateToken(
|
const { sAMAccountName, pwdLastSet } =
|
||||||
authorizationHeader
|
validateToken(authorizationHeader)
|
||||||
)
|
|
||||||
|
|
||||||
const user = await new User(sAMAccountName).init()
|
const user = await new User(sAMAccountName).init()
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ const typeDefs = gql`
|
||||||
basicUser(sAMAccountName: String!): User! @cacheControl(maxAge: 350)
|
basicUser(sAMAccountName: String!): User! @cacheControl(maxAge: 350)
|
||||||
|
|
||||||
"The authenticated user"
|
"The authenticated user"
|
||||||
me: User! @auth @cacheControl(maxAge: 30, scope: PRIVATE)
|
me: User! @auth
|
||||||
|
|
||||||
"All users matching the criteria"
|
"All users matching the criteria"
|
||||||
users(
|
users(
|
||||||
|
|
|
@ -11,19 +11,19 @@ export default {
|
||||||
title: 'Dashboard',
|
title: 'Dashboard',
|
||||||
icon: 'mdi-view-dashboard-outline',
|
icon: 'mdi-view-dashboard-outline',
|
||||||
route: { name: 'home' }
|
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',
|
// title: 'Meus dispositivos',
|
||||||
// icon: 'mdi-cellphone-link',
|
// icon: 'mdi-cellphone-link',
|
||||||
// route: { name: 'my-devices' },
|
// route: { name: 'my-devices' },
|
||||||
|
|
Loading…
Reference in New Issue
Block a user