fix: JSON parsing for user roles and offline counting sync
This commit is contained in:
@@ -24,7 +24,12 @@ export async function POST(req) {
|
|||||||
return Response.json({ error: 'رمز عبور اشتباه است.' }, { status: 401 });
|
return Response.json({ error: 'رمز عبور اشتباه است.' }, { status: 401 });
|
||||||
}
|
}
|
||||||
|
|
||||||
let userRoles = Array.isArray(user.roles) ? user.roles : (user.role === 'ADMIN' ? ['ADMIN'] : ['COUNTER']);
|
let parsedRoles = user.roles;
|
||||||
|
if (typeof parsedRoles === 'string') {
|
||||||
|
try { parsedRoles = JSON.parse(parsedRoles); } catch (e) { parsedRoles = null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
let userRoles = Array.isArray(parsedRoles) ? parsedRoles : (user.role === 'ADMIN' ? ['ADMIN'] : ['COUNTER']);
|
||||||
|
|
||||||
const token = signToken({ id: user.id, username: user.username, name: user.name, orgId: user.orgId, roles: userRoles, role: user.role });
|
const token = signToken({ id: user.id, username: user.username, name: user.name, orgId: user.orgId, roles: userRoles, role: user.role });
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,12 @@ export async function POST(req) {
|
|||||||
where: { id: authenticator.id },
|
where: { id: authenticator.id },
|
||||||
data: { counter: BigInt(verification.authenticationInfo.newCounter) }
|
data: { counter: BigInt(verification.authenticationInfo.newCounter) }
|
||||||
});
|
});
|
||||||
let userRoles = Array.isArray(user.roles) ? user.roles : (user.role === 'ADMIN' ? ['ADMIN'] : ['COUNTER']);
|
let parsedRoles = user.roles;
|
||||||
|
if (typeof parsedRoles === 'string') {
|
||||||
|
try { parsedRoles = JSON.parse(parsedRoles); } catch (e) { parsedRoles = null; }
|
||||||
|
}
|
||||||
|
|
||||||
|
let userRoles = Array.isArray(parsedRoles) ? parsedRoles : (user.role === 'ADMIN' ? ['ADMIN'] : ['COUNTER']);
|
||||||
const token = signToken({ id: user.id, username: user.username, name: user.name, roles: userRoles, role: user.role });
|
const token = signToken({ id: user.id, username: user.username, name: user.name, roles: userRoles, role: user.role });
|
||||||
return NextResponse.json({ verified: true, token, user: { id: user.id, name: user.name, roles: userRoles, role: user.role } });
|
return NextResponse.json({ verified: true, token, user: { id: user.id, name: user.name, roles: userRoles, role: user.role } });
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user