Skip to content

Commit e5cc85e

Browse files
committed
isClientAuthorized fixes
1 parent 766dd48 commit e5cc85e

File tree

1 file changed

+38
-30
lines changed

1 file changed

+38
-30
lines changed

services/app.js

+38-30
Original file line numberDiff line numberDiff line change
@@ -505,38 +505,46 @@ module.exports = function() {
505505
isClientAuthorized : function(appId,appKey,level,table){
506506
var deferred = q.defer();
507507
var self = this
508-
self.isMasterKey(appId, appKey).then(function(isMasterKey) {
509-
// resolve if masterKey
510-
if(isMasterKey){
511-
deferred.resolve(true)
508+
self.isKeyValid(appId, appKey).then(function(isValidKey){
509+
if(isValidKey){
510+
self.isMasterKey(appId, appKey).then(function(isMasterKey) {
511+
// resolve if masterKey
512+
if(isMasterKey){
513+
deferred.resolve(true)
514+
} else {
515+
// else check with client keys acc to auth level
516+
// levels = table level or app level
517+
// for app level check in app settings , for table level check in table schema
518+
if(level === 'table'){
519+
if(table) {
520+
deferred.resolve(!!table.isEditableByClientKey)
521+
} else deferred.resolve(false);
522+
} else {
523+
self.getAllSettings(appId).then(function(settings){
524+
if(settings){
525+
// check for clientkey flag in genral settings
526+
let generalSetting = settings.filter((function(x){
527+
return x.category === 'general'
528+
}))
529+
if(generalSetting[0]){
530+
deferred.resolve(!!generalSetting[0].settings.isTableEditableByClientKey)
531+
} else deferred.resolve(false);
532+
} else deferred.resolve(false);
533+
534+
}, function(error) {
535+
deferred.reject(error);
536+
});
537+
}
538+
}
539+
}, function(error) {
540+
deferred.reject(error);
541+
});
512542
} else {
513-
// else check with client keys acc to auth level
514-
// levels = table level or app level
515-
// for app level check in app settings , for table level check in table schema
516-
if(level === 'table'){
517-
if(table) {
518-
deferred.resolve(!!table.isEditableByClientKey)
519-
} else deferred.resolve(false);
520-
} else {
521-
self.getAllSettings(appId).then(function(settings){
522-
if(settings){
523-
// check for clientkey flag in genral settings
524-
let generalSetting = settings.filter((function(x){
525-
return x.category === 'general'
526-
}))
527-
if(generalSetting[0]){
528-
deferred.resolve(!!generalSetting[0].settings.isTableEditableByClientKey)
529-
} else deferred.resolve(false);
530-
} else deferred.resolve(false);
531-
532-
}, function(error) {
533-
deferred.reject(error);
534-
});
535-
}
543+
deferred.reject('Unauthorized');
536544
}
537-
}, function(error) {
538-
deferred.reject(error);
539-
});
545+
},function(err){
546+
deferred.reject(err);
547+
})
540548

541549
return deferred.promise;
542550
},

0 commit comments

Comments
 (0)