@@ -832,12 +832,14 @@ export default class SchemaController {
832
832
833
833
// Validates the base CLP for an operation
834
834
testBaseCLP ( className , aclGroup , operation ) {
835
- if ( ! this . perms [ className ] || ! this . perms [ className ] [ operation ] ) {
835
+ return SchemaController . testBaseCLP ( this . perms [ className ] , aclGroup , operation ) ;
836
+ }
837
+
838
+ static testBaseCLP ( classPermissions , aclGroup , operation ) {
839
+ if ( ! classPermissions || ! classPermissions [ operation ] ) {
836
840
return true ;
837
841
}
838
- const classPerms = this . perms [ className ] ;
839
- const perms = classPerms [ operation ] ;
840
- // Handle the public scenario quickly
842
+ const perms = classPermissions [ operation ] ;
841
843
if ( perms [ '*' ] ) {
842
844
return true ;
843
845
}
@@ -848,19 +850,15 @@ export default class SchemaController {
848
850
return false ;
849
851
}
850
852
851
- // Validates an operation passes class-level-permissions set in the schema
852
- validatePermission ( className , aclGroup , operation ) {
853
-
854
- if ( this . testBaseCLP ( className , aclGroup , operation ) ) {
853
+ static validatePermission ( classPermissions , className , aclGroup , operation ) {
854
+ if ( SchemaController . testBaseCLP ( classPermissions , aclGroup , operation ) ) {
855
855
return Promise . resolve ( ) ;
856
856
}
857
857
858
- if ( ! this . perms [ className ] || ! this . perms [ className ] [ operation ] ) {
858
+ if ( ! classPermissions || ! classPermissions [ operation ] ) {
859
859
return true ;
860
860
}
861
- const classPerms = this . perms [ className ] ;
862
- const perms = classPerms [ operation ] ;
863
-
861
+ const perms = classPermissions [ operation ] ;
864
862
// If only for authenticated users
865
863
// make sure we have an aclGroup
866
864
if ( perms [ 'requiresAuthentication' ] ) {
@@ -888,13 +886,18 @@ export default class SchemaController {
888
886
}
889
887
890
888
// Process the readUserFields later
891
- if ( Array . isArray ( classPerms [ permissionField ] ) && classPerms [ permissionField ] . length > 0 ) {
889
+ if ( Array . isArray ( classPermissions [ permissionField ] ) && classPermissions [ permissionField ] . length > 0 ) {
892
890
return Promise . resolve ( ) ;
893
891
}
894
892
throw new Parse . Error ( Parse . Error . OPERATION_FORBIDDEN ,
895
893
`Permission denied for action ${ operation } on class ${ className } .` ) ;
896
894
}
897
895
896
+ // Validates an operation passes class-level-permissions set in the schema
897
+ validatePermission ( className , aclGroup , operation ) {
898
+ return SchemaController . validatePermission ( this . perms [ className ] , className , aclGroup , operation ) ;
899
+ }
900
+
898
901
// Returns the expected type for a className+key combination
899
902
// or undefined if the schema is not set
900
903
getExpectedType ( className , fieldName ) {
0 commit comments