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;
|