package edu.asu.spring.quadriga.web.publicwebsite;
import java.security.Principal;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import edu.asu.spring.quadriga.aspects.annotations.CheckAccess;
import edu.asu.spring.quadriga.aspects.annotations.CheckPublicAccess;
import edu.asu.spring.quadriga.aspects.annotations.InjectProject;
import edu.asu.spring.quadriga.aspects.annotations.InjectProjectByName;
import edu.asu.spring.quadriga.aspects.annotations.ProjectIdentifier;
import edu.asu.spring.quadriga.domain.workbench.IProject;
import edu.asu.spring.quadriga.exceptions.QuadrigaStorageException;
import edu.asu.spring.quadriga.service.publicwebsite.IAboutTextManager;
/**
* This controller is to map project/about page for public website. A formatted
* string is sent to jsp which is displayed in the correct HTML format
*
* @author Rajat Aggarwal
*
*/
@Controller
public class WebsiteAboutController {
@Autowired
private IAboutTextManager aboutTextManager;
@CheckPublicAccess
@InjectProjectByName
@RequestMapping(value = "sites/{ProjectUnixName}/about", method = RequestMethod.GET)
public String showAbout(@ProjectIdentifier @PathVariable("ProjectUnixName") String unixName,
@CheckAccess @InjectProject IProject project, Model model, Principal principal) throws QuadrigaStorageException {
String projectId = project.getProjectId();
model.addAttribute("project", project);
model.addAttribute("aboutText", aboutTextManager.getAboutTextByProjectId(projectId));
return "sites/public/PublicWebsiteAbout";
}
}