Passed
Pull Request — dev (#397)
by Konstantin
04:05
created

easytests.auth.services.AccessControlLayerService   A

Complexity

Total Complexity 12

Size/Duplication

Total Lines 58
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 12
dl 0
loc 58
c 0
b 0
f 0
rs 10

12 Methods

Rating   Name   Duplication   Size   Complexity  
A hasAccess(UserModelInterface) 0 3 1
A hasAccess(IssueModelInterface,UserModelInterface) 0 2 1
A hasAccess(IssueModelInterface) 0 3 1
A hasAccess(UserModelInterface,UserModelInterface) 0 2 1
A hasAccess(QuizModelInterface,UserModelInterface) 0 2 1
A hasAccess(QuizModelInterface) 0 3 1
A hasAccess(TopicModelInterface,UserModelInterface) 0 2 1
A hasAccess(TopicModelInterface) 0 3 1
A hasAccess(QuestionModelInterface) 0 3 1
A hasAccess(SubjectModelInterface) 0 3 1
A hasAccess(SubjectModelInterface,UserModelInterface) 0 2 1
A hasAccess(QuestionModelInterface,UserModelInterface) 0 2 1
1
package easytests.auth.services;
2
3
import easytests.core.models.*;
4
import org.springframework.beans.factory.annotation.Autowired;
5
import org.springframework.stereotype.Service;
6
7
8
/**
9
 * @author malinink
10
 */
11
@Service
12
public class AccessControlLayerService implements AccessControlLayerServiceInterface {
13
14
    @Autowired
15
    private SessionServiceInterface sessionService;
16
17
    @Override
18
    public Boolean hasAccess(UserModelInterface source) {
19
        return this.hasAccess(source, this.sessionService.getUserModel());
20
    }
21
22
    private Boolean hasAccess(UserModelInterface source, UserModelInterface userModel) {
23
        return userModel != null && source.getId().equals(userModel.getId());
24
    }
25
26
    @Override
27
    public Boolean hasAccess(SubjectModelInterface source) {
28
        return this.hasAccess(source, this.sessionService.getUserModel());
29
    }
30
31
    private Boolean hasAccess(SubjectModelInterface source, UserModelInterface userModel) {
32
        return userModel != null && source.getUser().getId().equals(userModel.getId());
33
    }
34
35
    @Override
36
    public Boolean hasAccess(TopicModelInterface source) {
37
        return this.hasAccess(source, this.sessionService.getUserModel());
38
    }
39
40
    private Boolean hasAccess(TopicModelInterface source, UserModelInterface userModel) {
41
        return this.hasAccess(source.getSubject(), userModel);
42
    }
43
44
    @Override
45
    public Boolean hasAccess(QuestionModelInterface source) {
46
        return this.hasAccess(source, this.sessionService.getUserModel());
47
    }
48
49
    private Boolean hasAccess(QuestionModelInterface source, UserModelInterface userModel) {
50
        return this.hasAccess(source.getTopic(), userModel);
51
    }
52
53
    @Override
54
    public Boolean hasAccess(IssueModelInterface source) {
55
        return this.hasAccess(source, this.sessionService.getUserModel());
56
    }
57
58
    private Boolean hasAccess(IssueModelInterface source, UserModelInterface userModel) {
59
        return this.hasAccess(source.getSubject(), userModel);
60
    }
61
62
    @Override
63
    public Boolean hasAccess(QuizModelInterface source) {
64
        return this.hasAccess(source, this.sessionService.getUserModel());
65
    }
66
67
    private Boolean hasAccess(QuizModelInterface source, UserModelInterface userModel) {
68
        return this.hasAccess(source.getIssue(), userModel);
69
    }
70
71
}
72