package edu.asu.spring.quadriga.aspects; import java.util.List; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import edu.asu.spring.quadriga.domain.impl.networks.Network; import edu.asu.spring.quadriga.domain.network.INetwork; import edu.asu.spring.quadriga.exceptions.IllegalObjectException; import edu.asu.spring.quadriga.exceptions.QuadrigaAccessException; import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException; import edu.asu.spring.quadriga.service.editor.IEditorAccessManager; /** * Service level Implementation of {@link IAuthorization} for {@link INetwork}. * This class specifically works on authorization check of user for * {@link INetwork} access. * * @author Kiran kumar * */ @Service("networkAuthorization") public class NetworkAuthorization implements IAuthorization { @Autowired private IEditorAccessManager accessManager; private final Logger logger = LoggerFactory.getLogger(NetworkAuthorization.class); @Override public boolean chkAuthorization(String userName, Object accessObject, String[] userRoles) throws QuadrigaStorageException, QuadrigaAccessException { // check if the user has a editor role for the network specified String networkId = null; if (accessObject instanceof String) { networkId = (String) accessObject; } else { try { INetwork nwObj = (Network) accessObject; networkId = nwObj.getNetworkId(); } catch (ClassCastException cce) { throw new IllegalObjectException(cce); } } return accessManager.checkIsNetworkEditor(networkId, userName); } @Override public boolean chkAuthorizationByRole(String userName, String[] userRoles) throws QuadrigaStorageException, QuadrigaAccessException { // check if the user has a editor role associated return accessManager.checkIsEditor(userName); } @Override public boolean chkAuthorization(String userName, List<String> accessObjectId, String[] userRoles) throws QuadrigaStorageException, QuadrigaAccessException { // TODO Auto-generated method stub return false; } }