hmkim 04-01
250401 김혜민 로그인정책페이지 수정
@b709f3daed4ab32d653deabb96114aae3adb63be
client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
--- client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
@@ -10,7 +10,8 @@
         </div>
         <div open class="form-box">
             <div class="form-box-title">
-                <p class="summary-style pl10">기본 정보</p>
+                <p class="summary-style pl10">기본 정보</p> 
+                <span style="color: red;"> ※ 로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</span>
             </div>
             <div class="form-content">
               <div class="gd-12 pl0">
@@ -18,29 +19,28 @@
                   <div class="form-group">
                     <div class="check-area">
                           <div class="form-check">
-                            <input type="radio" class="mr5" :value="true" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> 
-                            <label>허용</label>
+                            <input type="radio" id="allowMultipleLoginY" class="mr5" value="Y" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> 
+                            <label for="allowMultipleLoginY">허용</label>
                           </div>
                           <div class="form-check">
-                            <input type="radio" class="mr5" :value="false" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> 
-                            <label>비허용</label>
+                            <input type="radio" id= "allowMultipleLoginN" class="mr5" value="N" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> 
+                            <label for="allowMultipleLoginN">비허용</label>
                           </div>
                       </div>
                 <!--    <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p>-->  
-                    <span style="color: red;"> ※ 로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.</span>
                   </div>
               </div>
-                <div> 
+                <div>
                     <label class="form-title">로그인 방식 설정</label>
                       <div class="form-group">
                         <div class="check-area">
                           <div class="form-check">
-                            <input type="radio" class="mr5" value="J" v-model="lgnMode" @change="saveByLoginMode" /> 
-                            <label>JWT 방식</label>
+                            <input type="radio" id= "loginModeJ" class="mr5" value="J" v-model="lgnMode" @change="saveByLoginMode" /> 
+                            <label for="loginModeJ">JWT 방식</label>
                           </div>
                           <div class="form-check">
-                            <input type="radio" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" /> 
-                            <label>SESSION 방식</label>
+                            <input type="radio" id= "loginModeS" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" /> 
+                            <label for="loginModeS">SESSION 방식</label>
                           </div>
                         </div>
                         <span class="ml10 gray">
@@ -57,12 +57,14 @@
   
   <script>
   import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy'
-  
-  export default {
+  import store from "../../../../../views/pages/AppStore";
+  export default { 
     data() {
       return {
         allowMultipleLogin:  null,
-        lgnMode : null
+        lgnMode : null,
+        previousLgnMode: null, // 이전 로그인 모드 저장
+        previousAllowMultipleLogin: null
       }
     },
     created() {
@@ -79,42 +81,53 @@
         async findAll() {
           try {
             const res1 = await findAllByLoginPolicy();
-            this.allowMultipleLogin = res1.data.data;
-
+            this.allowMultipleLogin = res1.data.data === true ? 'Y' : 'N';
+            this.previousAllowMultipleLogin = this.allowMultipleLogin;
             const res2 = await findAllByLoginMode();
             this.lgnMode = res2.data.data;
-            
+            this.previousLgnMode = this.lgnMode; // 초기 상태를 저장
           } catch (err) {
             alert('설정 정보를 불러오는 데 실패했습니다.');
           }
         },
-        saveByLoginPolicy() {
+        async saveByLoginPolicy() {
+          const confirmed = confirm(
+          '로그인 설정을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
+        );
+        if (!confirmed) { 
+          this.allowMultipleLogin = this.previousAllowMultipleLogin; 
+          return;
+        }
+
           try {
-            console.log("this.allowMultipleLogin", this.allowMultipleLogin);
             const loginPolicy = {};
-            loginPolicy.allowMultipleLogin = this.allowMultipleLogin ? "Y" : "N";
-      //      await saveByLoginPolicy(loginPolicy);
+            loginPolicy.allowMultipleLogin = this.allowMultipleLogin;
+            await saveByLoginPolicy(loginPolicy);
             alert('중복 로그인 설정이 저장되었습니다.');
           } catch (err) {
             alert('중복 로그인 설정 저장 실패');
+            this.allowMultipleLogin = this.previousAllowMultipleLogin; 
           }
       },
-      saveByLoginMode() {
+      async saveByLoginMode() {
         const confirmed = confirm(
           '로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
         );
-        if (!confirmed) return;
+        if (!confirmed) { 
+          this.lgnMode = this.previousLgnMode; 
+          return;
+        }
 
         try {
           const loginMode = {};
           loginMode.lgnMode = this.lgnMode;
-  //       await saveByLoginMode(loginMode);
+ //         await saveByLoginMode(loginMode);
           alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.');
           store.commit("setStoreReset");
           window.location = '/login.page';
-          return Promise.reject(refreshError);
         } catch (err) {
-          alert('로그인 방식 저장 실패', err);
+          alert('로그인 방식 저장 실패: ' + (err.response?.data?.message || err.message));
+          this.lgnMode = this.previousLgnMode;
         }
       }
     }
Add a comment
List