blob: 4c501e4c446353610909f88e1ea13d332bcca41d [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.ranger.db;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.NoResultException;
import org.apache.commons.collections.ListUtils;
import org.apache.ranger.common.db.BaseDao;
import org.apache.ranger.entity.XXPolicy;
import org.apache.ranger.plugin.model.RangerSecurityZone;
import org.springframework.stereotype.Service;
/**
*/
@Service
public class XXPolicyDao extends BaseDao<XXPolicy> {
/**
* Default Constructor
*/
public XXPolicyDao(RangerDaoManagerBase daoManager) {
super(daoManager);
}
public long getCountById(Long policyId) {
return getEntityManager()
.createNamedQuery("XXPolicy.countById", Long.class)
.setParameter("policyId", policyId)
.getSingleResult();
}
public XXPolicy findByNameAndServiceId(String polName, Long serviceId) {
return findByNameAndServiceIdAndZoneId(polName, serviceId, RangerSecurityZone.RANGER_UNZONED_SECURITY_ZONE_ID);
}
public XXPolicy findByNameAndServiceIdAndZoneId(String polName, Long serviceId, Long zoneId) {
if (polName == null || serviceId == null) {
return null;
}
XXPolicy ret;
try {
ret = getEntityManager()
.createNamedQuery("XXPolicy.findByNameAndServiceIdAndZoneId", tClass)
.setParameter("polName", polName).setParameter("serviceId", serviceId).setParameter("zoneId", zoneId)
.getSingleResult();
} catch (NoResultException e) {
ret = null;
}
return ret;
}
public XXPolicy findByPolicyName(String polName) {
if (polName == null) {
return null;
}
try {
XXPolicy xPol = getEntityManager().createNamedQuery("XXPolicy.findByPolicyName", tClass)
.setParameter("polName", polName).getSingleResult();
return xPol;
} catch (NoResultException e) {
return null;
}
}
public List<XXPolicy> findByServiceId(Long serviceId) {
if (serviceId == null) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager()
.createNamedQuery("XXPolicy.findByServiceId", tClass)
.setParameter("serviceId", serviceId).getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public List<Long> findPolicyIdsByServiceId(Long serviceId) {
List<Long> ret = new ArrayList<Long>();
try {
ret = getEntityManager()
.createNamedQuery("XXPolicy.findPolicyIdsByServiceId", Long.class)
.setParameter("serviceId", serviceId).getResultList();
} catch (Exception e) {
}
return ret;
}
public Long getMaxIdOfXXPolicy() {
try {
return (Long) getEntityManager().createNamedQuery("XXPolicy.getMaxIdOfXXPolicy").getSingleResult();
} catch (NoResultException e) {
return null;
}
}
public List<XXPolicy> findByResourceSignatureByPolicyStatus(String serviceName, String policySignature, Boolean isPolicyEnabled) {
if (policySignature == null || serviceName == null || isPolicyEnabled == null) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager().createNamedQuery("XXPolicy.findByResourceSignatureByPolicyStatus", tClass)
.setParameter("resSignature", policySignature)
.setParameter("serviceName", serviceName)
.setParameter("isPolicyEnabled", isPolicyEnabled)
.getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public List<XXPolicy> findByResourceSignature(String serviceName, String policySignature) {
if (policySignature == null || serviceName == null) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager().createNamedQuery("XXPolicy.findByResourceSignature", tClass)
.setParameter("resSignature", policySignature)
.setParameter("serviceName", serviceName)
.getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public List<XXPolicy> findByServiceDefId(Long serviceDefId) {
if(serviceDefId == null) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager().createNamedQuery("XXPolicy.findByServiceDefId", tClass)
.setParameter("serviceDefId", serviceDefId).getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public void updateSequence() {
Long maxId = getMaxIdOfXXPolicy();
if(maxId == null) {
return;
}
updateSequence("X_POLICY_SEQ", maxId + 1);
}
public List<XXPolicy> findByUserId(Long userId) {
if(userId == null || userId.equals(Long.valueOf(0L))) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager()
.createNamedQuery("XXPolicy.findByUserId", tClass)
.setParameter("userId", userId).getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public List<XXPolicy> findByGroupId(Long groupId) {
if(groupId == null || groupId.equals(Long.valueOf(0L))) {
return new ArrayList<XXPolicy>();
}
try {
return getEntityManager()
.createNamedQuery("XXPolicy.findByGroupId", tClass)
.setParameter("groupId", groupId).getResultList();
} catch (NoResultException e) {
return new ArrayList<XXPolicy>();
}
}
public List<Long> findPolicyIdsByServiceNameAndZoneId(String serviceName, Long zoneId) {
List<Long> ret = new ArrayList<Long>();
try {
ret = getEntityManager()
.createNamedQuery("XXPolicy.findPolicyIdsByServiceNameAndZoneId", Long.class)
.setParameter("serviceName", serviceName)
.setParameter("zoneId", zoneId)
.getResultList();
} catch (Exception e) {
}
return ret;
}
public List<XXPolicy> findByRoleId(Long roleId) {
List<XXPolicy> ret = ListUtils.EMPTY_LIST;
if (roleId != null) {
try {
ret = getEntityManager().createNamedQuery("XXPolicy.findByRoleId", tClass)
.setParameter("roleId", roleId)
.getResultList();
} catch (NoResultException excp) {
}
}
return ret;
}
public List<Long> findServiceIdsByRoleId(Long roleId) {
List<Long> ret = ListUtils.EMPTY_LIST;
if (roleId != null) {
try {
ret = getEntityManager().createNamedQuery("XXPolicy.findServiceIdsByRoleId", Long.class)
.setParameter("roleId", roleId)
.getResultList();
} catch (NoResultException excp) {
}
}
return ret;
}
public long findRoleRefPolicyCount(String roleName, Long serviceId) {
long ret = -1;
try {
return getEntityManager()
.createNamedQuery("XXPolicy.findRoleRefPolicyCount", Long.class)
.setParameter("serviceId", serviceId)
.setParameter("roleName", roleName).getSingleResult();
} catch (Exception e) {
}
return ret;
}
}