Package fr.enseirbmatmeca.apms.tapestry.pages

Source Code of fr.enseirbmatmeca.apms.tapestry.pages.DetailProject

package fr.enseirbmatmeca.apms.tapestry.pages;

import java.util.List;

import org.apache.tapestry5.Link;
import org.apache.tapestry5.annotations.CleanupRender;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.PageRenderLinkSource;
import org.apache.tapestry5.services.Request;

import fr.enseirbmatmeca.apms.spring.model.project.ProjectCollection;
import fr.enseirbmatmeca.apms.spring.security.ConstantRoleUserService;
import fr.enseirbmatmeca.apms.spring.security.ProjectRole;
import fr.enseirbmatmeca.apms.spring.service.ProjectManager;
import fr.enseirbmatmeca.apms.spring.service.UserManager;

public class DetailProject extends Security{

  @Inject
  protected Request request;
  @Inject
  private PageRenderLinkSource prls;

  private String errorMessage;

  @Inject
  private ProjectManager projectManager;


  Object onActivate() {
    String role = getRole();
    String idProject = (String) request.getParameter("id");

    if (idProject==null){
      errorMessage="Invalid id. Ex : detailproject?id=...";
      return null;
    }
   
    List<ProjectRole> listProjectRole = getListProjectRole(idProject);

    if (role==null)
      return Index.class


    else if (role.equals(ConstantRoleUserService.ADMINISTRATOR)) {
      Link link = prls.createPageRenderLink(fr.enseirbmatmeca.apms.tapestry.pages.administrator.DetailProject.class);
      link.addParameter("id", idProject);
      return link;
    }

    else if (role.equals(ConstantRoleUserService.USER)){
      if (listProjectRole==null){
        errorMessage="Project list role server error";
        return null;
      }

      if(listProjectRole.size() == 0){
        //VISITOR
        Link link = prls.createPageRenderLink(fr.enseirbmatmeca.apms.tapestry.pages.visitor.DetailProject.class);
        link.addParameter("id", idProject);
        return link;
      }

      Link link = prls.createPageRenderLink(Index.class);
      for (ProjectRole projectRole : listProjectRole)
        if(projectRole.getProjectCollectionId() != null){
          //it's a tutor ( see DAO implementation )
          // we check if project is inside a project collection he manages
          boolean check = projectManager.checkProjectIntoProjectCollection(idProject, projectRole.getProjectCollectionId());
          if(check){
            link = prls.createPageRenderLink(fr.enseirbmatmeca.apms.tapestry.pages.tutor.DetailProject.class);
            link.addParameter("id", idProject);
          }
        }

        else if (projectRole.getProjectGroupId() != null){

          //it's a reporter or a student ( see DAO implementation )
          // we check if project is inside a project group he is part of
          boolean check = projectManager.checkProjectIntoProjectGroup(idProject, projectRole.getProjectGroupId());
          if(check){

            if (projectRole.getAuthority().equals(ProjectRole.AUTHORITY_REPORTER))
              link =  prls.createPageRenderLink(fr.enseirbmatmeca.apms.tapestry.pages.reporter.DetailProject.class);

            else if (projectRole.getAuthority().equals(ProjectRole.AUTHORITY_STUDENT)) 
              link =  prls.createPageRenderLink(fr.enseirbmatmeca.apms.tapestry.pages.student.DetailProject.class);
           
            link.addParameter("id", idProject);
            link.addParameter("group", projectRole.getProjectGroupId());
          }

        }

      return link;

    }

    return Index.class

  }

  @CleanupRender
  public void cleanup() {
    this.errorMessage = null;
  }

  public String getErrorMessage() {
    return this.errorMessage;
  }

}
TOP

Related Classes of fr.enseirbmatmeca.apms.tapestry.pages.DetailProject

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.