package kr.wisestone.owl.service.impl;
|
|
import com.google.common.base.Predicate;
|
import com.google.common.collect.Iterables;
|
import com.google.common.collect.Lists;
|
import kr.wisestone.owl.domain.Permission;
|
import kr.wisestone.owl.domain.User;
|
import kr.wisestone.owl.repository.PermissionRepository;
|
import kr.wisestone.owl.service.PermissionService;
|
import kr.wisestone.owl.util.ConvertUtil;
|
import kr.wisestone.owl.vo.PermissionVo;
|
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 PermissionServiceImpl extends AbstractServiceImpl<Permission, Long, JpaRepository<Permission, Long>> implements PermissionService {
|
|
private static final Logger log = LoggerFactory.getLogger(PermissionServiceImpl.class);
|
|
@Autowired
|
private PermissionRepository permissionRepository;
|
|
@Override
|
protected JpaRepository<Permission, Long> getRepository() {
|
return this.permissionRepository;
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public List<PermissionVo> findByUserId() {
|
|
User user = this.webAppUtil.getLoginUserObject();
|
|
List<PermissionVo> allPermission = ConvertUtil.convertObjectsToClasses(this.permissionRepository.findAll(), PermissionVo.class);
|
List<PermissionVo> userPermissions = Lists.newArrayList();
|
|
if (user != null) {
|
userPermissions.addAll(ConvertUtil.convertObjectsToClasses(this.permissionRepository.findByUserId(user.getId()), PermissionVo.class));
|
}
|
|
this.setPermissionActiveYn(allPermission, userPermissions);
|
|
return allPermission;
|
}
|
|
@Override
|
@Transactional(readOnly = true)
|
public List<Permission> findByRoleType(String roleType) {
|
return this.permissionRepository.findByRoleType(roleType);
|
}
|
|
private void setPermissionActiveYn(List<PermissionVo> allPermissionVos, List<PermissionVo> userPermissionVos) {
|
for (PermissionVo permissionVo : allPermissionVos) {
|
|
final Long permissionId = permissionVo.getId();
|
|
PermissionVo userPermission = Iterables.find(userPermissionVos, new Predicate<PermissionVo>() {
|
@Override
|
public boolean apply(PermissionVo input) {
|
return input.getId().equals(permissionId);
|
}
|
}, null);
|
|
if (userPermission != null) {
|
permissionVo.setActiveYn(Boolean.TRUE);
|
}
|
|
}
|
}
|
}
|