@@ -505,38 +505,46 @@ module.exports = function() {
505
505
isClientAuthorized : function ( appId , appKey , level , table ) {
506
506
var deferred = q . defer ( ) ;
507
507
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
+ } ) ;
512
542
} 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' ) ;
536
544
}
537
- } , function ( error ) {
538
- deferred . reject ( error ) ;
539
- } ) ;
545
+ } , function ( err ) {
546
+ deferred . reject ( err ) ;
547
+ } )
540
548
541
549
return deferred . promise ;
542
550
} ,
0 commit comments