Skip to content

Commit 20e1cf4

Browse files
committed
rename to requireAny and requireAll
1 parent 3d390f5 commit 20e1cf4

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ___
1414
- IMPROVE: Parse Server will from now on be continuously tested against all relevant MongoDB versions (minor versions). Added MongoDB compatibility table to Parse Server docs. [7161](https://github.com/parse-community/parse-server/pull/7161). Thanks to [Manuel Trezza](https://github.com/mtrezza).
1515
- IMPROVE: Optimize queries on classes with pointer permissions. [#7061](https://github.com/parse-community/parse-server/pull/7061). Thanks to [Pedro Diaz](https://github.com/pdiaz)
1616
- FIX: request.context for afterFind triggers. [#7078](https://github.com/parse-community/parse-server/pull/7078). Thanks to [dblythy](https://github.com/dblythy)
17-
- NEW: `requireUserRole` and `requireUserRoles` for Parse Cloud validator. [#7097](https://github.com/parse-community/parse-server/pull/7097). Thanks to [dblythy](https://github.com/dblythy)
17+
- NEW: `requireAnyUserRoles` and `requireAllUserRoles` for Parse Cloud validator. [#7097](https://github.com/parse-community/parse-server/pull/7097). Thanks to [dblythy](https://github.com/dblythy)
1818
- NEW: Added convenience method Parse.Cloud.sendEmail(...) to send email via email adapter in Cloud Code. [#7089](https://github.com/parse-community/parse-server/pull/7089). Thanks to [dblythy](https://github.com/dblythy)
1919
- FIX: Winston Logger interpolating stdout to console [#7114](https://github.com/parse-community/parse-server/pull/7114). Thanks to [dplewis](https://github.com/dplewis)
2020

spec/CloudCode.Validator.spec.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,15 +878,15 @@ describe('cloud validator', () => {
878878
});
879879
});
880880

881-
it('basic validator requireUserRole', async function (done) {
881+
it('basic validator requireAnyUserRoles', async function (done) {
882882
Parse.Cloud.define(
883883
'cloudFunction',
884884
() => {
885885
return true;
886886
},
887887
{
888888
requireUser: true,
889-
requireUserRole: ['Admin'],
889+
requireAnyUserRoles: ['Admin'],
890890
}
891891
);
892892
const user = await Parse.User.signUp('testuser', 'p@ssword');
@@ -905,15 +905,15 @@ describe('cloud validator', () => {
905905
done();
906906
});
907907

908-
it('basic validator requireUserRoles', async function (done) {
908+
it('basic validator requireAllUserRoles', async function (done) {
909909
Parse.Cloud.define(
910910
'cloudFunction',
911911
() => {
912912
return true;
913913
},
914914
{
915915
requireUser: true,
916-
requireUserRoles: ['Admin', 'Admin2'],
916+
requireAllUserRoles: ['Admin', 'Admin2'],
917917
}
918918
);
919919
const user = await Parse.User.signUp('testuser', 'p@ssword');
@@ -935,14 +935,14 @@ describe('cloud validator', () => {
935935
done();
936936
});
937937

938-
it('basic requireUserRoles but no user', async function (done) {
938+
it('basic requireAllUserRoles but no user', async function (done) {
939939
Parse.Cloud.define(
940940
'cloudFunction',
941941
() => {
942942
return true;
943943
},
944944
{
945-
requireUserRoles: ['Admin'],
945+
requireAllUserRoles: ['Admin'],
946946
}
947947
);
948948
try {

src/cloud-code/Parse.Cloud.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -751,7 +751,8 @@ module.exports = ParseCloud;
751751
* @property {Array|function|Any} requireUserKeys.field.options array of options that the field can be, function to validate field, or single value. Throw an error if value is invalid.
752752
* @property {String} requireUserKeys.field.error custom error message if field is invalid.
753753
*
754-
* @property {Array<String>}requireUserRoles If set, array of roles names allowed on request.user to make the request.
754+
* @property {Array<String>}requireAnyUserRoles If set, request.user has to be part of at least one roles name to make the request.
755+
* @property {Array<String>}requireAllUserRoles If set, request.user has to be part all roles name to make the request.
755756
*
756757
* @property {Object|Array<String>} fields if an array of strings, validator will look for keys in request.params, and throw if not provided. If Object, fields to validate. If the trigger is a cloud function, `request.params` will be validated, otherwise `request.object`.
757758
* @property {String} fields.field name of field to validate.

src/triggers.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -641,7 +641,10 @@ async function builtInTriggerValidator(options, request, auth) {
641641
) {
642642
reqUser = request.object;
643643
}
644-
if ((options.requireUser || options.requireUserRole || options.requireUserRoles) && !reqUser) {
644+
if (
645+
(options.requireUser || options.requireAnyUserRoles || options.requireAllUserRoles) &&
646+
!reqUser
647+
) {
645648
throw 'Validation failed. Please login to continue.';
646649
}
647650
if (options.requireMaster && !request.master) {
@@ -732,8 +735,8 @@ async function builtInTriggerValidator(options, request, auth) {
732735
}
733736
}
734737
}
735-
const userRoles = options.requireUserRole;
736-
const requireAllRoles = options.requireUserRoles;
738+
const userRoles = options.requireAnyUserRoles;
739+
const requireAllRoles = options.requireAllUserRoles;
737740
let roles;
738741
if (userRoles || requireAllRoles) {
739742
roles = await auth.getUserRoles();

0 commit comments

Comments
 (0)