Compare commits
	
		
			6 Commits
		
	
	
		
			Leo/Inscri
			...
			Leo/Backen
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| c0890ac76a | |||
| 49b99e14c9 | |||
| 9328601d2d | |||
| 79f4b84b70 | |||
| 0c73f6f44d | |||
| a1bdae9e83 | 
@ -15,7 +15,7 @@ import java.util.Date;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
public class MockController {
 | 
					public class MockController {
 | 
				
			||||||
    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
					    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
				
			||||||
 | 
					    public final UserService userService;
 | 
				
			||||||
    public final UserRepository userRepo;
 | 
					    public final UserRepository userRepo;
 | 
				
			||||||
    public final TokenRepository tokenRepo;
 | 
					    public final TokenRepository tokenRepo;
 | 
				
			||||||
    public final TokenService tokenService;
 | 
					    public final TokenService tokenService;
 | 
				
			||||||
@ -27,7 +27,8 @@ public class MockController {
 | 
				
			|||||||
    ArrayList<User> mockUsers;
 | 
					    ArrayList<User> mockUsers;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public MockController(UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService){
 | 
					    public MockController(UserService userService, UserRepository userRepo, TokenRepository tokenRepo, TokenService tokenService, CurriculumCourseService CurriculumCourseService, CurriculumService curriculumService, CourseService courseService, InscriptionService inscriptionService){
 | 
				
			||||||
 | 
					        this.userService = userService;
 | 
				
			||||||
        this.tokenRepo = tokenRepo;
 | 
					        this.tokenRepo = tokenRepo;
 | 
				
			||||||
        this.userRepo = userRepo;
 | 
					        this.userRepo = userRepo;
 | 
				
			||||||
        this.tokenService = tokenService;
 | 
					        this.tokenService = tokenService;
 | 
				
			||||||
@ -45,21 +46,21 @@ public class MockController {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @PostMapping("/mock")
 | 
					    @PostMapping("/mock")
 | 
				
			||||||
    public void postMock(){
 | 
					    public void postMock(){
 | 
				
			||||||
 | 
					 | 
				
			||||||
        // user part
 | 
					        // user part
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
        User herobrine = new User("brine","hero","admin@admin.com","behind","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
 | 
					        User herobrine = new User("brine","hero","admin@admin.com","behind","ShadowsLand",new Date(0), null,Role.Admin,passwordEncoder.encode("admin"));
 | 
				
			||||||
        User joe = new User("Mama","Joe","student@student.com","roundabout","England",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
 | 
					        User joe = new User("Mama","Joe","student@student.com","roundabout","England",new Date(0), null,Role.Student,passwordEncoder.encode("student"));
 | 
				
			||||||
        User meh = new User("Polo","Marco","secretary@secretary.com","a Box","Monaco",new Date(0), null,Role.Secretary,passwordEncoder.encode("secretary"));
 | 
					        User meh = new User("Polo","Marco","secretary@secretary.com","a Box","Monaco",new Date(0), null,Role.Secretary,passwordEncoder.encode("secretary"));
 | 
				
			||||||
        User joke = new User("Gaillard","Corentin","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
					        User joke = new User("Gaillard","Corentin","teacher@teacher.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
				
			||||||
        User jojo = new User("Bridoux","Justin","teacher2@teacher2.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
					        User jojo = new User("Bridoux","Justin","teacher2@teacher2.com","lab","faculty",new Date(0), null,Role.Teacher,passwordEncoder.encode("teacher"));
 | 
				
			||||||
        User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.InscriptionService,passwordEncoder.encode("inscriptionService"));
 | 
					        User lena = new User("Louille","Lena","inscriptionService@InscriptionService.com","no","yes",new Date(0), null,Role.InscriptionService,passwordEncoder.encode("inscriptionService"));
 | 
				
			||||||
        mockUsers = new ArrayList<>(Arrays.asList(herobrine,joe,meh,joke,lena,jojo));
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        userRepo.saveAll(mockUsers);
 | 
					        mockUsers = new ArrayList<>(Arrays.asList(joke, herobrine, joe, meh, jojo));
 | 
				
			||||||
 | 
					        userService.saveAll(mockUsers);
 | 
				
			||||||
 | 
					        userService.save(lena);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // Course / Curriculum part
 | 
					
 | 
				
			||||||
 | 
					        //Course / Curriculum part
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        Curriculum infoBab1 = new Curriculum(1,"info");
 | 
					        Curriculum infoBab1 = new Curriculum(1,"info");
 | 
				
			||||||
        Curriculum chemistryBab1 = new Curriculum(1,"chemistry");
 | 
					        Curriculum chemistryBab1 = new Curriculum(1,"chemistry");
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										46
									
								
								backend/src/main/java/ovh/herisson/Clyde/RegNoGenerator.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								backend/src/main/java/ovh/herisson/Clyde/RegNoGenerator.java
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,46 @@
 | 
				
			|||||||
 | 
					package ovh.herisson.Clyde;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import org.hibernate.engine.jdbc.connections.spi.JdbcConnectionAccess;
 | 
				
			||||||
 | 
					import org.hibernate.engine.spi.SharedSessionContractImplementor;
 | 
				
			||||||
 | 
					import org.hibernate.id.IdentifierGenerator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.sql.*;
 | 
				
			||||||
 | 
					import java.util.Calendar;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					import java.util.GregorianCalendar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public class RegNoGenerator implements IdentifierGenerator {
 | 
				
			||||||
 | 
					    private static int count = 0;
 | 
				
			||||||
 | 
					    @Override
 | 
				
			||||||
 | 
					    public Object generate(SharedSessionContractImplementor session, Object object) {
 | 
				
			||||||
 | 
					        try{
 | 
				
			||||||
 | 
					            JdbcConnectionAccess jdbccon = session.getJdbcConnectionAccess();
 | 
				
			||||||
 | 
					            Connection conn = jdbccon.obtainConnection();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Statement statement = conn.createStatement();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            Calendar c = new GregorianCalendar();
 | 
				
			||||||
 | 
					            int y = c.get(Calendar.YEAR);
 | 
				
			||||||
 | 
					            String query = "select count(reg_no) + "+count+" from Users where reg_no/10000 = " + y%1000;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            ResultSet set = statement.executeQuery(query);
 | 
				
			||||||
 | 
					            long resp = 0;
 | 
				
			||||||
 | 
					            if(set.next()){
 | 
				
			||||||
 | 
					                resp = set.getLong(1)+((y%1000)*10000);
 | 
				
			||||||
 | 
					                count += 1;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            conn.close();
 | 
				
			||||||
 | 
					            statement.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            return resp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        } catch (SQLException e) {
 | 
				
			||||||
 | 
					            throw new RuntimeException(e);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static void resetCount(){
 | 
				
			||||||
 | 
					        count = 0;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@ -5,13 +5,10 @@ import org.springframework.data.repository.CrudRepository;
 | 
				
			|||||||
import ovh.herisson.Clyde.Tables.User;
 | 
					import ovh.herisson.Clyde.Tables.User;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public interface UserRepository extends CrudRepository<User, Long> {
 | 
					public interface UserRepository extends CrudRepository<User, Long> {
 | 
				
			||||||
 | 
					 | 
				
			||||||
    User findById(long id);
 | 
					    User findById(long id);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    User findByEmail(String email);
 | 
					    User findByEmail(String email);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher")
 | 
					    @Query("select u from User u where u.role = ovh.herisson.Clyde.Tables.Role.Teacher")
 | 
				
			||||||
    Iterable<User> findAllTeachers();
 | 
					    Iterable<User> findAllTeachers();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -81,7 +81,7 @@ public class InscriptionService {
 | 
				
			|||||||
            );
 | 
					            );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            userRepo.save(userFromRequest);
 | 
					            userRepo.save(userFromRequest);
 | 
				
			||||||
            userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId()),0));
 | 
					            userCurriculumRepo.save(new UserCurriculum(userFromRequest, curriculumRepo.findById(inscrRequest.getCurriculumId())));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        inscrRequest.setState(requestState);
 | 
					        inscrRequest.setState(requestState);
 | 
				
			||||||
        save(inscrRequest);
 | 
					        save(inscrRequest);
 | 
				
			||||||
 | 
				
			|||||||
@ -2,16 +2,17 @@ package ovh.herisson.Clyde.Services;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
					import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					import ovh.herisson.Clyde.RegNoGenerator;
 | 
				
			||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
					import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Role;
 | 
					import ovh.herisson.Clyde.Tables.Role;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.User;
 | 
					import ovh.herisson.Clyde.Tables.User;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.*;
 | 
					import java.util.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class UserService {
 | 
					public class UserService {
 | 
				
			||||||
    private final UserRepository userRepo;
 | 
					    private final UserRepository userRepo;
 | 
				
			||||||
    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
					    private final BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public UserService(UserRepository userRepo){
 | 
					    public UserService(UserRepository userRepo){
 | 
				
			||||||
        this.userRepo = userRepo;
 | 
					        this.userRepo = userRepo;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -106,10 +107,19 @@ public class UserService {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public User save(User  user){
 | 
					    public User save(User  user){
 | 
				
			||||||
 | 
					        RegNoGenerator.resetCount();
 | 
				
			||||||
        user.setPassword(passwordEncoder.encode(user.getPassword()));
 | 
					        user.setPassword(passwordEncoder.encode(user.getPassword()));
 | 
				
			||||||
        return userRepo.save(user);
 | 
					        return userRepo.save(user);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public void saveAll(ArrayList<User> list){
 | 
				
			||||||
 | 
					        //S'assure que le compteur est bien a 0
 | 
				
			||||||
 | 
					        RegNoGenerator.resetCount();
 | 
				
			||||||
 | 
					        userRepo.saveAll(list);
 | 
				
			||||||
 | 
					        //Reset le compteur a zero pour les futurs ajouts
 | 
				
			||||||
 | 
					        RegNoGenerator.resetCount();
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Iterable<User> getAll(){
 | 
					    public Iterable<User> getAll(){
 | 
				
			||||||
        return userRepo.findAll();
 | 
					        return userRepo.findAll();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -131,4 +141,5 @@ public class UserService {
 | 
				
			|||||||
    public void delete(User user) {
 | 
					    public void delete(User user) {
 | 
				
			||||||
        userRepo.delete(user);
 | 
					        userRepo.delete(user);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,66 +0,0 @@
 | 
				
			|||||||
package ovh.herisson.Clyde.Tables;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import jakarta.persistence.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@Entity
 | 
					 | 
				
			||||||
public class ExemptionsRequest {
 | 
					 | 
				
			||||||
    @Id
 | 
					 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
					 | 
				
			||||||
    private int id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @ManyToOne
 | 
					 | 
				
			||||||
    @JoinColumn(name = "Users")
 | 
					 | 
				
			||||||
    private User user;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @ManyToOne
 | 
					 | 
				
			||||||
    @JoinColumn(name = "Course")
 | 
					 | 
				
			||||||
    private Course course;
 | 
					 | 
				
			||||||
    private String justifDocument;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    private RequestState state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public ExemptionsRequest(User user, Course course, String justifDocument, RequestState state){
 | 
					 | 
				
			||||||
        this.user = user;
 | 
					 | 
				
			||||||
        this.course = course;
 | 
					 | 
				
			||||||
        this.justifDocument = justifDocument;
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public ExemptionsRequest(){}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public User getUser() {
 | 
					 | 
				
			||||||
        return user;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setUser(User user) {
 | 
					 | 
				
			||||||
        this.user = user;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public Course getCourse() {
 | 
					 | 
				
			||||||
        return course;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setCourse(Course course) {
 | 
					 | 
				
			||||||
        this.course = course;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getJustifDocument() {
 | 
					 | 
				
			||||||
        return justifDocument;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setJustifDocument(String justifDocument) {
 | 
					 | 
				
			||||||
        this.justifDocument = justifDocument;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public RequestState getState() {
 | 
					 | 
				
			||||||
        return state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setState(RequestState state) {
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,59 +0,0 @@
 | 
				
			|||||||
package ovh.herisson.Clyde.Tables;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import jakarta.persistence.*;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@Entity
 | 
					 | 
				
			||||||
public class ScholarshipRequest {
 | 
					 | 
				
			||||||
    @Id
 | 
					 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
					 | 
				
			||||||
    private int id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    @ManyToOne
 | 
					 | 
				
			||||||
    @JoinColumn(name = "Users")
 | 
					 | 
				
			||||||
    private User user;
 | 
					 | 
				
			||||||
    private RequestState state;
 | 
					 | 
				
			||||||
    private String requestForm;
 | 
					 | 
				
			||||||
    private int amount;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public ScholarshipRequest(User user, RequestState state, String requestForm, int amount){
 | 
					 | 
				
			||||||
        this.user = user;
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
        this.requestForm = requestForm;
 | 
					 | 
				
			||||||
        this.amount = amount;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public ScholarshipRequest(){}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public User getUser() {
 | 
					 | 
				
			||||||
        return user;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setUser(User user) {
 | 
					 | 
				
			||||||
        this.user = user;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public RequestState getState() {
 | 
					 | 
				
			||||||
        return state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setState(RequestState state) {
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public String getRequestForm() {
 | 
					 | 
				
			||||||
        return requestForm;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setRequestForm(String requestForm) {
 | 
					 | 
				
			||||||
        this.requestForm = requestForm;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getAmount() {
 | 
					 | 
				
			||||||
        return amount;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setAmount(int amount) {
 | 
					 | 
				
			||||||
        this.amount = amount;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,28 +0,0 @@
 | 
				
			|||||||
package ovh.herisson.Clyde.Tables;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
import jakarta.persistence.Entity;
 | 
					 | 
				
			||||||
import jakarta.persistence.GeneratedValue;
 | 
					 | 
				
			||||||
import jakarta.persistence.GenerationType;
 | 
					 | 
				
			||||||
import jakarta.persistence.Id;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@Entity
 | 
					 | 
				
			||||||
public class UninscriptionRequest {
 | 
					 | 
				
			||||||
    @Id
 | 
					 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
					 | 
				
			||||||
    private int id;
 | 
					 | 
				
			||||||
    private RequestState state;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public UninscriptionRequest(RequestState state){
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public UninscriptionRequest(){}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public RequestState getState() {
 | 
					 | 
				
			||||||
        return state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setState(RequestState state) {
 | 
					 | 
				
			||||||
        this.state = state;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@ -1,6 +1,8 @@
 | 
				
			|||||||
package ovh.herisson.Clyde.Tables;
 | 
					package ovh.herisson.Clyde.Tables;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import jakarta.persistence.*;
 | 
					import jakarta.persistence.*;
 | 
				
			||||||
 | 
					import org.hibernate.annotations.GenericGenerator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -8,7 +10,8 @@ import java.util.Date;
 | 
				
			|||||||
@Table(name = "Users")
 | 
					@Table(name = "Users")
 | 
				
			||||||
public class User {
 | 
					public class User {
 | 
				
			||||||
    @Id
 | 
					    @Id
 | 
				
			||||||
    @GeneratedValue(strategy = GenerationType.AUTO)
 | 
					    @GenericGenerator(name = "userGen", type = ovh.herisson.Clyde.RegNoGenerator.class)
 | 
				
			||||||
 | 
					    @GeneratedValue(generator = "userGen")
 | 
				
			||||||
    private Long regNo;
 | 
					    private Long regNo;
 | 
				
			||||||
    private String lastName;
 | 
					    private String lastName;
 | 
				
			||||||
    private String firstName;
 | 
					    private String firstName;
 | 
				
			||||||
 | 
				
			|||||||
@ -21,12 +21,9 @@ public class UserCurriculum {
 | 
				
			|||||||
    @OnDelete(action = OnDeleteAction.CASCADE)
 | 
					    @OnDelete(action = OnDeleteAction.CASCADE)
 | 
				
			||||||
    private Curriculum curriculum;
 | 
					    private Curriculum curriculum;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private int year;
 | 
					    public UserCurriculum(User user, Curriculum curriculum){
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public UserCurriculum(User user, Curriculum curriculum, int year){
 | 
					 | 
				
			||||||
        this.user = user;
 | 
					        this.user = user;
 | 
				
			||||||
        this.curriculum = curriculum;
 | 
					        this.curriculum = curriculum;
 | 
				
			||||||
        this.year = year;
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public UserCurriculum() {}
 | 
					    public UserCurriculum() {}
 | 
				
			||||||
@ -50,12 +47,4 @@ public class UserCurriculum {
 | 
				
			|||||||
    public void setCurriculum(Curriculum curriculum) {
 | 
					    public void setCurriculum(Curriculum curriculum) {
 | 
				
			||||||
        this.curriculum = curriculum;
 | 
					        this.curriculum = curriculum;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public int getYear() {
 | 
					 | 
				
			||||||
        return year;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public void setYear(int year) {
 | 
					 | 
				
			||||||
        this.year = year;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,3 +1,2 @@
 | 
				
			|||||||
spring.jpa.hibernate.ddl-auto=create-drop
 | 
					spring.jpa.hibernate.ddl-auto=create-drop
 | 
				
			||||||
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
 | 
					spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
 | 
				
			||||||
spring.sql.init.mode=always
 | 
					 | 
				
			||||||
@ -23,6 +23,7 @@ import ovh.herisson.Clyde.Repositories.TokenRepository;
 | 
				
			|||||||
import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
					import ovh.herisson.Clyde.Repositories.UserRepository;
 | 
				
			||||||
import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
					import ovh.herisson.Clyde.Responses.UnauthorizedResponse;
 | 
				
			||||||
import ovh.herisson.Clyde.Services.TokenService;
 | 
					import ovh.herisson.Clyde.Services.TokenService;
 | 
				
			||||||
 | 
					import ovh.herisson.Clyde.Services.UserService;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Role;
 | 
					import ovh.herisson.Clyde.Tables.Role;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Token;
 | 
					import ovh.herisson.Clyde.Tables.Token;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.User;
 | 
					import ovh.herisson.Clyde.Tables.User;
 | 
				
			||||||
@ -47,6 +48,8 @@ public class UserControllerTest {
 | 
				
			|||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private TokenService tokenService;
 | 
					    private TokenService tokenService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Autowired
 | 
				
			||||||
 | 
					    private UserService userService;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    private UserRepository userRepository;
 | 
					    private UserRepository userRepository;
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
@ -79,12 +82,13 @@ public class UserControllerTest {
 | 
				
			|||||||
        tokenRepository.deleteAll();
 | 
					        tokenRepository.deleteAll();
 | 
				
			||||||
        userRepository.deleteAll();
 | 
					        userRepository.deleteAll();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    //Verifie qu'un user qui n'a pas les permissions admin ou secretaire ne peut pas post
 | 
					    //Verifie qu'un user qui n'a pas les permissions admin ou secretaire ne peut pas post
 | 
				
			||||||
    public void userPostTest(){
 | 
					    public void userPostTest(){
 | 
				
			||||||
        User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
 | 
					        User god = new User("god","god","admin@admin.com","everywhere","every",new Date(0), null, Role.Admin,"goddoesntneedpassword");
 | 
				
			||||||
        Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
 | 
					        Token godToken = new Token(god, tokenService.generateNewToken(), new Date());
 | 
				
			||||||
        userRepository.save(god);
 | 
					        userService.save(god);
 | 
				
			||||||
        tokenService.saveToken(godToken);
 | 
					        tokenService.saveToken(godToken);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        //Can god post herobrine himself ?
 | 
					        //Can god post herobrine himself ?
 | 
				
			||||||
@ -97,7 +101,7 @@ public class UserControllerTest {
 | 
				
			|||||||
        //Can noob post herobrine without authorizations (no)
 | 
					        //Can noob post herobrine without authorizations (no)
 | 
				
			||||||
        User noob = new User("boon","noob","noob@student.com","everywhere","every",new Date(0), null, Role.Student,"noob");
 | 
					        User noob = new User("boon","noob","noob@student.com","everywhere","every",new Date(0), null, Role.Student,"noob");
 | 
				
			||||||
        Token noobToken = new Token(noob, tokenService.generateNewToken(), new Date());
 | 
					        Token noobToken = new Token(noob, tokenService.generateNewToken(), new Date());
 | 
				
			||||||
        userRepository.save(noob);
 | 
					        userService.save(noob);
 | 
				
			||||||
        tokenService.saveToken(noobToken);
 | 
					        tokenService.saveToken(noobToken);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        with().body(herobrine).contentType(ContentType.JSON).header("Authorization", noobToken.getToken()).when().request("POST", "/user").then().statusCode(401);
 | 
					        with().body(herobrine).contentType(ContentType.JSON).header("Authorization", noobToken.getToken()).when().request("POST", "/user").then().statusCode(401);
 | 
				
			||||||
 | 
				
			|||||||
@ -7,6 +7,7 @@ import org.junit.jupiter.api.Test;
 | 
				
			|||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
 | 
					import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
 | 
				
			||||||
import org.springframework.test.context.TestPropertySource;
 | 
					import org.springframework.test.context.TestPropertySource;
 | 
				
			||||||
 | 
					import ovh.herisson.Clyde.Services.UserService;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.Role;
 | 
					import ovh.herisson.Clyde.Tables.Role;
 | 
				
			||||||
import ovh.herisson.Clyde.Tables.User;
 | 
					import ovh.herisson.Clyde.Tables.User;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -24,6 +25,7 @@ public class UserRepoTest {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    @BeforeEach
 | 
					    @BeforeEach
 | 
				
			||||||
    public void setup(){
 | 
					    public void setup(){
 | 
				
			||||||
 | 
					        userRepo.deleteAll();
 | 
				
			||||||
        User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand", new GregorianCalendar(2005, 4, 3).getTime(), null, Role.Admin,"admin");
 | 
					        User herobrine = new User("brine","hero","admin@admin.com","in your WalLs","ShadowsLand", new GregorianCalendar(2005, 4, 3).getTime(), null, Role.Admin,"admin");
 | 
				
			||||||
        userRepo.save(herobrine);
 | 
					        userRepo.save(herobrine);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@ -34,8 +36,8 @@ public class UserRepoTest {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    public void usertest(){
 | 
					    public void usertest(){
 | 
				
			||||||
        Assert.assertEquals("brine", userRepo.findById(1).getLastName());
 | 
					        Assert.assertEquals("brine", userRepo.findByEmail("admin@admin.com").getLastName());
 | 
				
			||||||
        Assert.assertTrue(new GregorianCalendar(2005, 4, 3).getTime().equals(userRepo.findById(1).getBirthDate()));
 | 
					        Assert.assertTrue(new GregorianCalendar(2005, 4, 3).getTime().equals(userRepo.findByEmail("admin@admin.com").getBirthDate()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
				
			|||||||
@ -1,82 +0,0 @@
 | 
				
			|||||||
<script setup>
 | 
					 | 
				
			||||||
  import i18n from "@/i18n.js"
 | 
					 | 
				
			||||||
  import {getSelf, getUser} from '../rest/Users.js'
 | 
					 | 
				
			||||||
  import {ref} from "vue";
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  const user = await getSelf();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  function getPP(){
 | 
					 | 
				
			||||||
    if(user.value.profilePictureUrl === null){
 | 
					 | 
				
			||||||
      return "/Clyde.png"
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return user.profilePictureUrl
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<template>
 | 
					 | 
				
			||||||
  <div class="body">
 | 
					 | 
				
			||||||
    <div class="container">
 | 
					 | 
				
			||||||
      <div class="profilPic">
 | 
					 | 
				
			||||||
        <img class="subContainter" :src=getPP()>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
      <div class = "globalInfos">
 | 
					 | 
				
			||||||
        <div class="infosContainer">
 | 
					 | 
				
			||||||
          <div>
 | 
					 | 
				
			||||||
            {{user.firstName}} {{user.lastName}}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
          <div>
 | 
					 | 
				
			||||||
            E-mail: {{user.email}}
 | 
					 | 
				
			||||||
          </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
      </div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
  </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
.container{
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  display:grid;
 | 
					 | 
				
			||||||
  grid-template-columns:200px 900px;
 | 
					 | 
				
			||||||
  grid-template-rows:200px auto;
 | 
					 | 
				
			||||||
  column-gap:30px;
 | 
					 | 
				
			||||||
  row-gap:45px;
 | 
					 | 
				
			||||||
  grid-template-areas:
 | 
					 | 
				
			||||||
  "profilPic globalInfos"
 | 
					 | 
				
			||||||
  "minfos minfos";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.profilPic{
 | 
					 | 
				
			||||||
  grid-area:profilPic;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.globalInfos {
 | 
					 | 
				
			||||||
  grid-area:globalInfos;
 | 
					 | 
				
			||||||
  align-self :center;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.body {
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  margin-bottom:10px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.subContainter{
 | 
					 | 
				
			||||||
  width:100%;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
  border-radius:20px;
 | 
					 | 
				
			||||||
  border:4px solid black;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.infosContainer {
 | 
					 | 
				
			||||||
  padding-bottom:50px;
 | 
					 | 
				
			||||||
  border:2px solid black;
 | 
					 | 
				
			||||||
  font-size:25px;
 | 
					 | 
				
			||||||
  color:white;
 | 
					 | 
				
			||||||
  padding:20px;
 | 
					 | 
				
			||||||
  background-color:rgb(50,50,50);
 | 
					 | 
				
			||||||
  border-radius:20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@ -9,7 +9,6 @@ import Profil from "@/Apps/Profil.vue"
 | 
				
			|||||||
import Courses from "@/Apps/ManageCourses.vue"
 | 
					import Courses from "@/Apps/ManageCourses.vue"
 | 
				
			||||||
import Users from "@/Apps/UsersList.vue"
 | 
					import Users from "@/Apps/UsersList.vue"
 | 
				
			||||||
import Students from "@/Apps/StudentsList.vue"
 | 
					import Students from "@/Apps/StudentsList.vue"
 | 
				
			||||||
import AboutStudent from "@/Apps/AboutStudent.vue";
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
const apps = {
 | 
					const apps = {
 | 
				
			||||||
		'/login': LoginPage,
 | 
							'/login': LoginPage,
 | 
				
			||||||
@ -18,7 +17,6 @@ const apps = {
 | 
				
			|||||||
		'/manage-courses' : Courses,
 | 
							'/manage-courses' : Courses,
 | 
				
			||||||
		'/users-list' : Users,
 | 
							'/users-list' : Users,
 | 
				
			||||||
		'/students-list' : Students,
 | 
							'/students-list' : Students,
 | 
				
			||||||
		'/about-students': AboutStudent
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const appsList = {
 | 
					const appsList = {
 | 
				
			||||||
@ -30,7 +28,6 @@ const appsList = {
 | 
				
			|||||||
		'ManageCourses': { path: '#/manage-courses', icon: 'fa-book', text: i18n("app.manage.courses") },
 | 
							'ManageCourses': { path: '#/manage-courses', icon: 'fa-book', text: i18n("app.manage.courses") },
 | 
				
			||||||
		'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")},
 | 
							'StudentsList':{ path: '#/students-list',icon: 'fa-users',text: i18n("app.studentList")},
 | 
				
			||||||
		'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")},
 | 
							'UsersList':{ path: '#/users-list',icon: 'fa-users',text: i18n("app.users")},
 | 
				
			||||||
		'AboutStudent':{ path: '#/about-users', icon: 'fa-users', text:i18n("app.aboutStudent")}
 | 
					 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
const currentPath = ref(window.location.hash)
 | 
					const currentPath = ref(window.location.hash)
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user