@@ -1215,4 +1215,57 @@ describe('Class Level Permissions for requiredAuth', () => {
1215
1215
done ( ) ;
1216
1216
} ) ;
1217
1217
} ) ;
1218
+
1219
+ it ( 'required auth test create/get/update/delete with roles (#3753)' , ( done ) => {
1220
+ let user ;
1221
+ config . database . loadSchema ( ) . then ( ( schema ) => {
1222
+ // Just to create a valid class
1223
+ return schema . validateObject ( 'Stuff' , { foo : 'bar' } ) ;
1224
+ } ) . then ( ( schema ) => {
1225
+ return schema . setPermissions ( 'Stuff' , {
1226
+ 'find' : {
1227
+ 'requiresAuthentication' : true ,
1228
+ 'role:admin' : true
1229
+ } ,
1230
+ 'create' : { 'role:admin' : true } ,
1231
+ 'update' : { 'role:admin' : true } ,
1232
+ 'delete' : { 'role:admin' : true } ,
1233
+ 'get' : {
1234
+ 'requiresAuthentication' : true ,
1235
+ 'role:admin' : true
1236
+ }
1237
+ } ) ;
1238
+ } ) . then ( ( ) => {
1239
+ const stuff = new Parse . Object ( 'Stuff' ) ;
1240
+ stuff . set ( 'foo' , 'bar' ) ;
1241
+ return stuff . save ( null , { useMasterKey : true } ) . then ( ( ) => {
1242
+ const query = new Parse . Query ( 'Stuff' ) ;
1243
+ return query . get ( stuff . id ) . then ( ( ) => {
1244
+ done . fail ( 'should not succeed' ) ;
1245
+ } , ( ) => {
1246
+ return new Parse . Query ( 'Stuff' ) . find ( ) ;
1247
+ } ) . then ( ( ) => {
1248
+ done . fail ( 'should not succeed' ) ;
1249
+ } , ( ) => {
1250
+ return Promise . resolve ( ) ;
1251
+ } ) ;
1252
+ } ) . then ( ( ) => {
1253
+ return Parse . User . signUp ( 'user' , 'password' ) . then ( ( signedUpUser ) => {
1254
+ user = signedUpUser ;
1255
+ const query = new Parse . Query ( 'Stuff' ) ;
1256
+ return query . get ( stuff . id , { sessionToken : user . getSessionToken ( ) } ) ;
1257
+ } ) ;
1258
+ } ) ;
1259
+ } ) . then ( ( result ) => {
1260
+ expect ( result . get ( 'foo' ) ) . toEqual ( 'bar' ) ;
1261
+ const query = new Parse . Query ( 'Stuff' ) ;
1262
+ return query . find ( { sessionToken : user . getSessionToken ( ) } ) ;
1263
+ } ) . then ( ( results ) => {
1264
+ expect ( results . length ) . toBe ( 1 ) ;
1265
+ done ( ) ;
1266
+ } , ( e ) => {
1267
+ console . error ( e ) ;
1268
+ done . fail ( e ) ;
1269
+ } ) ;
1270
+ } ) ;
1218
1271
} )
0 commit comments