From: <fa...@vh...> - 2005-09-12 15:05:05
|
Author: fabrice Date: 2005-09-12 16:55:55 +0200 (Mon, 12 Sep 2005) New Revision: 777 Modified: ccm-cms/trunk/src/com/arsdigita/cms/ContentSectionServlet.java Log: Let users log in first Modified: ccm-cms/trunk/src/com/arsdigita/cms/ContentSectionServlet.java =================================================================== --- ccm-cms/trunk/src/com/arsdigita/cms/ContentSectionServlet.java 2005-09-12 14:55:36 UTC (rev 776) +++ ccm-cms/trunk/src/com/arsdigita/cms/ContentSectionServlet.java 2005-09-12 14:55:55 UTC (rev 777) @@ -25,12 +25,14 @@ import com.arsdigita.cms.dispatcher.TemplateResolver; import com.arsdigita.cms.publishToFile.LocalRequestPassword; import com.arsdigita.cms.lifecycle.Lifecycle; +import com.arsdigita.dispatcher.AccessDeniedException; import com.arsdigita.dispatcher.DispatcherHelper; import com.arsdigita.dispatcher.RequestContext; import com.arsdigita.domain.DataObjectNotFoundException; import com.arsdigita.domain.DomainObjectFactory; import com.arsdigita.kernel.ACSObjectCache; import com.arsdigita.kernel.Kernel; +import com.arsdigita.kernel.Party; import com.arsdigita.kernel.User; import com.arsdigita.persistence.AbstractTransactionListener; import com.arsdigita.persistence.OID; @@ -41,13 +43,11 @@ import com.arsdigita.versioning.Versions; import com.arsdigita.web.Application; import com.arsdigita.web.BaseApplicationServlet; +import com.arsdigita.web.LoginSignal; import com.arsdigita.web.Web; + import org.apache.log4j.Logger; -import javax.servlet.RequestDispatcher; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.math.BigDecimal; import java.math.BigInteger; @@ -55,6 +55,10 @@ import java.util.Date; import java.util.HashMap; import java.util.Map; +import javax.servlet.RequestDispatcher; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; public class ContentSectionServlet extends BaseApplicationServlet { @@ -389,7 +393,15 @@ if (!hasPermission && !LocalRequestPassword.validLocalRequest(request)) { - throw new com.arsdigita.dispatcher.AccessDeniedException(); + + // first, check if the user is logged-in + // if he isn't, give him a chance to do so... + Party user = Kernel.getContext().getParty(); + if (user == null) { + throw new LoginSignal(request); + } + + throw new AccessDeniedException(); } return item; |