Skip to content
Snippets Groups Projects
Commit b62115f7 authored by Paul Cancel's avatar Paul Cancel
Browse files

Avancement spring

parent e4df6375
Branches
No related tags found
No related merge requests found
......@@ -64,6 +64,11 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>compile</scope>
</dependency>
</dependencies>
<build>
......
package fr.but.infoetu.MeetingPlannr;
import java.util.Optional;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import fr.but.infoetu.MeetingPlannr.pojo.User;
import fr.but.infoetu.MeetingPlannr.repository.MeetingRepository;
import fr.but.infoetu.MeetingPlannr.repository.RequestRepository;
import fr.but.infoetu.MeetingPlannr.repository.UserRepository;
import jakarta.servlet.http.HttpSession;
import jakarta.validation.Valid;
@Controller
public class MeetingController {
@Autowired
MeetingRepository mr;
@Autowired UserRepository ur;
@Autowired
RequestRepository rr;
@RequestMapping(value = "login", method = RequestMethod.GET)
private String loginForm(){
return "login";
}
@RequestMapping(value = "login", method = RequestMethod.POST)
private String loginFormPost(String email, String password, HttpSession session){
Optional<User> userOpt = ur.findByEmail(email);
if(userOpt.isPresent()){
User user = userOpt.get();
if(user.getPassword().equals(password)){
session.setAttribute("currentUser", user);
return "listeAction";
}
}
return "login";
}
}
package fr.but.infoetu.MeetingPlannr.pojo;
import java.sql.Date;
import java.time.LocalDate;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
......@@ -29,9 +29,9 @@ public class Meeting {
private Request request;
@ManyToOne
@JoinColumn(name = "rno")
@JoinColumn(name = "uno")
private User user;
@NotNull(message = REQUIRED)
private Date date;
private LocalDate date;
}
package fr.but.infoetu.MeetingPlannr.pojo;
import java.sql.Date;
import java.time.LocalDate;
import jakarta.persistence.Entity;
import jakarta.persistence.GeneratedValue;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
import jakarta.persistence.Table;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.PastOrPresent;
......@@ -19,6 +20,7 @@ import lombok.NoArgsConstructor;
@AllArgsConstructor
@Data
@NoArgsConstructor
@Table(name = "users")
public class User {
private static final String REQUIRED = "is required";
......@@ -45,7 +47,7 @@ public class User {
@NotNull(message = REQUIRED)
@PastOrPresent(message = "date must be within the past")
private Date birthdate;
private LocalDate birthdate;
@NotNull(message = REQUIRED)
@Size(min = 8, message = "password too short")
......
package fr.but.infoetu.MeetingPlannr.repository;
import java.util.Optional;
import org.springframework.data.repository.CrudRepository;
import fr.but.infoetu.MeetingPlannr.pojo.User;
public interface UserRepository extends CrudRepository<User, Integer>{
Optional<User> findByEmail(String email);
}
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<head>
<title>Liste des Actions</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f9;
}
.container {
max-width: 800px;
margin: 50px auto;
padding: 20px;
background-color: #fff;
border-radius: 8px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}
h1 {
text-align: center;
color: #333;
}
.actions {
display: flex;
flex-direction: column;
gap: 15px;
}
.actions button {
padding: 10px 20px;
font-size: 16px;
color: #fff;
background-color: #007bff;
border: none;
border-radius: 4px;
cursor: pointer;
transition: background-color 0.3s;
}
.actions button:hover {
background-color: #0056b3;
}
.actions button.logout {
background-color: #dc3545;
}
.actions button.logout:hover {
background-color: #c82333;
}
</style>
</head>
<body>
<div class="container">
<h1>Actions Disponibles</h1>
<div class="actions">
<!-- Bouton pour voir le calendrier et poser des requêtes -->
<form action="/calendar" method="get">
<button type="submit">Voir le Calendrier</button>
</form>
<!-- Bouton pour accéder à ses rendez-vous -->
<form action="/appointments" method="get">
<button type="submit">Mes Rendez-Vous</button>
</form>
<!-- Bouton pour voir les détails de son profil -->
<form action="/profile" method="get">
<button type="submit">Mon Profil</button>
</form>
<!-- Bouton pour se déconnecter -->
<form action="/logout" method="post">
<button type="submit" class="logout">Se Déconnecter</button>
</form>
</div>
</div>
</body>
</html>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<title>Login</title>
<style>
body {
font-family: Arial, sans-serif;
margin: 0;
padding: 0;
background-color: #f4f4f9;
}
.container {
max-width: 400px;
margin: 100px auto;
padding: 20px;
background: #ffffff;
border: 1px solid #ddd;
box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}
h2 {
text-align: center;
color: #333;
}
.form-group {
margin-bottom: 15px;
}
label {
display: block;
margin-bottom: 5px;
color: #555;
}
input[type="email"],
input[type="password"] {
width: 100%;
padding: 10px;
border: 1px solid #ccc;
border-radius: 5px;
font-size: 14px;
}
button {
width: 100%;
padding: 10px;
background: #007bff;
border: none;
color: white;
font-size: 16px;
border-radius: 5px;
cursor: pointer;
}
button:hover {
background: #0056b3;
}
.error {
color: red;
font-size: 14px;
}
</style>
</head>
<body>
<div class="container">
<h2>Login</h2>
<form action="login" method="POST">
<div class="form-group">
<label for="email">Email :</label>
<input type="email" id="email" name="email" placeholder="Entrez votre email">
</div>
<div class="form-group">
<label for="password">Mot de passe :</label>
<input type="password" id="password" name="password" placeholder="Entrez votre mot de passe">
</div>
<button type="submit">Se connecter</button>
</form>
<%
String errorMessage = (String) request.getAttribute("errorMessage");
if (errorMessage != null) {
%>
<div class="error"><%= errorMessage %></div>
<%
}
%>
</div>
</body>
</html>
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment