From f540a4bc29173d44db5fbdeddd97c13d805bcddf Mon Sep 17 00:00:00 2001 From: rvangrev Date: Thu, 13 Oct 2016 12:25:08 +0200 Subject: [PATCH] Fin TP --- src/main/java/fr/plil/sio/persistence/api/GroupService.java | 2 +- src/main/java/fr/plil/sio/persistence/jdbc/GroupRepository.java | 3 ++- src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java | 7 ++++--- src/main/java/fr/plil/sio/persistence/jdbc/GroupServiceJdbc.java | 10 ++++++---- src/main/java/fr/plil/sio/persistence/jdbc/UserRepositoryJdbc.java | 8 +++++++- 5 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/main/java/fr/plil/sio/persistence/api/GroupService.java b/src/main/java/fr/plil/sio/persistence/api/GroupService.java index 94eb212..47d0d56 100644 --- a/src/main/java/fr/plil/sio/persistence/api/GroupService.java +++ b/src/main/java/fr/plil/sio/persistence/api/GroupService.java @@ -12,7 +12,7 @@ public interface GroupService { * @throws IllegalStateException if a group with the same name is already present */ Group create(String name); - + /** * Delete a group in the database. Remove all users in the group. * diff --git a/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepository.java b/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepository.java index dd0aea4..95e7b5e 100644 --- a/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepository.java +++ b/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepository.java @@ -1,6 +1,7 @@ package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Group; +import fr.plil.sio.persistence.api.Right; public interface GroupRepository { @@ -12,5 +13,5 @@ public interface GroupRepository { void removeRight(Long right, Long group); - void addRight(Long right, Long group); + void addRight(Right right, Group group); } diff --git a/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java b/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java index f3fb295..c99a527 100644 --- a/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java +++ b/src/main/java/fr/plil/sio/persistence/jdbc/GroupRepositoryJdbc.java @@ -1,6 +1,7 @@ package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Group; +import fr.plil.sio.persistence.api.Right; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -136,8 +137,9 @@ public class GroupRepositoryJdbc implements GroupRepository { } } } + @Override - public void addRight(Long right, Long group){ + public void addRight(Right right, Group group){ Statement stmt = null; ResultSet rs = null; if(right==null || group==null){ @@ -145,7 +147,7 @@ public class GroupRepositoryJdbc implements GroupRepository { } try { stmt = dataSource.getConnection().createStatement(); - stmt.execute("INSERT INTO LINK_T(RIGHT_ID, GROUP_ID) VALUES (" + group + "," + right + ")"); + stmt.execute("INSERT INTO LINK_T(RIGHT_ID, GROUP_ID) VALUES (" + right.getId() + "," + group.getId() + ")"); } catch (SQLException e) { throw new UnsupportedOperationException("sql exception", e); } finally { @@ -161,5 +163,4 @@ public class GroupRepositoryJdbc implements GroupRepository { } } } - } diff --git a/src/main/java/fr/plil/sio/persistence/jdbc/GroupServiceJdbc.java b/src/main/java/fr/plil/sio/persistence/jdbc/GroupServiceJdbc.java index 7a65d52..8ddcac9 100644 --- a/src/main/java/fr/plil/sio/persistence/jdbc/GroupServiceJdbc.java +++ b/src/main/java/fr/plil/sio/persistence/jdbc/GroupServiceJdbc.java @@ -3,6 +3,7 @@ package fr.plil.sio.persistence.jdbc; import fr.plil.sio.persistence.api.Group; import fr.plil.sio.persistence.api.GroupService; import fr.plil.sio.persistence.api.Right; +import java.util.ArrayList; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; @@ -73,12 +74,13 @@ public class GroupServiceJdbc implements GroupService { if(userRepository.isUserHasRight(groupRepository.findByName(groupName).getId(), right.getId())){ return false; } - Group g = groupRepository.findByName(groupName); - - g.getRights().add(right); - groupRepository.addRight(g.getId(), right.getId()); + groupRepository.addRight(right, g); + + if(!(g.getRights()).contains(right)){ + g.addRight(right); + } return true; } diff --git a/src/main/java/fr/plil/sio/persistence/jdbc/UserRepositoryJdbc.java b/src/main/java/fr/plil/sio/persistence/jdbc/UserRepositoryJdbc.java index 9f9ca6e..96e09ce 100644 --- a/src/main/java/fr/plil/sio/persistence/jdbc/UserRepositoryJdbc.java +++ b/src/main/java/fr/plil/sio/persistence/jdbc/UserRepositoryJdbc.java @@ -39,7 +39,9 @@ public class UserRepositoryJdbc implements UserRepository{ User user = new User(); user.setId(rs.getLong("USER_ID")); user.setName(rs.getString("NAME_U")); - user.setGroup(groupRepository.findByName("NAME_C")); + //On ajoute le groupe, sauf si il est nul + if(groupRepository.findByName(rs.getString("NAME_C"))!=null) + user.setGroup(groupRepository.findByName(rs.getString("NAME_C"))); return user; } else { logger.debug("not found " + name); @@ -134,6 +136,10 @@ public class UserRepositoryJdbc implements UserRepository{ if (rs.next()) { return true; } else { +// rs = stmt.executeQuery("SELECT * FROM LINK_T LI JOIN RIGHT_T RI ON RI.RIGHT_ID = LI.RIGHT_ID WHERE RI.PARENT_ID = " + right); +// if(rs.next()){ +// return true; +// } return false; } } catch (SQLException e) { -- libgit2 0.21.2