From 75d46e1c4bd19c7fc63053b28792246bf68f3e28 Mon Sep 17 00:00:00 2001
From: 이민희 <mhlee@maprex.co.kr>
Date: 월, 10 1월 2022 15:29:54 +0900
Subject: [PATCH] 사용자가 로그인시에 등급 또는 부서가 변경되면 세션 만료 시켜야함

---
 src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java  |    6 ++++++
 src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java |   14 +++++++++++++-
 src/main/webapp/scripts/app/common/common.controller.js                    |   12 ++++++++++++
 src/main/webapp/i18n/ko/global.json                                        |    4 ++++
 src/main/java/kr/wisestone/owl/constant/MsgConstants.java                  |    2 ++
 src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties                     |    2 ++
 src/main/webapp/views/common/sidebar.html                                  |    3 +--
 7 files changed, 40 insertions(+), 3 deletions(-)

diff --git a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
index b2f6bc2..7c64dc2 100644
--- a/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
+++ b/src/main/java/kr/wisestone/owl/constant/MsgConstants.java
@@ -221,11 +221,13 @@
     public static final String USER_LEVEL_NOT_EXIST = "USER_LEVEL_NOT_EXIST";   //  �궗�슜�옄 �벑湲됱씠 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String USER_LEVEL_NOT_DELETE = "USER_LEVEL_NOT_DELETE";   // 湲곕낯 �궗�슜�옄 �벑湲됱� �궘�젣�븷�닔 �뾾�뒿�땲�떎.
     public static final String USER_LEVEL_REMOVE_NOT_SELECT = "USER_LEVEL_REMOVE_NOT_SELECT";   // �궘�젣�븷 �궗�슜�옄 �벑湲됱씠 �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String USER_LEVEL_CHANGE = "USER_LEVEL_CHANGE";   // �궗�슜�옄�쓽 �벑湲됱씠 蹂�寃� �릺�뿀�뒿�땲�떎. �떎�떆 濡쒓렇�씤 �빐二쇱꽭�슂.
 
 
     public static final String DEPARTMENT_NOT_EXIST = "DEPARTMENT_NOT_EXIST";   // 遺��꽌媛� 議댁옱�븯吏� �븡�뒿�땲�떎.
     public static final String DEPARTMENT_ALREADY_IN_USE = "DEPARTMENT_ALREADY_IN_USE";   // �꽑�깮�븳 遺��꽌�뒗 �씠誘� �궗�슜�븯怨� �엳�뒿�땲�떎.
     public static final String DEPARTMENT_REMOVE_NOT_SELECT = "DEPARTMENT_REMOVE_NOT_SELECT";   // �궘�젣�븷 遺��꽌媛� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
+    public static final String USER_DEPARTMENT_CHANGE = "USER_DEPARTMENT_CHANGE";   // �궗�슜�옄�쓽 遺��꽌媛� 蹂�寃� �릺�뿀�뒿�땲�떎. �떎�떆 濡쒓렇�씤 �빐二쇱꽭�슂.
 
     public static final String COMPANY_REMOVE_NOT_SELECT = "COMPANY_REMOVE_NOT_SELECT";   // �궘�젣�븷 �뾽泥닿� �꽑�깮�릺吏� �븡�븯�뒿�땲�떎.
     public static final String COMPANYFIELD_NOT_EXIST = "COMPANYFIELD_NOT_EXIST";   // �뾽泥닿� 議댁옱�븯吏� �븡�뒿�땲�떎.
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java
index 33a101a..ef389cb 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserDepartmentServiceImpl.java
@@ -17,6 +17,7 @@
 import kr.wisestone.owl.web.form.UserDepartmentForm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.messaging.simp.SimpMessagingTemplate;
 import org.springframework.stereotype.Service;
 
 import java.util.*;
@@ -29,6 +30,12 @@
 
     @Autowired
     private DepartmentService departmentService;
+
+    @Autowired
+    private UserService userService;
+
+    @Autowired
+    private SimpMessagingTemplate simpMessagingTemplate;
 
     @Override
     protected JpaRepository<UserDepartment, Long> getRepository() {
@@ -73,6 +80,7 @@
     @Override
     public void userDepartmentModify(UserDepartmentForm userDepartmentForm) {
         Long userId = userDepartmentForm.getUserId();
+        User user = this.userService.getUser(userId);
 
         // 湲곗〈 �뜲�씠�꽣 �궘�젣
         this.userDepartmentRepository.removeByUserId(userId);
@@ -86,8 +94,12 @@
 
             list.add(userDepartment);
         }
-
         this.userDepartmentRepository.saveAll(list);
+
+        //  遺��꽌 蹂�寃� �맂 �쑀�� 濡쒓렇�븘�썐 �떆�궎湲�
+        this.simpMessagingTemplate.convertAndSendToUser(user.getAccount(), "/notification/changeUserDepartment", this.messageAccessor.getMessage(MsgConstants.USER_DEPARTMENT_CHANGE));
+        //  �꽭�뀡 �뾽�뜲�씠�듃
+        //SecurityUtils.setUserToSession(user);
     }
 
     @Override
