

250401 김혜민 로그인정책페이지 수정
@b709f3daed4ab32d653deabb96114aae3adb63be
--- client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
+++ client/views/pages/adm/system/LoginPolicy/LoginPolicy.vue
... | ... | @@ -10,7 +10,8 @@ |
10 | 10 |
</div> |
11 | 11 |
<div open class="form-box"> |
12 | 12 |
<div class="form-box-title"> |
13 |
- <p class="summary-style pl10">기본 정보</p> |
|
13 |
+ <p class="summary-style pl10">기본 정보</p> |
|
14 |
+ <span style="color: red;"> ※ 로그인 정책을 변경하면 전체 사용자가 로그아웃됩니다.</span> |
|
14 | 15 |
</div> |
15 | 16 |
<div class="form-content"> |
16 | 17 |
<div class="gd-12 pl0"> |
... | ... | @@ -18,29 +19,28 @@ |
18 | 19 |
<div class="form-group"> |
19 | 20 |
<div class="check-area"> |
20 | 21 |
<div class="form-check"> |
21 |
- <input type="radio" class="mr5" :value="true" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> |
|
22 |
- <label>허용</label> |
|
22 |
+ <input type="radio" id="allowMultipleLoginY" class="mr5" value="Y" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> |
|
23 |
+ <label for="allowMultipleLoginY">허용</label> |
|
23 | 24 |
</div> |
24 | 25 |
<div class="form-check"> |
25 |
- <input type="radio" class="mr5" :value="false" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> |
|
26 |
- <label>비허용</label> |
|
26 |
+ <input type="radio" id= "allowMultipleLoginN" class="mr5" value="N" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> |
|
27 |
+ <label for="allowMultipleLoginN">비허용</label> |
|
27 | 28 |
</div> |
28 | 29 |
</div> |
29 | 30 |
<!-- <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p>--> |
30 |
- <span style="color: red;"> ※ 로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.</span> |
|
31 | 31 |
</div> |
32 | 32 |
</div> |
33 |
- <div> |
|
33 |
+ <div> |
|
34 | 34 |
<label class="form-title">로그인 방식 설정</label> |
35 | 35 |
<div class="form-group"> |
36 | 36 |
<div class="check-area"> |
37 | 37 |
<div class="form-check"> |
38 |
- <input type="radio" class="mr5" value="J" v-model="lgnMode" @change="saveByLoginMode" /> |
|
39 |
- <label>JWT 방식</label> |
|
38 |
+ <input type="radio" id= "loginModeJ" class="mr5" value="J" v-model="lgnMode" @change="saveByLoginMode" /> |
|
39 |
+ <label for="loginModeJ">JWT 방식</label> |
|
40 | 40 |
</div> |
41 | 41 |
<div class="form-check"> |
42 |
- <input type="radio" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" /> |
|
43 |
- <label>SESSION 방식</label> |
|
42 |
+ <input type="radio" id= "loginModeS" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" /> |
|
43 |
+ <label for="loginModeS">SESSION 방식</label> |
|
44 | 44 |
</div> |
45 | 45 |
</div> |
46 | 46 |
<span class="ml10 gray"> |
... | ... | @@ -57,12 +57,14 @@ |
57 | 57 |
|
58 | 58 |
<script> |
59 | 59 |
import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy' |
60 |
- |
|
61 |
- export default { |
|
60 |
+ import store from "../../../../../views/pages/AppStore"; |
|
61 |
+ export default { |
|
62 | 62 |
data() { |
63 | 63 |
return { |
64 | 64 |
allowMultipleLogin: null, |
65 |
- lgnMode : null |
|
65 |
+ lgnMode : null, |
|
66 |
+ previousLgnMode: null, // 이전 로그인 모드 저장 |
|
67 |
+ previousAllowMultipleLogin: null |
|
66 | 68 |
} |
67 | 69 |
}, |
68 | 70 |
created() { |
... | ... | @@ -79,42 +81,53 @@ |
79 | 81 |
async findAll() { |
80 | 82 |
try { |
81 | 83 |
const res1 = await findAllByLoginPolicy(); |
82 |
- this.allowMultipleLogin = res1.data.data; |
|
83 |
- |
|
84 |
+ this.allowMultipleLogin = res1.data.data === true ? 'Y' : 'N'; |
|
85 |
+ this.previousAllowMultipleLogin = this.allowMultipleLogin; |
|
84 | 86 |
const res2 = await findAllByLoginMode(); |
85 | 87 |
this.lgnMode = res2.data.data; |
86 |
- |
|
88 |
+ this.previousLgnMode = this.lgnMode; // 초기 상태를 저장 |
|
87 | 89 |
} catch (err) { |
88 | 90 |
alert('설정 정보를 불러오는 데 실패했습니다.'); |
89 | 91 |
} |
90 | 92 |
}, |
91 |
- saveByLoginPolicy() { |
|
93 |
+ async saveByLoginPolicy() { |
|
94 |
+ const confirmed = confirm( |
|
95 |
+ '로그인 설정을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?' |
|
96 |
+ ); |
|
97 |
+ if (!confirmed) { |
|
98 |
+ this.allowMultipleLogin = this.previousAllowMultipleLogin; |
|
99 |
+ return; |
|
100 |
+ } |
|
101 |
+ |
|
92 | 102 |
try { |
93 |
- console.log("this.allowMultipleLogin", this.allowMultipleLogin); |
|
94 | 103 |
const loginPolicy = {}; |
95 |
- loginPolicy.allowMultipleLogin = this.allowMultipleLogin ? "Y" : "N"; |
|
96 |
- // await saveByLoginPolicy(loginPolicy); |
|
104 |
+ loginPolicy.allowMultipleLogin = this.allowMultipleLogin; |
|
105 |
+ await saveByLoginPolicy(loginPolicy); |
|
97 | 106 |
alert('중복 로그인 설정이 저장되었습니다.'); |
98 | 107 |
} catch (err) { |
99 | 108 |
alert('중복 로그인 설정 저장 실패'); |
109 |
+ this.allowMultipleLogin = this.previousAllowMultipleLogin; |
|
100 | 110 |
} |
101 | 111 |
}, |
102 |
- saveByLoginMode() { |
|
112 |
+ async saveByLoginMode() { |
|
103 | 113 |
const confirmed = confirm( |
104 | 114 |
'로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?' |
105 | 115 |
); |
106 |
- if (!confirmed) return; |
|
116 |
+ if (!confirmed) { |
|
117 |
+ this.lgnMode = this.previousLgnMode; |
|
118 |
+ return; |
|
119 |
+ } |
|
107 | 120 |
|
108 | 121 |
try { |
109 | 122 |
const loginMode = {}; |
110 | 123 |
loginMode.lgnMode = this.lgnMode; |
111 |
- // await saveByLoginMode(loginMode); |
|
124 |
+ // await saveByLoginMode(loginMode); |
|
112 | 125 |
alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.'); |
113 | 126 |
store.commit("setStoreReset"); |
114 | 127 |
window.location = '/login.page'; |
115 |
- return Promise.reject(refreshError); |
|
116 | 128 |
} catch (err) { |
117 |
- alert('로그인 방식 저장 실패', err); |
|
129 |
+ alert('로그인 방식 저장 실패: ' + (err.response?.data?.message || err.message)); |
|
130 |
+ this.lgnMode = this.previousLgnMode; |
|
118 | 131 |
} |
119 | 132 |
} |
120 | 133 |
} |
Add a comment
Delete comment
Once you delete this comment, you won't be able to recover it. Are you sure you want to delete this comment?