<template>
  <div class="content-zone">
    <div class="content">
      <div class="scroll">
        <div class="title-zone">
          <div class="page-title">
            <p>로그인 정책 설정</p>
          </div>
            <PagiNavigationBar />
        </div>
        <div open class="form-box">
            <div class="form-box-title">
                <p class="summary-style pl10">기본 정보</p>
            </div>
            <div class="form-content">
              <div class="gd-12 pl0">
                  <label class="form-title">중복로그인 설정</label>
                  <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>
                          </div>
                          <div class="form-check">
                            <input type="radio" class="mr5" :value="false" v-model="allowMultipleLogin" @change="saveByLoginPolicy" /> 
                            <label>비허용</label>
                          </div>
                      </div>
                <!--    <p>{{ allowMultipleLogin ? '중복 로그인을 허용하고 있습니다.' : '중복 로그인을 허용하지 않습니다.' }}</p>-->  
                    <span style="color: red;"> ※ 로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.</span>
                  </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>
                          </div>
                          <div class="form-check">
                            <input type="radio" class="mr5" value="S" v-model="lgnMode" @change="saveByLoginMode" /> 
                            <label>SESSION 방식</label>
                          </div>
                        </div>
                        <span class="ml10 gray">
                          현재 로그인 방식은 <strong>{{ loginModeLabel  }}</strong> 입니다.
                        </span>
                      </div>
                </div>
            </div>
        </div>
      </div>
    </div>
  </div>
</template>
  
  <script>
  import { findAllByLoginPolicy, saveByLoginPolicy, findAllByLoginMode, saveByLoginMode } from '../../../../../resources/api/loginPolicy'
  
  export default {
    data() {
      return {
        allowMultipleLogin:  null,
        lgnMode : null
      }
    },
    created() {
      this.findAll();
    },
    mounted() {
    },
    computed: {
      loginModeLabel() {
        return this.lgnMode === 'J' ? 'JWT' : 'SESSION';
      }
    },
    methods: {
        async findAll() {
          try {
            const res1 = await findAllByLoginPolicy();
            this.allowMultipleLogin = res1.data.data;

            const res2 = await findAllByLoginMode();
            this.lgnMode = res2.data.data;
            
          } catch (err) {
            alert('설정 정보를 불러오는 데 실패했습니다.');
          }
        },
        saveByLoginPolicy() {
          try {
            console.log("this.allowMultipleLogin", this.allowMultipleLogin);
            const loginPolicy = {};
            loginPolicy.allowMultipleLogin = this.allowMultipleLogin ? "Y" : "N";
      //      await saveByLoginPolicy(loginPolicy);
            alert('중복 로그인 설정이 저장되었습니다.');
          } catch (err) {
            alert('중복 로그인 설정 저장 실패');
          }
      },
      saveByLoginMode() {
        const confirmed = confirm(
          '로그인 방식을 변경하면 전체 사용자가 로그아웃됩니다.\n계속하시겠습니까?'
        );
        if (!confirmed) return;

        try {
          const loginMode = {};
          loginMode.lgnMode = this.lgnMode;
  //       await saveByLoginMode(loginMode);
          alert('로그인 방식이 변경되었습니다.\n다시 로그인해주세요.');
          store.commit("setStoreReset");
          window.location = '/login.page';
          return Promise.reject(refreshError);
        } catch (err) {
          alert('로그인 방식 저장 실패', err);
        }
      }
    }
  }
  </script>