diff --git a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
index d96c484..b192044 100644
--- a/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
+++ b/src/main/java/kr/wisestone/owl/service/impl/UserWorkspaceServiceImpl.java
@@ -126,6 +126,12 @@
             UserLevel userLevel = this.userLevelService.getUserLevel(userWorkspaceForm.getLevelId());
             user.setUserLevel(userLevel);
             userWorkspace.setUser(user);
+
+            //  �벑湲� 蹂�寃� �맂 �쑀�� 濡쒓렇�븘�썐 �떆�궎湲�
+            this.simpMessagingTemplate.convertAndSendToUser(user.getAccount(), "/notification/changeUserLevel", this.messageAccessor.getMessage(MsgConstants.USER_LEVEL_CHANGE));
+
+            //  �꽭�뀡 �뾽�뜲�씠�듃
+            //SecurityUtils.setUserToSession(user);
         }
 
         // 遺��꽌 蹂�寃�
diff --git a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
index 221cca9..41d0054 100644
--- a/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
+++ b/src/main/webapp/WEB-INF/i18n/messages_ko_KR.properties
@@ -159,6 +159,7 @@
 USER_LEVEL_NOT_EXIST = \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC774 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
 USER_LEVEL_NOT_DELETE = \uAE30\uBCF8 \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC740 \uC0AD\uC81C\uD560\uC218 \uC5C6\uC2B5\uB2C8\uB2E4.
 USER_LEVEL_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC0AC\uC6A9\uC790 \uB4F1\uAE09\uC774 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+USER_LEVEL_CHANGE = \uC0AC\uC6A9\uC790\uC758 \uB4F1\uAE09\uC774 \uBCC0\uACBD \uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uB85C\uADF8\uC778 \uD574\uC8FC\uC138\uC694.
 
 EXCEL_NOT_EXTENSION = \uC5D1\uC140 \uD30C\uC77C \uD655\uC7A5\uC790 (xlsx)\uB9CC \uC5C5\uB85C\uB4DC\uAC00 \uAC00\uB2A5\uD569\uB2C8\uB2E4.
 EXCEL_DOWNLOAD_MAX_ROWS_OVER = \uC5D1\uC140 \uB2E4\uC6B4\uB85C\uB4DC\uB294 1.000 \uAC74 \uAE4C\uC9C0\uB9CC \uAC00\uB2A5\uD569\uB2C8\uB2E4. \uAC80\uC0C9 \uC870\uAC74\uC744 \uC0AC\uC6A9\uD558\uC5EC \uC870\uD68C\uB418\uB294 \uBAA9\uB85D\uC744 1,000 \uAC74 \uC774\uD558\uB85C \uBCC0\uACBD\uD558\uC5EC \uB2E4\uC6B4\uB85C\uB4DC\uB97C \uC9C4\uD589\uD574\uC8FC\uC138\uC694.
@@ -206,6 +207,7 @@
 DEPARTMENT_NOT_EXIST = \uBD80\uC11C\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
 DEPARTMENT_ALREADY_IN_USE = \uC120\uD0DD\uD55C \uBD80\uC11C\uB294 \uC774\uBBF8 \uC0AC\uC6A9\uD558\uACE0 \uC788\uC2B5\uB2C8\uB2E4.
 DEPARTMENT_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uBD80\uC11C\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
+USER_DEPARTMENT_CHANGE = \uC0AC\uC6A9\uC790\uC758 \uB4F1\uAE09\uC774 \uBCC0\uACBD \uB418\uC5C8\uC2B5\uB2C8\uB2E4. \uB2E4\uC2DC \uB85C\uADF8\uC778 \uD574\uC8FC\uC138\uC694.
 
 COMPANY_REMOVE_NOT_SELECT = \uC0AD\uC81C\uD560 \uC5C5\uCCB4\uAC00 \uC120\uD0DD\uB418\uC9C0 \uC54A\uC558\uC2B5\uB2C8\uB2E4.
 COMPANYFIELD_NOT_EXIST = \uC5C5\uCCB4\uAC00 \uC874\uC7AC\uD558\uC9C0 \uC54A\uC2B5\uB2C8\uB2E4.
