Subversion Repositories bacoAlunos

Rev

Rev 208 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web.tags;

import org.apache.log4j.Logger;
import org.apache.struts.util.RequestUtils;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.Globals;

import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.JspWriter;

public class CanManageTag extends BodyTagSupport
{

    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(CanManageTag.class);

    private 1.5.0/docs/api/java/lang/String.html">String name;

    private 1.5.0/docs/api/java/lang/String.html">String property;

    private 1.5.0/docs/api/java/lang/String.html">String valid;

    public 1.5.0/docs/api/java/lang/String.html">String getName()
    {
        return name;
    }

    public void setName(1.5.0/docs/api/java/lang/String.html">String name)
    {
        this.name = name;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getProperty()
    {
        return property;
    }

    public void setProperty(1.5.0/docs/api/java/lang/String.html">String property)
    {
        this.property = property;
    }


    public 1.5.0/docs/api/java/lang/String.html">String getValid()
    {
        return valid;
    }

    public void setValid(1.5.0/docs/api/java/lang/String.html">String valid)
    {
        this.valid = valid;
    }

    public int doStartTag() throws JspException
    {
        if (go())
        {
            return EVAL_BODY_TAG;
        }
        else
            return SKIP_BODY;
    }

    public boolean go() throws JspException
    {

        UserSessionImpl userSession = (UserSessionImpl) pageContext.getRequest().getAttribute(Globals.USER_SESSION_KEY);

        IOwned owned = (IOwned) RequestUtils.lookup(pageContext, name, property, null);


        IInternal iInternal = (IInternal) owned;
        1.5.0/docs/api/java/lang/System.html">System.out.println("userSession: " + userSession);
        1.5.0/docs/api/java/lang/System.html">System.out.println("iInternal: " + iInternal);
        if((userSession==null || userSession.getUser() == null) && iInternal.isInternal())
        {
            return false;
        }
        else if(this.valid != null)
        {
            boolean valid = 1.5.0/docs/api/java/lang/Boolean.html">Boolean.parseBoolean(this.valid);
            IValid iValid = (IValid) owned;
            return owned != null && userSession != null && userSession.getUser() != null && (iValid.isValid() == valid && owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());
        }
        else
            return owned != null && userSession != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin());

    }

    public int doEndTag() throws JspException
    {
        if(go())
        {
            1.5.0/docs/api/java/lang/String.html">String toPage = bodyContent.getString().trim();
            JspWriter writer = pageContext.getOut();
            try
            {
                writer.write(toPage);
            }
            catch (1.5.0/docs/api/java/lang/Exception.html">Exception e)
            {
                logger.error(e, e);
                throw new JspException(e);
            }
        }

        // Continue processing this page
        return EVAL_PAGE;
    }


}