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);
|
}
|
}
|