Show error message received from server side

When an error occurs during authorization, display the error message
received from server side instead hardcoded message.

Partially resolves openbmc/openbmc#2974
Resolves openbmc/openbmc#3024

Tested: Enter invalid username or password and verify error message
Change-Id: I91ca29d5a69e12e12ce490ce3206173de7d41f09
Signed-off-by: Alexander Filippov <a.filippov@yadro.com>
diff --git a/app/common/services/userModel.js b/app/common/services/userModel.js
index f82c1f1..43437c5 100644
--- a/app/common/services/userModel.js
+++ b/app/common/services/userModel.js
@@ -22,8 +22,15 @@
                                 || response.status === undefined)){
                             sessionStorage.setItem('LOGIN_ID', username);
                             callback(true);
+                        }else if(response && response.data && response.data.data
+                                 && response.data.data.description){
+                            callback(false, response.data.data.description);
+                        }else if(response && response.message){
+                            callback(false, response.message);
+                        }else if(error){
+                            callback(false, 'Server unreachable');
                         }else{
-                            callback(false, error);
+                            callback(false, 'Internal error');
                         }
                     });
                 },
diff --git a/app/login/controllers/login-controller.html b/app/login/controllers/login-controller.html
index 805e64a..ec88c0b 100644
--- a/app/login/controllers/login-controller.html
+++ b/app/login/controllers/login-controller.html
@@ -23,8 +23,7 @@
 
                 <input id="login__submit" class="btn-primary submit" type="button" value="Log in" role="button" ng-click="login(host, username, password)" ng-class="{error: error}" ng-disabled="dataService.loading">
 
-                <p class="login__error-msg" role="alert" ng-if="error">Incorrect username or password</p>
-                <p class="login__error-msg" role="alert" ng-if="server_unreachable">Server unreachable</p>
+                <p class="login__error-msg" role="alert" ng-if="error">{{description}}</p>
             </form>
         </div>
     </div>
diff --git a/app/login/controllers/login-controller.js b/app/login/controllers/login-controller.js
index c2ed383..1f87871 100644
--- a/app/login/controllers/login-controller.js
+++ b/app/login/controllers/login-controller.js
@@ -30,7 +30,7 @@
                 };
                 $scope.login = function(host, username, password){
                     $scope.error = false;
-                    $scope.server_unreachable = false;
+                    $scope.description = false;
 
                     if(!username || username == "" ||
                        !password || password == "" ||
@@ -39,15 +39,14 @@
                         return false;
                     }else{
                         $scope.dataService.setHost(host);
-                        userModel.login(username, password, function(status, unreachable){
+                        userModel.login(username, password, function(status, description){
                             if(status){
                                 $scope.$emit('user-logged-in',{});
                                 $window.location.hash = '#/overview/server';
                             }else{
-                                if(unreachable){
-                                   $scope.server_unreachable = true;
-                                }else{
-                                    $scope.error = true;
+                                $scope.error = true;
+                                if(description){
+                                   $scope.description = description;
                                 }
                            };
                         });