/** * */ package net.conselldemallorca.helium.core.security; import java.util.List; import javax.annotation.Resource; import org.springframework.security.acls.model.AccessControlEntry; import org.springframework.security.acls.model.ObjectIdentity; import org.springframework.security.acls.model.Permission; import net.conselldemallorca.helium.core.helperv26.PermisosHelper; import net.conselldemallorca.helium.core.model.hibernate.GenericEntity; /** * Per a permetre cridar al PermisosHelper sense haver de * fer canvis als serveis de versions 2.x. * * @author Limit Tecnologies <limit@limit.es> */ public class AclServiceDao { @Resource private PermisosHelper permisosHelper; public void assignarPermisUsuari( String userName, Class<?> objectClass, Long objectIdentifier, Permission permission) { permisosHelper.assignarPermisUsuari( userName, objectClass, objectIdentifier, permission); } public void assignarPermisRol( String roleName, Class<?> objectClass, Long objectIdentifier, Permission permission) { permisosHelper.assignarPermisRol( roleName, objectClass, objectIdentifier, permission); } public void revocarPermisUsuari( String userName, Class<?> objectClass, Long objectIdentifier, Permission permission) { permisosHelper.revocarPermisUsuari( userName, objectClass, objectIdentifier, permission); } public void revocarPermisRol( String roleName, Class<?> objectClass, Long objectIdentifier, Permission permission) { permisosHelper.revocarPermisRol( roleName, objectClass, objectIdentifier, permission); } public void revocarPermisosUsuari( String userName, Class<?> objectClass, Long objectIdentifier) { for (Permission permission: PermissionUtil.permissionMap.values()) { permisosHelper.revocarPermisUsuari( userName, objectClass, objectIdentifier, permission); } } public void revocarPermisosRol( String roleName, Class<?> objectClass, Long objectIdentifier) { for (Permission permission: PermissionUtil.permissionMap.values()) { permisosHelper.revocarPermisRol( roleName, objectClass, objectIdentifier, permission); } } public List<AccessControlEntry> findAclsByOid( ObjectIdentity oid) { try { return permisosHelper.getAclSids( Class.forName(oid.getType()), (Long)oid.getIdentifier()); } catch (ClassNotFoundException e) { return null; } } @SuppressWarnings("rawtypes") public boolean isGrantedAny( GenericEntity object, Class clazz, Permission[] permissions) { return permisosHelper.isGrantedAny( (Long)object.getId(), clazz, permissions); } }