File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff 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 ) ;
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments