코드관리 작업중
parent
c625a05ae7
commit
46fb96f291
|
|
@ -60,7 +60,7 @@ public class SecurityConfig{
|
||||||
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
protected SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
|
||||||
http.authorizeRequests() // 페이지 권한 설정
|
http.authorizeRequests() // 페이지 권한 설정
|
||||||
.antMatchers("/dashboard").hasRole(Role.USER.name()) // USER, ADMIN 접근 허용
|
.antMatchers("/dashboard").hasRole(Role.USER.name()) // USER, ADMIN 접근 허용
|
||||||
.antMatchers("/admin/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용
|
.antMatchers("/codeMgt/**", "/menuMgt/**").hasRole(Role.ADMIN.name()) // ADMIN만 접근 허용
|
||||||
.antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용
|
.antMatchers("/login").permitAll() // 로그인 페이지는 권한 없이 접근 허용
|
||||||
.and() // 로그인 설정
|
.and() // 로그인 설정
|
||||||
.formLogin() .loginPage("/login") // Custom login form 사용
|
.formLogin() .loginPage("/login") // Custom login form 사용
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
package com.dbnt.faisp.controller;
|
||||||
|
|
||||||
|
import com.dbnt.faisp.service.CodeMgtService;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.PostMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
import org.springframework.web.servlet.ModelAndView;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/codeMgt")
|
||||||
|
public class CodeMgtController {
|
||||||
|
|
||||||
|
private final CodeMgtService codeMgtService;
|
||||||
|
|
||||||
|
@GetMapping("/codeMgtPage")
|
||||||
|
public ModelAndView loginError() {
|
||||||
|
ModelAndView mav = new ModelAndView("/adminPage/codeMgt/codeMgt");
|
||||||
|
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
package com.dbnt.faisp.mapper;
|
||||||
|
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Mapper
|
||||||
|
public interface CodeMgtMapper {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
package com.dbnt.faisp.model;
|
||||||
|
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import lombok.Setter;
|
||||||
|
import org.hibernate.annotations.DynamicInsert;
|
||||||
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamicInsert
|
||||||
|
@DynamicUpdate
|
||||||
|
@Table(name = "code_catg")
|
||||||
|
public class CodeCatg {
|
||||||
|
@Id
|
||||||
|
@Column(name = "category_cd")
|
||||||
|
private String categoryCd;
|
||||||
|
@Column(name = "category_value", nullable = false)
|
||||||
|
private String categoryValue;
|
||||||
|
@Column(name = "description")
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
package com.dbnt.faisp.model;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import org.hibernate.annotations.DynamicInsert;
|
||||||
|
import org.hibernate.annotations.DynamicUpdate;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@NoArgsConstructor
|
||||||
|
@DynamicInsert
|
||||||
|
@DynamicUpdate
|
||||||
|
@Table(name = "code_mgt")
|
||||||
|
@IdClass(CodeMgt.CodeMgtId.class)
|
||||||
|
public class CodeMgt {
|
||||||
|
@Id
|
||||||
|
@Column(name = "category_cd")
|
||||||
|
private String categoryCd;
|
||||||
|
@Id
|
||||||
|
@Column(name = "item_cd")
|
||||||
|
private String itemCd;
|
||||||
|
@Column(name = "VALUE", nullable = false)
|
||||||
|
private String value;
|
||||||
|
@Column(name = "use_chk")
|
||||||
|
private String useChk;
|
||||||
|
|
||||||
|
@Embeddable
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public static class CodeMgtId implements Serializable {
|
||||||
|
private String categoryCd;
|
||||||
|
private String itemCd;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,9 @@
|
||||||
|
package com.dbnt.faisp.repository;
|
||||||
|
|
||||||
|
import com.dbnt.faisp.model.CodeCatg;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
|
||||||
|
public interface CodeCatgRepository extends JpaRepository<CodeCatg, String> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.dbnt.faisp.repository;
|
||||||
|
|
||||||
|
import com.dbnt.faisp.model.CodeMgt;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
import java.util.Optional;
|
||||||
|
|
||||||
|
|
||||||
|
public interface CodeMgtRepository extends JpaRepository<CodeMgt, CodeMgt.CodeMgtId> {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
package com.dbnt.faisp.service;
|
||||||
|
|
||||||
|
import com.dbnt.faisp.mapper.CodeMgtMapper;
|
||||||
|
import com.dbnt.faisp.repository.CodeCatgRepository;
|
||||||
|
import com.dbnt.faisp.repository.CodeMgtRepository;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Service
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
public class CodeMgtService{
|
||||||
|
|
||||||
|
private final CodeMgtRepository codeMgtRepository;
|
||||||
|
private final CodeCatgRepository codeCatgRepository;
|
||||||
|
private final CodeMgtMapper codeMgtMapper;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -15,7 +15,7 @@ $(document).on('click', '#saveBtn', function (){
|
||||||
if(result === "userIdDuplication"){
|
if(result === "userIdDuplication"){
|
||||||
alert("등록된 아이디입니다.")
|
alert("등록된 아이디입니다.")
|
||||||
}else{
|
}else{
|
||||||
alert("저장되었습니다.")
|
alert("저장되었습니다.\n담당자 승인 후 로그인 가능합니다.")
|
||||||
$("#closeModalBtn").click();
|
$("#closeModalBtn").click();
|
||||||
$("#searchBtn").click();
|
$("#searchBtn").click();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,73 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org"
|
||||||
|
xmlns:layout="http://www.ultraq.net.nz/thymeleaf/layout"
|
||||||
|
layout:decorate="~{layout/layout}">
|
||||||
|
<th:block layout:fragment="script">
|
||||||
|
<script type="text/javascript" th:src="@{/js/admin/userMgt.js}"></script>
|
||||||
|
</th:block>
|
||||||
|
<div layout:fragment="content">
|
||||||
|
<main class="pt-3">
|
||||||
|
<h4>코드 관리</h4>
|
||||||
|
<div class="row mx-0">
|
||||||
|
<div class="col-12 card text-center">
|
||||||
|
<div class="card-body">
|
||||||
|
<div class="row justify-content-start">
|
||||||
|
<div class="col-6">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th></th>
|
||||||
|
<th>분류코드</th>
|
||||||
|
<th>분류명</th>
|
||||||
|
<th>설명</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<!--<tbody th:if="${categoryList.size()==0}">
|
||||||
|
<tr>
|
||||||
|
<td colspan="2">검색된 분류가 없습니다.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
<tbody th:if="${categoryList.size()>0}">
|
||||||
|
<tr class="categoryTr" th:each="commonCode:${categoryList}">
|
||||||
|
<td>
|
||||||
|
<input type="checkbox" class="categoryCheckBox" th:value="${commonCode.category}">
|
||||||
|
</td>
|
||||||
|
<td th:text="${commonCode.category}"></td>
|
||||||
|
</tr>
|
||||||
|
</tbody>-->
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="col-4" id="valueDiv">
|
||||||
|
<div class="card">
|
||||||
|
<div class="card-body">
|
||||||
|
<table class="table table-striped">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>
|
||||||
|
<input type="checkbox" class="valueCheckBox" id="allValueCheckBox">
|
||||||
|
</th>
|
||||||
|
<th>하위코드</th>
|
||||||
|
<th>값</th>
|
||||||
|
<th>사용여부</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<!--<tbody>
|
||||||
|
<tr>
|
||||||
|
<td colspan="3">분류를 선택해주세요.</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>-->
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</main>
|
||||||
|
</div>
|
||||||
|
</html>
|
||||||
|
|
@ -11,7 +11,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div>
|
<div>
|
||||||
<ul class="nav nav-pills" sec:authorize="hasRole('ROLE_ADMIN')">
|
<ul class="nav nav-pills" sec:authorize="hasRole('ROLE_ADMIN')">
|
||||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">코드관리</a></li>
|
<li class="nav-item"><a href="/codeMgt/codeMgtPage" class="nav-link p-1 link-dark">코드관리</a></li>
|
||||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">메뉴관리</a></li>
|
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">메뉴관리</a></li>
|
||||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">외사경찰관리</a></li>
|
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">외사경찰관리</a></li>
|
||||||
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">권한설정</a></li>
|
<li class="nav-item"><a href="#" class="nav-link p-1 link-dark">권한설정</a></li>
|
||||||
|
|
|
||||||
|
|
@ -12,45 +12,219 @@
|
||||||
<div class="col-12 card">
|
<div class="col-12 card">
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록1</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록1
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록2</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록2
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록3</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록3
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록4</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록4
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록5</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록5
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-4">
|
<div class="col-4 py-1">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
|
<div class="card-header bg-white">
|
||||||
|
<div class="row justify-content-between">
|
||||||
|
<div class="col-auto">목록6</div>
|
||||||
|
<div class="col-auto"><a href="#" class="link-dark"><i class="bi bi-list"></i></a></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body">
|
||||||
목록6
|
<table class="table table-hover">
|
||||||
|
<tbody>
|
||||||
|
<tr>
|
||||||
|
<td>제목1</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목2</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목3</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목4</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>제목5</td>
|
||||||
|
<td class="text-end">2022-08-19</td>
|
||||||
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue