OWL ITS + 탐지시스템(인터넷 진흥원)
이민희
2022-02-18 612b5a21417f3c8dcaed84c1c0691dc883088f61
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
package kr.wisestone.owl.service.impl;
 
import com.google.common.collect.Lists;
import kr.wisestone.owl.domain.Permission;
import kr.wisestone.owl.domain.ProjectRole;
import kr.wisestone.owl.domain.ProjectRolePermission;
import kr.wisestone.owl.repository.ProjectRolePermissionRepository;
import kr.wisestone.owl.service.PermissionService;
import kr.wisestone.owl.service.ProjectRolePermissionService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
 
@Service
public class ProjectRolePermissionServiceImpl extends AbstractServiceImpl<ProjectRolePermission, Long, JpaRepository<ProjectRolePermission, Long>> implements ProjectRolePermissionService {
 
    private static final Logger log = LoggerFactory.getLogger(ProjectRolePermissionServiceImpl.class);
 
    @Autowired
    private ProjectRolePermissionRepository projectRolePermissionRepository;
 
    @Autowired
    private PermissionService permissionService;
 
    @Override
    protected JpaRepository<ProjectRolePermission, Long> getRepository() {
        return this.projectRolePermissionRepository;
    }
 
    //  해당 프로젝트 역할과 권한을 연결시킨다.
    @Override
    @Transactional
    public void addDefaultProjectRoleAssociatedPermissions(ProjectRole projectRole, String roleType) {
        List<Permission> permissions = this.permissionService.findByRoleType(roleType);
        List<ProjectRolePermission> projectRolePermissions = Lists.newArrayList();
 
        permissions.parallelStream().forEach(permission -> {
            ProjectRolePermission projectRolePermission = new ProjectRolePermission(projectRole, permission);
            projectRolePermissions.add(projectRolePermission);
        });
 
        this.projectRolePermissionRepository.saveAll(projectRolePermissions);
    }
}