Browse Source

fix: only check token_expired in non-public base

pull/2338/head
Wing-Kam Wong 2 years ago
parent
commit
3704b63b9d
  1. 32
      packages/nocodb/src/lib/meta/helpers/ncMetaAclMw.ts

32
packages/nocodb/src/lib/meta/helpers/ncMetaAclMw.ts

@ -25,21 +25,23 @@ export default function(handlerFn, permissionName) {
NcError.unauthorized('Unauthorized access');
}
// check if the token is still valid
const email = req?.session?.passport?.user?.email;
let user =
email &&
(await NocoCache.get(
`${CacheScope.USER}:${email}`,
CacheGetType.TYPE_OBJECT
));
if (!user) {
user = await Noco.ncMeta.metaGet2(null, null, MetaTable.USERS, {
email
});
}
if (user.token_expired) {
NcError.unauthorized('Token Expired. Please login again.');
// check if the token is still valid for non-public base
if (!req?.session?.passport?.user?.isPublicBase) {
const email = req?.session?.passport?.user?.email;
let user =
email &&
(await NocoCache.get(
`${CacheScope.USER}:${email}`,
CacheGetType.TYPE_OBJECT
));
if (!user) {
user = await Noco.ncMeta.metaGet2(null, null, MetaTable.USERS, {
email
});
}
if (user.token_expired) {
NcError.unauthorized('Token Expired. Please login again.');
}
}
next();
}),

Loading…
Cancel
Save