Index: /branches/amp_3_7/src/webui/webui/htdocs/new/src/client/app/modules/login/login.controller.js
===================================================================
--- /branches/amp_3_7/src/webui/webui/htdocs/new/src/client/app/modules/login/login.controller.js	(revision 2539)
+++ /branches/amp_3_7/src/webui/webui/htdocs/new/src/client/app/modules/login/login.controller.js	(working copy)
@@ -113,7 +113,7 @@
                                                 if (previous_page && previous_page.url && $rootScope.user_auth && $rootScope.user_auth.username == previous_user) {
                                                     $state.go(previous_page.state, previous_page.params);
                                                 } else {
-                                                    $state.go('index.dashboard');//index.dashboard.sys_statistics
+                                                    $state.go('index.dashboard');
                                                 }
                                             }
                                         } else {
@@ -127,7 +127,7 @@
                                     if (previous_page && previous_page.url) {
                                         $state.go(previous_page.state, previous_page.params);
                                     } else {
-                                        $state.go('index.dashboard');//index.dashboard.sys_statistics
+                                        $state.go('index.dashboard');
                                     }
                                 });
                                 // reset user info
@@ -138,6 +138,7 @@
                                         $rootScope.user_info = res.data.user_info;
                                         localStorageService.setWebStorage("user_info", $rootScope.user_info);
                                         $scope.user = $rootScope.user_info["current_user"];
+                                        getUserRole($scope.user);
                                         // if ($rootScope.user_info["hive_key"] == '1') {
                                         //     $rootScope.allow_config = true;
                                         // } else {
@@ -146,28 +147,19 @@
                                     }
                                 });
 
-                                userMgmtService.getUserRoleInfo(loginData.username).then(function(res) {
-                                    if (res && res.status === 200) {
-                                        if (res.data.length > 0) {
-                                            $rootScope.role_info = res.data[1]['result'];
-                                            localStorageService.setWebStorage("role_info", $rootScope.role_info);
-                                        }
-                                    }
-                                })
-
                                 // reset composer language
                                 cmService.get_composer_language().then(function(res) {
                                     var default_lang = CMSettings.language[0].name;
                                     var language = window.localStorage.lang || default_lang;
                                     if (res && res.status === 200) {
-                                        if (language != res.data['language']) {
+                                        if (language !== res.data['language']) {
                                             cmService.post_composer_language(language).then(function(res) {});
                                         }
                                     }
                                 });
 
                             } else if (error_code === -1) {
-                                if(msg == ""){
+                                if(msg === ""){
                                     $state.go('enable', {enable_passwd: true}, {reload:true});
                                 } else {
                                     loginViewModel.enable_passwd_error = true;
@@ -193,5 +185,31 @@
                   window.location.reload();
                 });
             }
+
+            function getUserRole(current_user) {
+                userMgmtService.getUserRoleInfo(current_user).then(function(res) {
+                    if (res && res.status === 200) {
+                        if (res.data.length > 0) {
+                            try {
+                                $rootScope.role_info = res.data[1]['result'];
+                                localStorageService.setWebStorage("role_info", $rootScope.role_info);
+                                let previous_page = localStorageService.getWebStorage("previous_page");
+                                if (previous_page && previous_page.url) {
+                                    $state.go(previous_page.state, previous_page.params);
+                                } else {
+                                    $state.go('index.dashboard');
+                                }
+                            } catch (e) {
+                                console.log(e);
+                                $state.go('login', {enable_passwd: false}, {reload:true})
+                            }
+                        }
+                    } else {
+                        console.log($filter('T')("Internal server error"));
+                        $state.go('login', {enable_passwd: false}, {reload:true})
+                    }
+                })
+            }
         }
     ]);
+
