Skip to content

Commit b7b3b25

Browse files
committed
fix: Handle legacy users without ACL in re-fetch fallback
1 parent dca0192 commit b7b3b25

File tree

1 file changed

+34
-24
lines changed

1 file changed

+34
-24
lines changed

src/Routers/UsersRouter.js

Lines changed: 34 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -372,19 +372,24 @@ export class UsersRouter extends ClassesRouter {
372372
user: Parse.Object.fromJSON({ className: '_User', objectId: user.objectId }),
373373
installationId: req.info.installationId,
374374
});
375-
const filteredUserResponse = await rest.get(
376-
req.config,
377-
userAuth,
378-
'_User',
379-
user.objectId,
380-
{},
381-
req.info.clientSDK,
382-
req.info.context
383-
);
384-
if (!filteredUserResponse.results || filteredUserResponse.results.length === 0) {
385-
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'User not found.');
375+
let filteredUser;
376+
try {
377+
const filteredUserResponse = await rest.get(
378+
req.config,
379+
userAuth,
380+
'_User',
381+
user.objectId,
382+
{},
383+
req.info.clientSDK,
384+
req.info.context
385+
);
386+
filteredUser = filteredUserResponse.results?.[0];
387+
} catch {
388+
// re-fetch may fail for legacy users without ACL; fall through
389+
}
390+
if (!filteredUser) {
391+
filteredUser = user;
386392
}
387-
const filteredUser = filteredUserResponse.results[0];
388393
UsersRouter.removeHiddenProperties(filteredUser);
389394
filteredUser.sessionToken = user.sessionToken;
390395
if (authDataResponse) {
@@ -466,19 +471,24 @@ export class UsersRouter extends ClassesRouter {
466471
user: Parse.Object.fromJSON({ className: '_User', objectId: user.objectId }),
467472
installationId: req.info.installationId,
468473
});
469-
const filteredUserResponse = await rest.get(
470-
req.config,
471-
userAuth,
472-
'_User',
473-
user.objectId,
474-
{},
475-
req.info.clientSDK,
476-
req.info.context
477-
);
478-
if (!filteredUserResponse.results || filteredUserResponse.results.length === 0) {
479-
throw new Parse.Error(Parse.Error.OBJECT_NOT_FOUND, 'User not found.');
474+
let filteredUser;
475+
try {
476+
const filteredUserResponse = await rest.get(
477+
req.config,
478+
userAuth,
479+
'_User',
480+
user.objectId,
481+
{},
482+
req.info.clientSDK,
483+
req.info.context
484+
);
485+
filteredUser = filteredUserResponse.results?.[0];
486+
} catch {
487+
// re-fetch may fail for legacy users without ACL; fall through
488+
}
489+
if (!filteredUser) {
490+
filteredUser = user;
480491
}
481-
const filteredUser = filteredUserResponse.results[0];
482492
UsersRouter.removeHiddenProperties(filteredUser);
483493
return { response: filteredUser };
484494
})

0 commit comments

Comments
 (0)