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
|
||||
* @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,
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
|
@ -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(
|
||||
|
|
|
@ -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' },
|
||||
|
|
Loading…
Reference in New Issue
Block a user