diff --git a/src/main/webapp/i18n/ko/global.json b/src/main/webapp/i18n/ko/global.json
index ceb5650..92a5b7b 100644
--- a/src/main/webapp/i18n/ko/global.json
+++ b/src/main/webapp/i18n/ko/global.json
@@ -827,6 +827,10 @@
         "failedToUpdateParticipatingSessions": "李몄뿬 �꽭�뀡 �뾽�뜲�씠�듃 �떎�뙣",
         "disableParticipationWorkspace": "李몄뿬 �뾽臾� 怨듦컙 鍮꾪솢�꽦�솕 �븣由�",
         "disableParticipationWorkspaceMessage": "�쁽�옱 �씠�슜�븯怨� �엳�뒗 �뾽臾� 怨듦컙�뿉�꽌 �젣�쇅�릺�뿀�뒿�땲�떎.",
+        "changeUserLevel": "�궗�슜�옄 �벑湲� 蹂�寃�",
+        "logoutForLevelChange": "愿�由ъ옄�뿉 �쓽�빐 �벑湲됱씠 蹂�寃쎈릺�뼱 �꽭�뀡�씠 留뚮즺�릺�뿀�뒿�땲�떎. \n �떎�떆 濡쒓렇�씤 �빐二쇱꽭�슂.",
+        "changeUserDepartment": "�궗�슜�옄 遺��꽌 蹂�寃�",
+        "logoutForDepartmentChange": "愿�由ъ옄�뿉 �쓽�빐 遺��꽌媛� 蹂�寃쎈릺�뼱 �꽭�뀡�씠 留뚮즺�릺�뿀�뒿�땲�떎. \n �떎�떆 濡쒓렇�씤 �빐二쇱꽭�슂.",
         "alertsAboutSystem": "�떆�뒪�뀥 �븣由� �젙蹂�",
         "alertSystem": "�떆�뒪�뀥 �븣由�",
         "newAlert": "�깉濡쒖슫 �븣由쇱씠 �솕�뒿�땲�떎.",
diff --git a/src/main/webapp/scripts/app/common/common.controller.js b/src/main/webapp/scripts/app/common/common.controller.js
index f40bcbe..d34e718 100644
--- a/src/main/webapp/scripts/app/common/common.controller.js
+++ b/src/main/webapp/scripts/app/common/common.controller.js
@@ -403,6 +403,18 @@
                             });
                         });
 
+                        //  �궗�슜�옄 愿�由� - �궗�슜�옄 �벑湲� 蹂�寃� �뻽�쓣 �븣
+                        $rootScope.webSocket.client.subscribe('/user/notification/changeUserLevel', function (notification) {
+                            SweetAlert.warning($filter("translate")("common.changeUserLevel"), $filter("translate")("common.logoutForLevelChange"));
+                            $rootScope.$broadcast("logout");
+                        });
+
+                        //  �궗�슜�옄 愿�由� - �궗�슜�옄 遺��꽌 蹂�寃� �뻽�쓣 �븣
+                        $rootScope.webSocket.client.subscribe('/user/notification/changeUserDepartment', function (notification) {
+                            SweetAlert.warning($filter("translate")("common.changeUserDepartment"), $filter("translate")("common.logoutForDepartmentChange"));
+                            $rootScope.$broadcast("logout");
+                        });
+
                         //  李몄뿬 �뾽臾� 怨듦컙 鍮꾪솢�꽦�솕 �븣由� - �빐�떦 �뾽臾� 怨듦컙瑜� 蹂닿퀬 �엳�쓣 �븣
                         $rootScope.webSocket.client.subscribe('/user/notification/workspace-disabled', function (notification) {
                             // edit by zenith at 20200801
diff --git a/src/main/webapp/views/common/sidebar.html b/src/main/webapp/views/common/sidebar.html
index 00ac47a..f864079 100644
--- a/src/main/webapp/views/common/sidebar.html
+++ b/src/main/webapp/views/common/sidebar.html
@@ -266,8 +266,7 @@
         </li>
 
         <li class="sub-header">
-            <span>ISSUE LIST</span>
-            <span class="mt--14">[{{$root.workProject.name}}]</span>
+            <span>ISSUE LIST [{{$root.workProject.name}}]</span>
         </li>
 
         <li>

--
Gitblit v1.8.0