Skip to content

Commit f70aa18

Browse files
authored
Cleanup for lockdown and more (#2053)
* Allow individual query auth's per public model * Bug fix on Sync as that's always needed with auth Post #2048
1 parent bdf7f21 commit f70aa18

1 file changed

Lines changed: 54 additions & 26 deletions

File tree

libs/modelQuery.js

Lines changed: 54 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,9 @@ var getDefaultPagination = require('../libs/templateHelpers').getDefaultPaginati
1313

1414
var lockdown = process.env.FORCE_BUSY_UPDATEURL_CHECK === 'true';
1515

16+
var authQuery = JSON.parse(process.env.AUTH_QUERY || '{}');
17+
var limitQuery = JSON.parse(process.env.LIMIT_QUERY || '{}');
18+
1619
// Transform a "tri-state" value condition to null for true/false/null stored DB values
1720
// See also #701
1821
var findOrDefaultToNull = function (aQuery, aKey, aValue, aDefaultValue) {
@@ -115,8 +118,7 @@ var parseModelListSearchQuery = function (aModelListQuery, aQuery, aSearchOption
115118
};
116119

117120
var parseScriptSearchQuery = function (aScriptListQuery, aQuery) {
118-
if (process.env.LIMIT_SEARCH_QUERY === 'true'
119-
|| process.env.FORCE_BUSY_UPDATEURL_CHECK === 'true') {
121+
if (lockdown || limitQuery.Script === 'true') {
120122
parseModelListSearchQuery(aScriptListQuery, aQuery, {
121123
partialWordMatchFields: ['name', '_description', 'author' ],
122124
fullWordMatchFields: ['meta.UserScript.include.value', 'meta.UserScript.match.value']
@@ -131,26 +133,47 @@ var parseScriptSearchQuery = function (aScriptListQuery, aQuery) {
131133
exports.parseScriptSearchQuery = parseScriptSearchQuery;
132134

133135
var parseGroupSearchQuery = function (aGroupListQuery, aQuery) {
134-
parseModelListSearchQuery(aGroupListQuery, aQuery, {
135-
partialWordMatchFields: ['name'],
136-
fullWordMatchFields: []
137-
});
136+
if (lockdown || limitQuery.Group === 'true') {
137+
parseModelListSearchQuery(aGroupListQuery, aQuery, {
138+
partialWordMatchFields: ['name'],
139+
fullWordMatchFields: []
140+
});
141+
} else {
142+
parseModelListSearchQuery(aGroupListQuery, aQuery, {
143+
partialWordMatchFields: ['name'],
144+
fullWordMatchFields: []
145+
});
146+
}
138147
};
139148
exports.parseGroupSearchQuery = parseGroupSearchQuery;
140149

141150
var parseDiscussionSearchQuery = function (aDiscussionListQuery, aQuery) {
142-
parseModelListSearchQuery(aDiscussionListQuery, aQuery, {
143-
partialWordMatchFields: ['topic'],
144-
fullWordMatchFields: ['author']
145-
});
151+
if (lockdown || limitQuery.Discussion === 'true') {
152+
parseModelListSearchQuery(aDiscussionListQuery, aQuery, {
153+
partialWordMatchFields: ['topic'],
154+
fullWordMatchFields: ['author']
155+
});
156+
} else {
157+
parseModelListSearchQuery(aDiscussionListQuery, aQuery, {
158+
partialWordMatchFields: ['topic'],
159+
fullWordMatchFields: ['author']
160+
});
161+
}
146162
};
147163
exports.parseDiscussionSearchQuery = parseDiscussionSearchQuery;
148164

149165
var parseCommentSearchQuery = function (aCommentListQuery, aQuery) {
150-
parseModelListSearchQuery(aCommentListQuery, aQuery, {
151-
partialWordMatchFields: ['content'],
152-
fullWordMatchFields: ['author']
153-
});
166+
if (lockdown || limitQuery.Comment === 'true') {
167+
parseModelListSearchQuery(aCommentListQuery, aQuery, {
168+
partialWordMatchFields: ['content'],
169+
fullWordMatchFields: ['author']
170+
});
171+
} else {
172+
parseModelListSearchQuery(aCommentListQuery, aQuery, {
173+
partialWordMatchFields: ['content'],
174+
fullWordMatchFields: ['author']
175+
});
176+
}
154177
};
155178
exports.parseCommentSearchQuery = parseCommentSearchQuery;
156179

@@ -163,10 +186,17 @@ var parseSyncSearchQuery = function (aSyncListQuery, aQuery) {
163186
exports.parseSyncSearchQuery = parseSyncSearchQuery;
164187

165188
var parseUserSearchQuery = function (aUserListQuery, aQuery) {
166-
parseModelListSearchQuery(aUserListQuery, aQuery, {
167-
partialWordMatchFields: ['name'],
168-
fullWordMatchFields: []
169-
});
189+
if (lockdown || limitQuery.User === 'true') {
190+
parseModelListSearchQuery(aUserListQuery, aQuery, {
191+
partialWordMatchFields: ['name'],
192+
fullWordMatchFields: []
193+
});
194+
} else {
195+
parseModelListSearchQuery(aUserListQuery, aQuery, {
196+
partialWordMatchFields: ['name'],
197+
fullWordMatchFields: []
198+
});
199+
}
170200
};
171201
exports.parseUserSearchQuery = parseUserSearchQuery;
172202

@@ -349,7 +379,7 @@ var applyModelListQueryDefaults = function (aModelListQuery, aOptions, aReq, aDe
349379
};
350380

351381
exports.applyCommentListQueryDefaults = function (aCommentListQuery, aOptions, aReq) {
352-
aOptions.authToSearch = lockdown;
382+
aOptions.authToSearch = lockdown || authQuery.Comment === 'true';
353383

354384
applyModelListQueryDefaults(aCommentListQuery, aOptions, aReq, {
355385
defaultSort: 'created',
@@ -367,8 +397,6 @@ exports.applyCommentListQueryDefaults = function (aCommentListQuery, aOptions, a
367397
};
368398

369399
exports.applySyncListQueryDefaults = function (aSyncListQuery, aOptions, aReq) {
370-
aOptions.authToSearch = lockdown;
371-
372400
applyModelListQueryDefaults(aSyncListQuery, aOptions, aReq, {
373401
defaultSort: '-created',
374402
parseSearchQueryFn: parseSyncSearchQuery,
@@ -378,7 +406,7 @@ exports.applySyncListQueryDefaults = function (aSyncListQuery, aOptions, aReq) {
378406
};
379407

380408
exports.applyDiscussionListQueryDefaults = function (aDiscussionListQuery, aOptions, aReq) {
381-
aOptions.authToSearch = lockdown;
409+
aOptions.authToSearch = lockdown || authQuery.Discussion === 'true';
382410

383411
applyModelListQueryDefaults(aDiscussionListQuery, aOptions, aReq, {
384412
defaultSort: '-updated -created',
@@ -389,7 +417,7 @@ exports.applyDiscussionListQueryDefaults = function (aDiscussionListQuery, aOpti
389417
};
390418

391419
exports.applyGroupListQueryDefaults = function (aGroupListQuery, aOptions, aReq) {
392-
aOptions.authToSearch = lockdown;
420+
aOptions.authToSearch = lockdown || authQuery.Group === 'true';
393421

394422
applyModelListQueryDefaults(aGroupListQuery, aOptions, aReq, {
395423
defaultSort: '-rating name',
@@ -408,7 +436,7 @@ var scriptListQueryDefaults = {
408436
};
409437
exports.scriptListQueryDefaults = scriptListQueryDefaults;
410438
exports.applyScriptListQueryDefaults = function (aScriptListQuery, aOptions, aReq) {
411-
aOptions.authToSearch = lockdown;
439+
aOptions.authToSearch = lockdown || authQuery.Script === 'true';
412440

413441
applyModelListQueryDefaults(aScriptListQuery, aOptions, aReq, scriptListQueryDefaults);
414442
};
@@ -425,13 +453,13 @@ var libraryListQueryDefaults = {
425453
};
426454
exports.libraryListQueryDefaults = libraryListQueryDefaults;
427455
exports.applyLibraryListQueryDefaults = function (aLibraryListQuery, aOptions, aReq) {
428-
aOptions.authToSearch = lockdown;
456+
aOptions.authToSearch = lockdown || authQuery.Script === 'true';
429457

430458
applyModelListQueryDefaults(aLibraryListQuery, aOptions, aReq, libraryListQueryDefaults);
431459
};
432460

433461
exports.applyUserListQueryDefaults = function (aUserListQuery, aOptions, aReq) {
434-
aOptions.authToSearch = lockdown;
462+
aOptions.authToSearch = lockdown || authQuery.User === 'true';
435463

436464
applyModelListQueryDefaults(aUserListQuery, aOptions, aReq, {
437465
defaultSort: 'name',

0 commit comments

Comments
 (0)