a800fde0
jcartign
First version, in...
|
1
2
3
4
5
|
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;
|
f540a4bc
rvangrev
Fin TP
|
6
|
import java.util.ArrayList;
|
7940aa22
jcartign
Finishing API jav...
|
7
|
import org.springframework.beans.factory.annotation.Autowired;
|
a800fde0
jcartign
First version, in...
|
8
|
import org.springframework.stereotype.Service;
|
ef4eb263
rvangrev
Nouvelles modific...
|
9
10
|
import java.util.List;
import java.util.LinkedList;
|
a800fde0
jcartign
First version, in...
|
11
12
13
|
@Service
public class GroupServiceJdbc implements GroupService {
|
7940aa22
jcartign
Finishing API jav...
|
14
15
16
|
@Autowired
private GroupRepository groupRepository;
|
73c004db
rvangrev
TP presque termin...
|
17
18
19
20
21
22
|
@Autowired
private RightRepository rightRepository;
@Autowired
private UserRepository userRepository;
|
7940aa22
jcartign
Finishing API jav...
|
23
|
|
a800fde0
jcartign
First version, in...
|
24
25
|
@Override
public Group create(String name) {
|
7940aa22
jcartign
Finishing API jav...
|
26
27
28
29
30
31
32
33
34
35
36
|
if (name == null) {
throw new IllegalArgumentException("name cannot be null");
}
Group group = groupRepository.findByName(name);
if (group != null) {
throw new IllegalStateException("a group with the same name already exists");
}
group = new Group();
group.setName(name);
groupRepository.save(group);
return group;
|
a800fde0
jcartign
First version, in...
|
37
38
39
|
}
@Override
|
5418cb05
jcartign
Javadoc of API is...
|
40
|
public boolean delete(String name) {
|
ef4eb263
rvangrev
Nouvelles modific...
|
41
42
43
44
45
46
47
48
49
50
51
52
53
|
if (name == null) {
throw new IllegalArgumentException("name cannot be null");
}
Group group = findByName(name);
if(group==null){
return false;
}
groupRepository.delete(group.getId());
return true;
|
a800fde0
jcartign
First version, in...
|
54
55
56
57
|
}
@Override
public Group findByName(String name) {
|
7940aa22
jcartign
Finishing API jav...
|
58
59
60
61
|
if (name == null) {
throw new IllegalArgumentException("name cannot be null");
}
return groupRepository.findByName(name);
|
a800fde0
jcartign
First version, in...
|
62
63
64
|
}
@Override
|
5418cb05
jcartign
Javadoc of API is...
|
65
|
public boolean addRight(String groupName, Right right) {
|
ef4eb263
rvangrev
Nouvelles modific...
|
66
67
68
69
70
71
72
73
|
if(groupName==null || right ==null){
throw new IllegalArgumentException("name cannot be null");
}
Group group = groupRepository.findByName(groupName);
if (group == null) {
throw new IllegalArgumentException("group cannot be null");
}
|
73c004db
rvangrev
TP presque termin...
|
74
75
76
|
if(userRepository.isUserHasRight(groupRepository.findByName(groupName).getId(), right.getId())){
return false;
}
|
fa02d31b
rvangrev
Commit avant le m...
|
77
|
Group g = groupRepository.findByName(groupName);
|
73c004db
rvangrev
TP presque termin...
|
78
|
|
f540a4bc
rvangrev
Fin TP
|
79
80
81
82
83
|
groupRepository.addRight(right, g);
if(!(g.getRights()).contains(right)){
g.addRight(right);
}
|
fa02d31b
rvangrev
Commit avant le m...
|
84
|
|
ef4eb263
rvangrev
Nouvelles modific...
|
85
|
return true;
|
a800fde0
jcartign
First version, in...
|
86
87
88
|
}
@Override
|
5418cb05
jcartign
Javadoc of API is...
|
89
|
public boolean removeRight(String groupName, Right right) {
|
73c004db
rvangrev
TP presque termin...
|
90
91
92
|
if(groupName==null){
throw new IllegalArgumentException("Groupname cannot be null");
}
|
ef4eb263
rvangrev
Nouvelles modific...
|
93
|
if(right==null){
|
fa02d31b
rvangrev
Commit avant le m...
|
94
|
throw new IllegalArgumentException("right cannot be null");
|
ef4eb263
rvangrev
Nouvelles modific...
|
95
96
97
|
}
Group group = groupRepository.findByName(groupName);
if (group != null) {
|
73c004db
rvangrev
TP presque termin...
|
98
|
throw new IllegalArgumentException("a group with the same name already exists");
|
ef4eb263
rvangrev
Nouvelles modific...
|
99
|
}
|
73c004db
rvangrev
TP presque termin...
|
100
101
102
103
104
|
groupRepository.removeRight(group.getId(), right.getId());
group.getRights().remove(right);
|
ef4eb263
rvangrev
Nouvelles modific...
|
105
|
return true;
|
a800fde0
jcartign
First version, in...
|
106
|
}
|
fa02d31b
rvangrev
Commit avant le m...
|
107
|
|
73c004db
rvangrev
TP presque termin...
|
108
|
public List<Right> addListRight(String groupName, Right right){
|
fa02d31b
rvangrev
Commit avant le m...
|
109
|
Group g = groupRepository.findByName(groupName);
|
73c004db
rvangrev
TP presque termin...
|
110
|
g.getRights().add(right);
|
fa02d31b
rvangrev
Commit avant le m...
|
111
112
|
return g.getRights();
}
|
73c004db
rvangrev
TP presque termin...
|
113
114
|
|
a800fde0
jcartign
First version, in...
|
115
|
}
|