Skip to content

Commit dfa2239

Browse files
kvnkuangdplewissnyk-bot
authored
Fix beforeLogin for users logging in with AuthData (#6872)
* fix beforeLogin * Remove Facebook AccountKit auth (#6870) * Remove Facebook AccountKit auth Account Kit services are no longer available. https://developers.facebook.com/blog/post/2019/09/09/account-kit-services-no-longer-available-starting-march/ https://www.sinch.com/blog/facebook-account-kit-is-closing-down-are-your-apps-covered/ * remove flaky test * fix: upgrade uuid from 8.2.0 to 8.3.0 (#6865) Snyk has created this PR to upgrade uuid from 8.2.0 to 8.3.0. See this package in npm: https://www.npmjs.com/package/uuid See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr Co-authored-by: Diamond Lewis <[email protected]> * fix: package.json & package-lock.json to reduce vulnerabilities (#6864) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-LODASH-590103 Co-authored-by: Diamond Lewis <[email protected]> * fix: upgrade ldapjs from 2.0.0 to 2.1.0 (#6857) Snyk has created this PR to upgrade ldapjs from 2.0.0 to 2.1.0. See this package in npm: https://www.npmjs.com/package/ldapjs See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr Co-authored-by: Diamond Lewis <[email protected]> * fix: upgrade apollo-server-express from 2.15.1 to 2.16.0 (#6851) Snyk has created this PR to upgrade apollo-server-express from 2.15.1 to 2.16.0. See this package in npm: https://www.npmjs.com/package/apollo-server-express See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr Co-authored-by: Diamond Lewis <[email protected]> * fix: upgrade @graphql-tools/stitch from 6.0.12 to 6.0.13 (#6845) Snyk has created this PR to upgrade @graphql-tools/stitch from 6.0.12 to 6.0.13. See this package in npm: https://www.npmjs.com/package/@graphql-tools/stitch See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr Co-authored-by: Diamond Lewis <[email protected]> * fix: upgrade @graphql-tools/utils from 6.0.12 to 6.0.13 (#6846) Snyk has created this PR to upgrade @graphql-tools/utils from 6.0.12 to 6.0.13. See this package in npm: https://www.npmjs.com/package/@graphql-tools/utils See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr Co-authored-by: Diamond Lewis <[email protected]> * [Snyk] Upgrade winston from 3.2.1 to 3.3.2 (#6799) * fix: upgrade winston from 3.2.1 to 3.3.2 Snyk has created this PR to upgrade winston from 3.2.1 to 3.3.2. See this package in NPM: https://www.npmjs.com/package/winston See this project in Snyk: https://app.snyk.io/org/acinader/project/8c1a9edb-c8f5-4dc1-b221-4d6030a323eb?utm_source=github&utm_medium=upgrade-pr * fix tests Co-authored-by: Diamond Lewis <[email protected]> * fix beforeLogin * add test case Co-authored-by: Diamond Lewis <[email protected]> Co-authored-by: Snyk bot <[email protected]>
1 parent 7b13661 commit dfa2239

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

spec/ParseUser.spec.js

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1524,6 +1524,36 @@ describe('Parse.User testing', () => {
15241524
done();
15251525
});
15261526

1527+
it('login with provider should be blockable by beforeLogin even when the user has a attached file', async done => {
1528+
const provider = getMockFacebookProvider();
1529+
Parse.User._registerAuthenticationProvider(provider);
1530+
1531+
let hit = 0;
1532+
Parse.Cloud.beforeLogin(req => {
1533+
hit++;
1534+
if (req.object.get('isBanned')) {
1535+
throw new Error('banned account');
1536+
}
1537+
});
1538+
1539+
const user = await Parse.User._logInWith('facebook');
1540+
const base64 = 'aHR0cHM6Ly9naXRodWIuY29tL2t2bmt1YW5n';
1541+
const file = new Parse.File('myfile.txt', { base64 });
1542+
await file.save();
1543+
await user.save({ isBanned: true, file });
1544+
await Parse.User.logOut();
1545+
1546+
try {
1547+
await Parse.User._logInWith('facebook');
1548+
throw new Error('should not have continued login.');
1549+
} catch (e) {
1550+
expect(e.message).toBe('banned account');
1551+
}
1552+
1553+
expect(hit).toBe(1);
1554+
done();
1555+
});
1556+
15271557
it('logout with provider should call afterLogout trigger', async done => {
15281558
const provider = getMockFacebookProvider();
15291559
Parse.User._registerAuthenticationProvider(provider);

src/RestWrite.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -329,6 +329,10 @@ RestWrite.prototype.runBeforeLoginTrigger = async function(userData) {
329329

330330
// Cloud code gets a bit of extra data for its objects
331331
const extraData = { className: this.className };
332+
333+
// Expand file objects
334+
this.config.filesController.expandFilesInObject(this.config, userData);
335+
332336
const user = triggers.inflate(extraData, userData);
333337

334338
// no need to return a response

0 commit comments

Comments
 (0)