Package er.directtorest.security

Source Code of er.directtorest.security.ERD2RestDefaultSecurityDelegate

package er.directtorest.security;

import com.webobjects.directtoweb.D2WContext;
import com.webobjects.eoaccess.EOEntity;
import com.webobjects.eocontrol.EOEnterpriseObject;

import er.directtorest.ERDirectToRest;
import er.extensions.foundation.ERXValueUtilities;
import er.rest.entityDelegates.ERXRestContext;
import er.rest.entityDelegates.IERXRestSecurityDelegate;

public class ERD2RestDefaultSecurityDelegate implements IERXRestSecurityDelegate {

    protected boolean booleanValueForKey(String key, String propertyKey, EOEnterpriseObject eo) {
        D2WContext context = ERDirectToRest.d2wContext();
        context.setPropertyKey(propertyKey);
        context.takeValueForKey(eo, "object");
        return ERXValueUtilities.booleanValue(context.valueForKey(key));
    }
   
    public boolean canDeleteObject(EOEntity entity, EOEnterpriseObject eo, ERXRestContext context) {
        return booleanValueForKey("restCanDelete", null, eo);
    }

    public boolean canInsertObject(EOEntity entity, ERXRestContext context) {
        return booleanValueForKey("restCanInsert", null, null);
    }

    public boolean canInsertObject(EOEntity parentEntity, Object parentObject, String parentKey, EOEntity entity, ERXRestContext context) {
        // AK CHECKME : does this make sense?
        return booleanValueForKey("restCanInsert", parentKey, null) && booleanValueForKey("restCanInsert", null, null);
    }

    public boolean canInsertProperty(EOEntity entity, EOEnterpriseObject eo, String propertyName, ERXRestContext context) {
        return booleanValueForKey("restCanInsert", propertyName, eo);
    }

    public boolean canUpdateObject(EOEntity entity, EOEnterpriseObject eo, ERXRestContext context) {
        return booleanValueForKey("restCanUpdate", null, eo);
    }

    public boolean canUpdateProperty(EOEntity entity, EOEnterpriseObject eo, String propertyName, ERXRestContext context) {
        return booleanValueForKey("restCanUpdate", propertyName, eo);
    }

    public boolean canViewObject(EOEntity entity, EOEnterpriseObject eo, ERXRestContext context) {
        return booleanValueForKey("restCanView", null, eo);
    }

    public boolean canViewProperty(EOEntity entity, Object obj, String propertyName, ERXRestContext context) {
        return booleanValueForKey("restCanView", propertyName, null);
    }

}
TOP

Related Classes of er.directtorest.security.ERD2RestDefaultSecurityDelegate

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.