@@ -640,8 +640,9 @@ var exchange_types;
640
640
// Used for access control
641
641
var user_tags ;
642
642
var user ;
643
- var ac ;
644
- var display ;
643
+
644
+ var ac = new AccessControl ( ) ;
645
+ var display = new DisplayControl ( ) ;
645
646
646
647
var ui_data_model = {
647
648
vhosts : [ ] ,
@@ -651,42 +652,60 @@ var ui_data_model = {
651
652
652
653
// Access control
653
654
654
- function AccessControl ( user , ui_data_model ) {
655
- this . user = user ;
656
- this . user_tags = expand_user_tags ( user . tags ) ;
657
- this . ui_data_model = ui_data_model ;
655
+ function AccessControl ( ) {
658
656
657
+ this . update = function ( user , ui_data_model ) {
658
+ this . user = user ;
659
+ this . user_tags = expand_user_tags ( user . tags ) ;
660
+ this . ui_data_model = ui_data_model ;
661
+ } ;
659
662
this . isMonitoringUser = function ( ) {
660
- return this . user_tags . includes ( "monitoring" ) ;
663
+ if ( this . user_tags )
664
+ return this . user_tags . includes ( "monitoring" ) ;
665
+ else return false ;
661
666
} ;
662
667
this . isAdministratorUser = function ( ) {
663
- return this . user_tags . includes ( "administrator" ) ;
668
+ if ( this . user_tags )
669
+ return this . user_tags . includes ( "administrator" ) ;
670
+ else return false ;
664
671
} ;
665
672
this . isPolicyMakerUser = function ( ) {
666
- return this . user_tags . includes ( "policymaker" ) ;
673
+ if ( this . user_tags )
674
+ return this . user_tags . includes ( "policymaker" ) ;
675
+ else return false ;
667
676
} ;
668
677
this . canAccessVhosts = function ( ) {
669
- return this . ui_data_model . vhosts . length > 0 ;
678
+ if ( this . ui_data_model )
679
+ return this . ui_data_model . vhosts . length > 0 ;
680
+ else return false ;
670
681
} ;
671
682
this . canListNodes = function ( ) {
672
- return this . isMonitoringUser ( ) && this . ui_data_model . nodes . length > 1 ;
683
+ if ( this . ui_data_model )
684
+ return this . isMonitoringUser ( ) && this . ui_data_model . nodes . length > 1 ;
685
+ else return false ;
673
686
} ;
674
687
675
688
} ;
676
689
677
- function DisplayControl ( overview , ui_data_model ) {
678
- this . nodes = ac . canListNodes ( ) && ui_data_model . nodes . length > 1 ;
679
- this . vhosts = ac . canAccessVhosts ( ) ;
680
- this . rabbitmqVersions = false ;
681
- var v = '' ;
682
- for ( var i = 0 ; i < ui_data_model . nodes . length ; i ++ ) {
683
- var v1 = fmt_rabbit_version ( ui_data_model . nodes [ i ] . applications ) ;
684
- if ( v1 != 'unknown' ) {
685
- if ( v != '' && v != v1 ) this . rabbitmqVersions = true ;
686
- v = v1 ;
687
- }
690
+ function DisplayControl ( ) {
691
+ this . nodes = false
692
+ this . vhosts = false
693
+ this . rabbitmqVersions = false
694
+
695
+ this . update = function ( overview , ui_data_model ) {
696
+ this . nodes = ac . canListNodes ( ) && ui_data_model . nodes . length > 1
697
+ this . vhosts = ac . canAccessVhosts ( )
698
+ this . rabbitmqVersions = false
699
+ var v = '' ;
700
+ for ( var i = 0 ; i < ui_data_model . nodes . length ; i ++ ) {
701
+ var v1 = fmt_rabbit_version ( ui_data_model . nodes [ i ] . applications ) ;
702
+ if ( v1 != 'unknown' ) {
703
+ if ( v != '' && v != v1 ) this . rabbitmqVersions = true ;
704
+ v = v1 ;
705
+ }
706
+ }
707
+ this . data = ui_data_model ;
688
708
}
689
- this . data = ui_data_model ;
690
709
691
710
}
692
711
0 commit comments