Commit 8799baa63555f69ea66c267fdf0588adebc3ff3b

Authored by Geoffrey PREUD'HOMME
1 parent c4e83d00

Ajout des entitées principales restantes

src/main/java/etunicorn/SecurityInterceptor.java
... ... @@ -55,14 +55,17 @@ public class SecurityInterceptor extends HandlerInterceptorAdapter {
55 55 Permission requiredPermission = permissionRepository.findByNom(annotation.value());
56 56  
57 57 if (annotation.authentifie()) {
  58 + BaseController baseController = new BaseController();
  59 + baseController.setRequest(request);
  60 +
58 61 if (requiredPermission == null) {
59 62 response.setStatus(HttpStatus.NOT_IMPLEMENTED.value());
60   - // TODO utiliser base controller
  63 +
  64 + ResponseEntity responseEntity = baseController.generateError(HttpStatus.NOT_IMPLEMENTED);
  65 + responseEntityToServletResponse(responseEntity, response);
61 66 return false;
62 67 }
63 68  
64   - BaseController baseController = new BaseController();
65   - baseController.setRequest(request);
66 69 if (session == null) {
67 70 ResponseEntity responseEntity = baseController.generateError(HttpStatus.UNAUTHORIZED);
68 71 responseEntityToServletResponse(responseEntity, response);
... ...
src/main/java/etunicorn/controller/PersonneController.java
... ... @@ -55,24 +55,27 @@ public class PersonneController extends BaseController implements etunicorn.gene
55 55 return generateError(HttpStatus.BAD_REQUEST, "La date ou la carte doivent être au moins renseignés.");
56 56 }
57 57 if (updatePersonneRequest.getRole() != null) {
58   - System.out.println("HELLO");
59   - LinkedHashMap<String, String> roleMap = (LinkedHashMap<String, String>) updatePersonneRequest.getRole();
60   - Role role = roleRepository.findByNom(roleMap.get("nom"));
61   - if (role == null) {
62   - return generateError(HttpStatus.NOT_FOUND, "Rôle inconnu");
63   - }
64   - if (personne.getRole() != role) {
65   - if (hasPermission("PERSONNE_ROLE")) {
66   - personne.setRole(role);
67   - } else {
68   - return generateError(HttpStatus.FORBIDDEN, "Vous ne pouvez pas changer le rôle");
  58 + if (updatePersonneRequest.getRole() instanceof LinkedHashMap) {
  59 + LinkedHashMap<String, String> roleMap = (LinkedHashMap<String, String>) updatePersonneRequest.getRole();
  60 + Role role = roleRepository.findByNom(roleMap.get("nom"));
  61 + if (role == null) {
  62 + return generateError(HttpStatus.NOT_FOUND, "Rôle inconnu");
  63 + }
  64 + if (personne.getRole() != role) {
  65 + if (hasPermission("PERSONNE_ROLE")) {
  66 + personne.setRole(role);
  67 + } else {
  68 + return generateError(HttpStatus.FORBIDDEN, "Vous ne pouvez pas changer le rôle");
  69 + }
69 70 }
  71 + } else {
  72 + return generateError(HttpStatus.BAD_REQUEST, "Le rôle est un objet");
70 73 }
71 74 }
72 75 try {
73 76 this.personneRepository.save(personne);
74 77 } catch (DataIntegrityViolationException e) {
75   - return new ResponseEntity<Object>(HttpStatus.CONFLICT);
  78 + return generateError(HttpStatus.CONFLICT, "Un utilisateur avec la même carte ou le même login existe déjà");
76 79 }
77 80 return new ResponseEntity<Object>(personne, HttpStatus.CREATED);
78 81 }
... ...
src/main/java/etunicorn/entity/Consommation.java 0 → 100644
... ... @@ -0,0 +1,47 @@
  1 +package etunicorn.entity;
  2 +
  3 +import javax.persistence.*;
  4 +
  5 +/**
  6 + * etunicorn-server
  7 + * Copyright © 2017 Le Club Info Polytech Lille
  8 + * Tous droits réservés
  9 + */
  10 +@Entity
  11 +public class Consommation {
  12 + @Id
  13 + @GeneratedValue(strategy = GenerationType.AUTO)
  14 + private int id;
  15 +
  16 + @Column(unique = true)
  17 + private String nom;
  18 +
  19 + private float prix;
  20 +
  21 + public Consommation() {
  22 + }
  23 +
  24 + public int getId() {
  25 + return id;
  26 + }
  27 +
  28 + public void setId(int id) {
  29 + this.id = id;
  30 + }
  31 +
  32 + public String getNom() {
  33 + return nom;
  34 + }
  35 +
  36 + public void setNom(String nom) {
  37 + this.nom = nom;
  38 + }
  39 +
  40 + public float getPrix() {
  41 + return prix;
  42 + }
  43 +
  44 + public void setPrix(float prix) {
  45 + this.prix = prix;
  46 + }
  47 +}
... ...
src/main/java/etunicorn/entity/Evenement.java 0 → 100644
... ... @@ -0,0 +1,76 @@
  1 +package etunicorn.entity;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonFormat;
  4 +import com.fasterxml.jackson.annotation.JsonIgnore;
  5 +
  6 +import javax.persistence.*;
  7 +import java.util.Date;
  8 +import java.util.List;
  9 +
  10 +/**
  11 + * etunicorn-server
  12 + * Copyright © 2017 Le Club Info Polytech Lille
  13 + * Tous droits réservés
  14 + */
  15 +@Entity
  16 +public class Evenement {
  17 + @Id
  18 + @GeneratedValue(strategy = GenerationType.AUTO)
  19 + private int id;
  20 +
  21 + @Column(unique = true)
  22 + private String nom;
  23 +
  24 + private float prix;
  25 +
  26 + private Date date;
  27 +
  28 + @ManyToMany(mappedBy = "participations")
  29 + private List<Personne> participants;
  30 +
  31 + public Evenement(String nom) {
  32 + this.nom = nom;
  33 + }
  34 +
  35 + public int getId() {
  36 + return id;
  37 + }
  38 +
  39 + public void setId(int id) {
  40 + this.id = id;
  41 + }
  42 +
  43 + public String getNom() {
  44 + return nom;
  45 + }
  46 +
  47 + public void setNom(String nom) {
  48 + this.nom = nom;
  49 + }
  50 +
  51 + public float getPrix() {
  52 + return prix;
  53 + }
  54 +
  55 + public void setPrix(float prix) {
  56 + this.prix = prix;
  57 + }
  58 +
  59 + @JsonFormat(pattern = "YYYY-MM-DD hh:mm:ss")
  60 + public Date getDate() {
  61 + return date;
  62 + }
  63 +
  64 + public void setDate(Date date) {
  65 + this.date = date;
  66 + }
  67 +
  68 + @JsonIgnore
  69 + public List<Personne> getParticipants() {
  70 + return participants;
  71 + }
  72 +
  73 + public void setParticipants(List<Personne> participants) {
  74 + this.participants = participants;
  75 + }
  76 +}
... ...
src/main/java/etunicorn/entity/Personne.java
1 1 package etunicorn.entity;
2 2  
3 3 import com.fasterxml.jackson.annotation.JsonFormat;
  4 +import com.fasterxml.jackson.annotation.JsonIgnore;
4 5  
5 6 import javax.persistence.*;
6 7 import java.util.Date;
  8 +import java.util.List;
7 9  
8 10 /**
9 11 * etunicorn-server
... ... @@ -13,18 +15,30 @@ import java.util.Date;
13 15 @Entity
14 16 public class Personne {
15 17  
16   -
17   - @ManyToOne
18   - public Role role;
19 18 @Id
20 19 @GeneratedValue(strategy = GenerationType.AUTO)
21 20 private int id;
  21 +
22 22 @Column(unique = true)
23 23 private String carte;
  24 +
24 25 private Date naissance;
  26 +
25 27 @Column(unique = true)
26 28 private String login;
27 29  
  30 + @ManyToOne
  31 + private Role role;
  32 +
  33 + @OneToMany(mappedBy = "participant")
  34 + private List<Transaction> operations;
  35 +
  36 + @OneToMany(mappedBy = "acteur")
  37 + private List<Transaction> realisees;
  38 +
  39 + @ManyToMany()
  40 + private List<Evenement> participations;
  41 +
28 42  
29 43 public Personne() {
30 44 }
... ... @@ -80,4 +94,31 @@ public class Personne {
80 94 public boolean hasPermission(Permission permission) {
81 95 return role.hasPermission(permission);
82 96 }
  97 +
  98 + @JsonIgnore
  99 + public List<Transaction> getOperations() {
  100 + return operations;
  101 + }
  102 +
  103 + public void setOperations(List<Transaction> operations) {
  104 + this.operations = operations;
  105 + }
  106 +
  107 + @JsonIgnore
  108 + public List<Transaction> getRealisees() {
  109 + return realisees;
  110 + }
  111 +
  112 + public void setRealisees(List<Transaction> realisees) {
  113 + this.realisees = realisees;
  114 + }
  115 +
  116 + @JsonIgnore
  117 + public List<Evenement> getParticipations() {
  118 + return participations;
  119 + }
  120 +
  121 + public void setParticipations(List<Evenement> participations) {
  122 + this.participations = participations;
  123 + }
83 124 }
... ...
src/main/java/etunicorn/entity/Role.java
1 1 package etunicorn.entity;
2 2  
3   -import javax.persistence.Column;
4   -import javax.persistence.Entity;
5   -import javax.persistence.Id;
6   -import javax.persistence.OneToMany;
7   -import java.util.ArrayList;
  3 +import com.fasterxml.jackson.annotation.JsonIgnore;
  4 +
  5 +import javax.persistence.*;
8 6 import java.util.Collection;
9 7 import java.util.List;
10 8  
... ... @@ -19,8 +17,11 @@ public class Role {
19 17 @Column(unique = true)
20 18 private String nom = "etudiant";
21 19  
22   - @OneToMany
23   - private List<Permission> permissions = new ArrayList<>();
  20 + @ManyToMany
  21 + private List<Permission> permissions;
  22 +
  23 + @OneToMany(mappedBy = "role")
  24 + private List<Personne> membres;
24 25  
25 26 public Role() {
26 27 }
... ... @@ -57,4 +58,13 @@ public class Role {
57 58 public void delPermission(Permission permission) {
58 59 this.permissions.remove(permission);
59 60 }
  61 +
  62 + @JsonIgnore
  63 + public List<Personne> getMembres() {
  64 + return membres;
  65 + }
  66 +
  67 + public void setMembres(List<Personne> membres) {
  68 + this.membres = membres;
  69 + }
60 70 }
... ...
src/main/java/etunicorn/entity/Transaction.java 0 → 100644
... ... @@ -0,0 +1,94 @@
  1 +package etunicorn.entity;
  2 +
  3 +import com.fasterxml.jackson.annotation.JsonFormat;
  4 +
  5 +import javax.persistence.*;
  6 +import java.util.Date;
  7 +
  8 +/**
  9 + * etunicorn-server
  10 + * Copyright © 2017 Le Club Info Polytech Lille
  11 + * Tous droits réservés
  12 + */
  13 +@Entity
  14 +public class Transaction {
  15 + @Id
  16 + @GeneratedValue(strategy = GenerationType.AUTO)
  17 + private int id;
  18 +
  19 + private Date date;
  20 +
  21 + private float prix;
  22 +
  23 + @ManyToOne()
  24 + private Personne acteur;
  25 +
  26 + @ManyToOne()
  27 + private Personne participant;
  28 +
  29 + @ManyToOne
  30 + private Consommation consommation;
  31 +
  32 + @ManyToOne
  33 + private Evenement evenement;
  34 +
  35 + public Transaction() {
  36 + }
  37 +
  38 + public int getId() {
  39 + return id;
  40 + }
  41 +
  42 + public void setId(int id) {
  43 + this.id = id;
  44 + }
  45 +
  46 + @JsonFormat(pattern = "YYYY-MM-DD hh:mm:ss")
  47 + public Date getDate() {
  48 + return date;
  49 + }
  50 +
  51 + public void setDate(Date date) {
  52 + this.date = date;
  53 + }
  54 +
  55 + public float getPrix() {
  56 + return prix;
  57 + }
  58 +
  59 + public void setPrix(float prix) {
  60 + this.prix = prix;
  61 + }
  62 +
  63 + public Personne getActeur() {
  64 + return acteur;
  65 + }
  66 +
  67 + public void setActeur(Personne acteur) {
  68 + this.acteur = acteur;
  69 + }
  70 +
  71 + public Personne getParticipant() {
  72 + return participant;
  73 + }
  74 +
  75 + public void setParticipant(Personne participant) {
  76 + this.participant = participant;
  77 + }
  78 +
  79 + public Consommation getConsommation() {
  80 + return consommation;
  81 + }
  82 +
  83 + public void setConsommation(Consommation consommation) {
  84 + this.consommation = consommation;
  85 + }
  86 +
  87 + public Evenement getEvenement() {
  88 + return evenement;
  89 + }
  90 +
  91 + public void setEvenement(Evenement evenement) {
  92 + this.evenement = evenement;
  93 + }
  94 +}
... ...