Просмотр исходного кода

模态框返回不关闭问题处理;页面输入非数字跳转报错处理;发布完项目查看跳到未审核分类;登录及退出。

dongbw 8 лет назад
Родитель
Сommit
ec2d12f777

+ 38 - 6
donate-console/src/main/java/com/uas/console/donate/controller/SecurityController.java

@@ -11,14 +11,14 @@ import com.uas.sso.SSOConfig;
 import com.uas.sso.SSOHelper;
 import com.uas.sso.SSOToken;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
 import org.springframework.util.StringUtils;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
 import java.io.IOException;
 
 /**
@@ -65,10 +65,42 @@ public class SecurityController extends CommonController {
      *
      * @throws IOException
      */
-    @RequestMapping(value = "/logout", method = RequestMethod.GET)
-    public ModelMap logout() throws IOException {
+    @RequestMapping(value = "/logout", method = RequestMethod.GET, headers = "Accept=application/json")
+    @ResponseStatus(value= HttpStatus.OK)
+    public ModelMap logout(HttpServletRequest request, HttpServletResponse response, HttpSession session) throws IOException {
+        session.invalidate();
         SSOHelper.clearLogin(request, response);
-        return success();
+        SystemSession.clear();
+        String returnUrl = request.getHeader("Referer");
+        boolean cross = SSOHelper.isCrossDomain(request);
+        if (cross) {
+            request.getSession().setAttribute(SSOConfig.SSOReferer, returnUrl);
+            // 跨域情况,需要再次询问账户中心
+            returnUrl = "logout/proxy";
+        }
+        return new ModelMap("content", returnUrl);
+    }
+
+    /**
+     * 获取跳转登录的url
+     *
+     * @param request
+     * @param response
+     * @return
+     * @throws IOException
+     */
+    @RequestMapping(value = "/login/page")
+    @ResponseBody
+    public ModelMap signin(HttpServletRequest request, HttpServletResponse response) throws IOException {
+        request.getSession().setAttribute(SSOConfig.SSOReferer, request.getHeader("Referer"));
+        SSOHelper.clearLogin(request, response);
+        String redirectUrl = SSOHelper.getRedirectRefererLoginUrl(request);
+        boolean cross = SSOHelper.isCrossDomain(request);
+        if (cross) {
+            // 跨域代理界面
+            redirectUrl = "login/proxy";
+        }
+        return new ModelMap("content", redirectUrl);
     }
 
     /**

+ 12 - 5
donate-console/src/main/webapp/WEB-INF/views/index.html

@@ -42,7 +42,7 @@
 <!--</div>-->
 <div class="wrapper">
     <!--顶部导航-->
-    <header class="main-header">
+    <header class="main-header" ng-controller="AuthCtrl">
         <!-- Logo -->
         <a class="logo">
             <span class="logo-mini"><b>UAS</b></span>
@@ -55,10 +55,17 @@
             <div class="navbar-custom-menu" style="padding-right: 2rem">
                 <ul class="nav navbar-nav">
                     <li class="dropdown user user-menu">
-                        <a href="#" class="dropdown-toggle" data-toggle="dropdown">
-                            <span class="hidden-xs">超级管理员</span>
-                            <span style="margin-left: 20px;">退出</span>
-                            <img src="static/images/avatar.jpg" class="user-image">
+                        <a href="#" class="dropdown-toggle">
+                            <span class="hidden-xs" ng-bind="userInfo.name"></span>
+                            <!--<img src="static/images/avatar.jpg" class="user-image">-->
+                        </a>
+                    </li>
+                </ul>
+                <ul class="nav navbar-nav">
+                    <li class="dropdown user user-menu">
+                        <a href="#" class="dropdown-toggle" ng-click="logout()">
+                            <span>退出</span>
+                            <!--<img src="static/images/avatar.jpg" class="user-image">-->
                         </a>
                     </li>
                 </ul>

+ 3 - 3
donate-console/src/main/webapp/resources/js/common/services.js

@@ -172,7 +172,7 @@ define([ 'angular', 'common/utils', 'ngResource'], function(angular, utils, Big)
             			returnUrl: window.location.href
             		}
 				};
-				var logout = $http.get(rootPath + "/logout", config);
+				var logout = $http.get(rootPath + "/sso/logout", config);
 				logout.success(uncacheSession);
 				logout.success(function(data){
 					var pathName = document.location.pathname;
@@ -204,7 +204,7 @@ define([ 'angular', 'common/utils', 'ngResource'], function(angular, utils, Big)
 			},
             redirectSignin: function() {
             	// 获取跳转登录的url
-            	$http.get(rootPath + '/login/page', {
+            	$http.get(rootPath + '/sso/login/page', {
             		params: {
             			returnUrl: window.location.href
             		}
@@ -245,7 +245,7 @@ define([ 'angular', 'common/utils', 'ngResource'], function(angular, utils, Big)
         				'Pragma': 'no-cache'
 					}
 				};
-				var request = $http.get(rootPath + '/user/authentication', config);
+                var request = $http.get(rootPath + '/sso/account', config);
 				request.success(function(data){
 					if(data)
 						cacheSession();

+ 37 - 4
donate-console/src/main/webapp/resources/js/index/app.js

@@ -161,6 +161,41 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
         return url;
     };
 
+    app.controller('AuthCtrl', ['$scope', '$window', 'AuthenticationService', 'toaster', 'BaseService', '$modal', function ($scope, $window, AuthenticationService, toaster, BaseService, $modal) {
+        $scope.isAuthed = AuthenticationService.isAuthed();		//AuthenticationService模块在common/下
+
+        AuthenticationService.getAuthentication().success(function (data) {
+            if (data.content) {
+                $scope.userInfo = data.content;
+            }
+            if (data == null || !data.content) {
+                $scope.isAuthed = false;
+                AuthenticationService.redirectSignin();
+            } else {
+                //跳转到手机号码验证
+//				checkTel($scope.userInfo);
+            }
+        });
+
+        $scope.logout = function () {
+            $modal.open({
+                templateUrl: 'static/view/user/logout.html',
+                controller: 'LogOutCtrl'
+            }).result.then(function (s) {
+                if (s) {
+                    AuthenticationService.logout();
+                }
+            });
+        };
+
+    }]);
+
+    app.controller('LogOutCtrl', ['$scope', '$modalInstance', function ($scope, $modalInstance) {
+        $scope.close = function (confirm) {
+            $modalInstance.close(confirm);
+        };
+    }]);
+
     /**
      * 项目列表
      */
@@ -190,8 +225,6 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
             if ($rootScope.active) {
                 $scope.active = $rootScope.active;
             }
-            console.log($scope.active);
-            console.log($rootScope.active);
             $scope.keyword = '';
 
             /**
@@ -397,7 +430,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                 if (data.error) {
                     toaster.pop('error','操作失败');
                 }
-                loadData();
+                $modalInstance.close();
             }, function(){
 
             });
@@ -412,7 +445,7 @@ define([ 'angularAMD', 'ui.router', 'ui-bootstrap', 'ngLocal', 'ngTable', 'file-
                 if (data.error) {
                     toaster.pop('error', '申请失败,请联系管理员');
                 }
-                loadData();
+                $modalInstance.close();
             }, function(response) {
                 toaster("error", "出现错误");
             });

+ 64 - 0
donate-console/src/main/webapp/resources/view/user/logout.html

@@ -0,0 +1,64 @@
+<style>
+	.modal-content {
+		width: 350px;
+		height: 150px;
+		top: 100px;
+		left: 100px;
+	}
+
+	.modal-title {
+		text-align: left;
+		font-size: 14px;
+	}
+	.modal-body {
+		text-align: center;
+	}
+	.modal-body .tip-content{
+		font-size: 16px;
+		line-height: 49px;
+		margin-top: 5px;
+	}
+	.modal-body .btn {
+		margin: 0 10px;
+		width: 94px;
+		height: 36px;
+		font-size: 14px;
+		display: inline-block;
+		text-align: center;
+		border-radius: 0;
+	}
+	.modal-btn{
+		margin-top: 5px;
+	}
+	.modal-btn .btn-danger{
+		background: #5078cb;
+		border: #5078cb 1px solid;
+	}
+	.modal-btn .btn-default{
+		border: #5078cb 1px solid;
+		color: #5078cb;
+	}
+	.modal-btn .btn:hover{
+		background: #327ebe;
+		color: #fff;
+	}
+	.modal-header{
+		height: 40px;
+	}
+	.modal-body{
+		height: 110px;
+		padding: 0;
+	}
+</style>
+<div class="modal-header">
+	<span class="modal-title">
+		提示
+	</span>
+</div>
+<div class="modal-body">
+	<div class="tip-content">是否确认退出?</div>
+	<div class="modal-btn">
+		<button class="btn btn-danger" ng-click="close(true)">是</button>
+		<button class="btn btn-default" ng-click="close(false)" type="button">否</button>
+	</div>
+</div>

+ 0 - 1
donate-console/src/main/webapp/resources/view/user/organization_register.html

@@ -1 +0,0 @@
-<!-- 机构入驻 -->

+ 1 - 1
donate-console/src/main/webapp/resources/view/user/user_list.html

@@ -1 +1 @@
-<!-- 用户中心 -->
+<!-- 用户列表 -->