Completed
Pull Request — dev (#338)
by Konstantin
04:20
created

hasAccess(SubjectModelInterface,UserModelInterface)   A

Complexity

Conditions 1

Size

Total Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 2
rs 10
1
package easytests.auth.services;
2
3
import easytests.core.models.QuestionModelInterface;
4
import easytests.core.models.SubjectModelInterface;
5
import easytests.core.models.TopicModelInterface;
6
import easytests.core.models.UserModelInterface;
7
import org.springframework.beans.factory.annotation.Autowired;
8
import org.springframework.stereotype.Service;
9
10
11
/**
12
 * @author malinink
13
 */
14
@Service
15
public class AccessControlLayerService implements AccessControlLayerServiceInterface {
16
17
    @Autowired
18
    private SessionServiceInterface sessionService;
19
20
    @Override
21
    public Boolean hasAccess(UserModelInterface source) {
22
        return this.hasAccess(source, this.sessionService.getUserModel());
23
    }
24
25
    private Boolean hasAccess(UserModelInterface source, UserModelInterface userModel) {
26
        return userModel != null && source.getId().equals(userModel.getId());
27
    }
28
29
    @Override
30
    public Boolean hasAccess(SubjectModelInterface source) {
31
        return this.hasAccess(source, this.sessionService.getUserModel());
32
    }
33
34
    private Boolean hasAccess(SubjectModelInterface source, UserModelInterface userModel) {
35
        return userModel != null && source.getUser().getId().equals(userModel.getId());
36
    }
37
38
    @Override
39
    public Boolean hasAccess(TopicModelInterface source) {
40
        return this.hasAccess(source, this.sessionService.getUserModel());
41
    }
42
43
    private Boolean hasAccess(TopicModelInterface source, UserModelInterface userModel) {
44
        return this.hasAccess(source.getSubject(), userModel);
45
    }
46
47
    @Override
48
    public Boolean hasAccess(QuestionModelInterface source) {
49
        return this.hasAccess(source, this.sessionService.getUserModel());
50
    }
51
52
    private Boolean hasAccess(QuestionModelInterface source, UserModelInterface userModel) {
53
        return this.hasAccess(source.getTopic(), userModel);
54
    }
55
}
56