6 Commits

3 changed files with 51 additions and 12 deletions

View File

@@ -1,8 +1,11 @@
package com.example.demo.controller; package com.example.demo.controller;
import java.util.List;
import jakarta.servlet.http.HttpSession; import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid; import jakarta.validation.Valid;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model; import org.springframework.ui.Model;
import org.springframework.validation.BindingResult; import org.springframework.validation.BindingResult;
@@ -11,7 +14,9 @@ import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import com.example.demo.entity.AccountEntity; import com.example.demo.entity.AccountEntity;
import com.example.demo.entity.Employee;
import com.example.demo.form.LoginForm; import com.example.demo.form.LoginForm;
import com.example.demo.repository.EmployeeRepository;
import com.example.demo.service.LoginService; import com.example.demo.service.LoginService;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
@@ -21,12 +26,20 @@ import lombok.RequiredArgsConstructor;
public class LoginController { public class LoginController {
private final LoginService loginService; private final LoginService loginService;
@Autowired
private EmployeeRepository employeeRepository;
// Boot起動直後にログイン画面に移動する用のメソッド // Boot起動直後にログイン画面に移動する用のメソッド
@GetMapping("/") @GetMapping("/")
public String index(HttpSession session) { public String index(Model model,HttpSession session) {
if (session.getAttribute("loginEmployee") != null) { if (session.getAttribute("loginEmployee") != null) {
return "redirect:/topmenu"; if(session.getAttribute("EmployeeId") != null) {
List<Employee> emrp = employeeRepository.findByEmployeeId((Integer)session.getAttribute("EmployeeId") );
model.addAttribute("LoginName",emrp.getFirst().getEmployeeName());
}
return "topmenu";
} }
return "redirect:/login"; return "redirect:/login";
} }
@@ -34,7 +47,12 @@ public class LoginController {
@GetMapping("/login") @GetMapping("/login")
public String loginForm(Model model, HttpSession session) { public String loginForm(Model model, HttpSession session) {
if (session.getAttribute("loginEmployee") != null) { if (session.getAttribute("loginEmployee") != null) {
return "redirect:/topmenu"; if(session.getAttribute("EmployeeId") != null) {
List<Employee> emrp = employeeRepository.findByEmployeeId((Integer)session.getAttribute("EmployeeId") );
model.addAttribute("LoginName",emrp.getFirst().getEmployeeName());
}
return "topmenu";
} }
model.addAttribute("loginForm", new LoginForm()); model.addAttribute("loginForm", new LoginForm());
@@ -56,12 +74,18 @@ public class LoginController {
AccountEntity accountEntity = loginService.login(loginForm); AccountEntity accountEntity = loginService.login(loginForm);
if (accountEntity == null) { if (accountEntity == null) {
model.addAttribute("loginError", model.addAttribute("loginError",
"ログインIDまたはパスワードが正しくありません"); "社員IDまたはパスワードが正しくありません");
return "login"; return "login";
} }
session.setAttribute("loginEmployee", accountEntity); session.setAttribute("loginEmployee", accountEntity);
return "redirect:/topmenu";
List<Employee> emrp = employeeRepository.findByEmployeeId(accountEntity.getEmployee().getEmployeeId());
model.addAttribute("LoginName",emrp.getFirst().getEmployeeName());
session.setAttribute("EmployeeId", accountEntity.getEmployee().getEmployeeId());
return "topmenu";
} }
// ログアウト処理 // ログアウト処理
@@ -73,7 +97,13 @@ public class LoginController {
// 各画面からトップメニューへの遷移用 // 各画面からトップメニューへの遷移用
@GetMapping("/topmenu") @GetMapping("/topmenu")
public String showTopMenu() { public String showTopMenu(Model model,HttpSession session) {
if(session.getAttribute("EmployeeId") != null) {
List<Employee> emrp = employeeRepository.findByEmployeeId((Integer)session.getAttribute("EmployeeId") );
model.addAttribute("LoginName",emrp.getFirst().getEmployeeName());
}
return "topmenu"; return "topmenu";
} }
} }

View File

@@ -4,6 +4,7 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<title>ログイン</title> <title>ログイン</title>
</head> </head>
<body> <body>
@@ -16,7 +17,7 @@
<form th:action="@{/login}" th:object="${loginForm}" method="post"> <form th:action="@{/login}" th:object="${loginForm}" method="post">
<div class="form-group"> <div class="form-group">
<label for="employeeId">社員ID</label> <label for="employeeId">社員ID</label>
<input id="employeeId" type="text" th:field="*{employeeId}"> <input id="employeeId" type="text" th:field="*{employeeId}"pattern="^[0-9]+$"title="数値以外は入力しないでください">
<p class="field-error" th:errors="*{employeeId}"></p> <p class="field-error" th:errors="*{employeeId}"></p>
</div> </div>

View File

@@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html> <html xmlns:th="http://www.thymeleaf.org">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -17,7 +17,7 @@
<div class="header-right"> <div class="header-right">
<span class="user"> <span class="user">
テストユーザー(一般) <h1 th:text="${LoginName}"></h1>
</span> </span>
<a class="button-link" th:href="@{/logout}"> <a class="button-link" th:href="@{/logout}">
@@ -61,16 +61,18 @@
<hr> <hr>
<!-- ===== 管理者のみ ===== --> <!-- ===== 管理者のみ ===== -->
<th th:if="${session.loginEmployee.adminFlag == 1}">
<a class="card" href="/bookInsert"> <a class="card" href="/bookInsert">
<h3>新規図書登録</h3> <h3>新規図書登録</h3>
<p> <p>
図書の登録申請を<br> 行います。 図書の登録申請を<br> 行います。
</p> </p>
</a> </a>
<hr> <hr>
@@ -95,6 +97,7 @@
</a> </a>
<hr> <hr>
</th>
<a class="card" href="/passwordChange"> <a class="card" href="/passwordChange">
<h3>パスワード変更</h3> <h3>パスワード変更</h3>
@@ -104,6 +107,11 @@
</p> </p>
</a> </a>
</body> </body>
<script>
var admin =getElementByID
</script>
</html> </html>