added emergency fix to display a "login or create" dialog for all AccessErrors
thrown by the engine when trying to view a conference/topic/post and the user is not logged in
This commit is contained in:
parent
ae129e5410
commit
0bbd01e385
|
@ -278,5 +278,48 @@ public class StringUtil
|
||||||
|
|
||||||
} // end join
|
} // end join
|
||||||
|
|
||||||
} // end class StringUtil
|
public static final List splitList(String data, String delims)
|
||||||
|
{
|
||||||
|
if ((data==null) || (delims==null))
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
ArrayList rc = new ArrayList();
|
||||||
|
StringBuffer buf = new StringBuffer();
|
||||||
|
boolean accumulate = false;
|
||||||
|
for (int i=0; i<data.length(); i++)
|
||||||
|
{ // look at each character in turn
|
||||||
|
char ch = data.charAt(i);
|
||||||
|
if (delims.indexOf(ch)>=0)
|
||||||
|
{ // delimiter character - flush the string if we have one
|
||||||
|
if (accumulate)
|
||||||
|
{ // flush the buffer
|
||||||
|
rc.add(buf.toString());
|
||||||
|
buf.setLength(0);
|
||||||
|
accumulate = false;
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
|
||||||
|
} // end if
|
||||||
|
else
|
||||||
|
{ // ordinary character - accumulate it
|
||||||
|
accumulate = true;
|
||||||
|
buf.append(ch);
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
|
} // end for
|
||||||
|
|
||||||
|
if (rc.isEmpty())
|
||||||
|
return Collections.EMPTY_LIST;
|
||||||
|
else
|
||||||
|
return Collections.unmodifiableList(rc);
|
||||||
|
|
||||||
|
} // end splitList
|
||||||
|
|
||||||
|
public static final String[] splitArray(String data, String delims)
|
||||||
|
{
|
||||||
|
List tmp = splitList(data,delims);
|
||||||
|
return (String[])(tmp.toArray(new String[0]));
|
||||||
|
|
||||||
|
} // end splitArray
|
||||||
|
|
||||||
|
} // end class StringUtil
|
||||||
|
|
|
@ -164,6 +164,8 @@ public interface CommunityContext extends SearchMode
|
||||||
|
|
||||||
public abstract void delete() throws DataException, AccessError;
|
public abstract void delete() throws DataException, AccessError;
|
||||||
|
|
||||||
|
public abstract void deleteCommunity() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract void sendInvitation(String address, String personal_message)
|
public abstract void sendInvitation(String address, String personal_message)
|
||||||
throws AccessError, DataException, EmailException;
|
throws AccessError, DataException, EmailException;
|
||||||
|
|
||||||
|
|
|
@ -147,6 +147,8 @@ public interface ConferenceContext
|
||||||
|
|
||||||
public abstract void delete() throws DataException, AccessError;
|
public abstract void delete() throws DataException, AccessError;
|
||||||
|
|
||||||
|
public abstract void deleteConference() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract boolean canDeleteConference();
|
public abstract boolean canDeleteConference();
|
||||||
|
|
||||||
public abstract boolean isInHotlist();
|
public abstract boolean isInHotlist();
|
||||||
|
|
|
@ -21,6 +21,8 @@ public interface SideBoxDescriptor
|
||||||
{
|
{
|
||||||
public abstract int getID();
|
public abstract int getID();
|
||||||
|
|
||||||
|
public abstract int getSideBoxID();
|
||||||
|
|
||||||
public abstract int getSequence();
|
public abstract int getSequence();
|
||||||
|
|
||||||
public abstract String getTitle(boolean anonymous);
|
public abstract String getTitle(boolean anonymous);
|
||||||
|
|
|
@ -81,6 +81,8 @@ public interface TopicContext
|
||||||
|
|
||||||
public abstract void delete() throws DataException, AccessError;
|
public abstract void delete() throws DataException, AccessError;
|
||||||
|
|
||||||
|
public abstract void deleteTopic() throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract List getActivePosters(int skip, int limit) throws DataException, AccessError;
|
public abstract List getActivePosters(int skip, int limit) throws DataException, AccessError;
|
||||||
|
|
||||||
public abstract List getActivePosters(int limit) throws DataException, AccessError;
|
public abstract List getActivePosters(int limit) throws DataException, AccessError;
|
||||||
|
|
|
@ -1193,6 +1193,12 @@ class CommunityUserContextImpl implements CommunityContext, CommunityBackend
|
||||||
|
|
||||||
} // end delete
|
} // end delete
|
||||||
|
|
||||||
|
public void deleteCommunity() throws DataException, AccessError
|
||||||
|
{
|
||||||
|
this.delete();
|
||||||
|
|
||||||
|
} // end delete
|
||||||
|
|
||||||
public void sendInvitation(String address, String personal_message)
|
public void sendInvitation(String address, String personal_message)
|
||||||
throws AccessError, DataException, EmailException
|
throws AccessError, DataException, EmailException
|
||||||
{
|
{
|
||||||
|
|
|
@ -875,7 +875,7 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
||||||
{
|
{
|
||||||
if (!(getConferenceData().canReadConference(level)))
|
if (!(getConferenceData().canReadConference(level)))
|
||||||
{ // the luser can't even read the conference...
|
{ // the luser can't even read the conference...
|
||||||
logger.error("getTopic(): user not permitted to change membership");
|
logger.error("getTopic(): user not permitted to read");
|
||||||
throw new AccessError("You are not permitted to read this conference.");
|
throw new AccessError("You are not permitted to read this conference.");
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
@ -1253,6 +1253,12 @@ class ConferenceUserContextImpl implements ConferenceContext, ConferenceBackend
|
||||||
|
|
||||||
} // end delete
|
} // end delete
|
||||||
|
|
||||||
|
public void deleteConference() throws DataException, AccessError
|
||||||
|
{
|
||||||
|
this.delete();
|
||||||
|
|
||||||
|
} // end deleteConference
|
||||||
|
|
||||||
public boolean canDeleteConference()
|
public boolean canDeleteConference()
|
||||||
{
|
{
|
||||||
ConferenceCommunityContext c = getConferenceDataNE();
|
ConferenceCommunityContext c = getConferenceDataNE();
|
||||||
|
|
|
@ -66,6 +66,12 @@ class SideBoxDescriptorImpl implements UserSideBoxDescriptor
|
||||||
|
|
||||||
} // end getID
|
} // end getID
|
||||||
|
|
||||||
|
public int getSideBoxID()
|
||||||
|
{
|
||||||
|
return parent.getID();
|
||||||
|
|
||||||
|
} // end getSideBoxID
|
||||||
|
|
||||||
public int getSequence()
|
public int getSequence()
|
||||||
{
|
{
|
||||||
return sequence;
|
return sequence;
|
||||||
|
|
|
@ -958,6 +958,12 @@ class TopicUserContextImpl implements TopicContext
|
||||||
|
|
||||||
} // end delete
|
} // end delete
|
||||||
|
|
||||||
|
public void deleteTopic() throws DataException, AccessError
|
||||||
|
{
|
||||||
|
this.delete();
|
||||||
|
|
||||||
|
} // end deleteTopic
|
||||||
|
|
||||||
public List getActivePosters(int skip, int limit) throws DataException
|
public List getActivePosters(int skip, int limit) throws DataException
|
||||||
{
|
{
|
||||||
Connection conn = null;
|
Connection conn = null;
|
||||||
|
|
|
@ -84,6 +84,12 @@ public class VeniceEngineImpl implements VeniceEngine, EngineBackend
|
||||||
|
|
||||||
} // end getID
|
} // end getID
|
||||||
|
|
||||||
|
public int getSideBoxID()
|
||||||
|
{
|
||||||
|
return id;
|
||||||
|
|
||||||
|
} // end getSideBoxID
|
||||||
|
|
||||||
public int getSequence()
|
public int getSequence()
|
||||||
{
|
{
|
||||||
return -1;
|
return -1;
|
||||||
|
|
|
@ -72,9 +72,10 @@ public class AuditRecord implements AuditData
|
||||||
if (rc==null)
|
if (rc==null)
|
||||||
{ // OK, get it from the database
|
{ // OK, get it from the database
|
||||||
ResultSet rs = stmt.executeQuery("SELECT username FROM users WHERE uid = " + uid + ";");
|
ResultSet rs = stmt.executeQuery("SELECT username FROM users WHERE uid = " + uid + ";");
|
||||||
if (!(rs.next()))
|
if (rs.next())
|
||||||
throw new DataException("user name not found for UID " + uid);
|
rc = rs.getString(1);
|
||||||
rc = rs.getString(1);
|
else
|
||||||
|
rc = "(UID #" + uid + ")";
|
||||||
uname_cache.put(uid_x,rc);
|
uname_cache.put(uid_x,rc);
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
@ -92,9 +93,10 @@ public class AuditRecord implements AuditData
|
||||||
if (rc==null)
|
if (rc==null)
|
||||||
{ // OK, get it from the database
|
{ // OK, get it from the database
|
||||||
ResultSet rs = stmt.executeQuery("SELECT signame FROM sigs WHERE sigid = " + cid + ";");
|
ResultSet rs = stmt.executeQuery("SELECT signame FROM sigs WHERE sigid = " + cid + ";");
|
||||||
if (!(rs.next()))
|
if (rs.next())
|
||||||
throw new DataException("community name not found for community ID " + cid);
|
rc = rs.getString(1);
|
||||||
rc = rs.getString(1);
|
else
|
||||||
|
rc = "(CID #" + cid + ")";
|
||||||
commname_cache.put(cid_x,rc);
|
commname_cache.put(cid_x,rc);
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
|
|
@ -318,7 +318,7 @@ public class CommunityOperations extends VeniceServlet
|
||||||
if (user.isLoggedIn())
|
if (user.isLoggedIn())
|
||||||
return new ErrorBox("Community Error","You are not permitted to create communities.","top");
|
return new ErrorBox("Community Error","You are not permitted to create communities.","top");
|
||||||
else
|
else
|
||||||
return new ErrorBox("Community Error","You must be logged in to create a new community.","top");
|
return new LogInOrCreate("sigops?cmd=C");
|
||||||
|
|
||||||
} // end if
|
} // end if
|
||||||
|
|
||||||
|
|
|
@ -348,14 +348,15 @@ public class ConfDisplay extends VeniceServlet
|
||||||
ConferenceContext conf = getConferenceParameter(request,comm,true,"top");
|
ConferenceContext conf = getConferenceParameter(request,comm,true,"top");
|
||||||
|
|
||||||
// get the topic, if we have it
|
// get the topic, if we have it
|
||||||
TopicContext topic = getTopicParameter(request,conf,false,"top");
|
TopicContext topic = getTopicParameter(request,user,conf,false,"top",
|
||||||
|
"confdisp?" + request.getQueryString());
|
||||||
|
|
||||||
if (topic!=null)
|
if (topic!=null)
|
||||||
{ // we're handling messages within a single topic
|
{ // we're handling messages within a single topic
|
||||||
if (logger.isDebugEnabled())
|
if (logger.isDebugEnabled())
|
||||||
logger.debug("MODE: display messages in topic");
|
logger.debug("MODE: display messages in topic");
|
||||||
String on_error = "confdisp?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID();
|
String on_error = "confdisp?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID();
|
||||||
setMyLocation(request,on_error + "&topic=" + topic.getTopicNumber());
|
setMyLocation(request,on_error + "&top=" + topic.getTopicNumber());
|
||||||
|
|
||||||
// if this request is restoring the number of unread posts in another topic, try to do so
|
// if this request is restoring the number of unread posts in another topic, try to do so
|
||||||
boolean do_readnew = restorePosts(request,conf,topic);
|
boolean do_readnew = restorePosts(request,conf,topic);
|
||||||
|
@ -380,7 +381,10 @@ public class ConfDisplay extends VeniceServlet
|
||||||
} // end catch
|
} // end catch
|
||||||
catch (AccessError ae)
|
catch (AccessError ae)
|
||||||
{ // we were unable to retrieve the message list
|
{ // we were unable to retrieve the message list
|
||||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
if (user.isLoggedIn())
|
||||||
|
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||||
|
else
|
||||||
|
return new LogInOrCreate(getMyLocation(request));
|
||||||
|
|
||||||
} // end catch
|
} // end catch
|
||||||
|
|
||||||
|
@ -393,7 +397,7 @@ public class ConfDisplay extends VeniceServlet
|
||||||
String my_location = "confdisp?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID();
|
String my_location = "confdisp?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID();
|
||||||
boolean read_new = !(StringUtil.isStringEmpty(request.getParameter("rnm")));
|
boolean read_new = !(StringUtil.isStringEmpty(request.getParameter("rnm")));
|
||||||
if (read_new)
|
if (read_new)
|
||||||
my_location += "&rn=1";
|
my_location += "&rnm=1";
|
||||||
setMyLocation(request,my_location);
|
setMyLocation(request,my_location);
|
||||||
|
|
||||||
// get any changes to view or sort options
|
// get any changes to view or sort options
|
||||||
|
@ -441,7 +445,10 @@ public class ConfDisplay extends VeniceServlet
|
||||||
} // end catch
|
} // end catch
|
||||||
catch (AccessError ae)
|
catch (AccessError ae)
|
||||||
{ // we were unable to retrieve the message list
|
{ // we were unable to retrieve the message list
|
||||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
if (user.isLoggedIn())
|
||||||
|
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||||
|
else
|
||||||
|
return new LogInOrCreate(getMyLocation(request));
|
||||||
|
|
||||||
} // end catch
|
} // end catch
|
||||||
|
|
||||||
|
@ -462,7 +469,10 @@ public class ConfDisplay extends VeniceServlet
|
||||||
} // end catch
|
} // end catch
|
||||||
catch (AccessError ae)
|
catch (AccessError ae)
|
||||||
{ // we were unable to retrieve the topic list
|
{ // we were unable to retrieve the topic list
|
||||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
if (user.isLoggedIn())
|
||||||
|
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||||
|
else
|
||||||
|
return new LogInOrCreate(getMyLocation(request));
|
||||||
|
|
||||||
} // end catch
|
} // end catch
|
||||||
|
|
||||||
|
|
|
@ -710,8 +710,8 @@ public class ConfOperations extends VeniceServlet
|
||||||
String message = "You are about to permanently delete the \"" + conf.getName() + "\" conference! "
|
String message = "You are about to permanently delete the \"" + conf.getName() + "\" conference! "
|
||||||
+ "Are you sure you want to do this?";
|
+ "Are you sure you want to do this?";
|
||||||
return new ConfirmBox(request,DELETE_CONFIRM_ATTR,DELETE_CONFIRM_PARAM,"Delete Conference",message,
|
return new ConfirmBox(request,DELETE_CONFIRM_ATTR,DELETE_CONFIRM_PARAM,"Delete Conference",message,
|
||||||
"confops?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID() + "&cmd=DEL",
|
"confops?sig=" + comm.getCommunityID() + "&conf=" + conf.getConfID()
|
||||||
on_error);
|
+ "&cmd=DEL",on_error);
|
||||||
|
|
||||||
} // end else
|
} // end else
|
||||||
|
|
||||||
|
@ -732,7 +732,14 @@ public class ConfOperations extends VeniceServlet
|
||||||
} // end catch
|
} // end catch
|
||||||
catch (AccessError ae)
|
catch (AccessError ae)
|
||||||
{ // some lack of access is causing problems
|
{ // some lack of access is causing problems
|
||||||
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
if (user.isLoggedIn())
|
||||||
|
return new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||||
|
else
|
||||||
|
{ // they might need to log in first
|
||||||
|
setMyLocation(request,"confops?sig=" + comm.getCommunityID());
|
||||||
|
return new LogInOrCreate("confops?sig=" + comm.getCommunityID());
|
||||||
|
|
||||||
|
} // end else
|
||||||
|
|
||||||
} // end catch
|
} // end catch
|
||||||
|
|
||||||
|
|
|
@ -108,8 +108,9 @@ public abstract class VeniceServlet extends HttpServlet
|
||||||
|
|
||||||
} // end getCommunityParameter
|
} // end getCommunityParameter
|
||||||
|
|
||||||
private static TopicContext getTopicParameter(String str, ConferenceContext conf, boolean required,
|
private static TopicContext getTopicParameter(String str, UserContext user, ConferenceContext conf,
|
||||||
String on_error) throws ErrorBox
|
boolean required, String on_error, String target)
|
||||||
|
throws ErrorBox, LogInOrCreate
|
||||||
{
|
{
|
||||||
if (StringUtil.isStringEmpty(str))
|
if (StringUtil.isStringEmpty(str))
|
||||||
{ // there's no topic parameter
|
{ // there's no topic parameter
|
||||||
|
@ -153,6 +154,9 @@ public abstract class VeniceServlet extends HttpServlet
|
||||||
} // end catch
|
} // end catch
|
||||||
catch (AccessError ae)
|
catch (AccessError ae)
|
||||||
{ // these all get handled in pretty much the same way
|
{ // these all get handled in pretty much the same way
|
||||||
|
logger.error("getTopicParameter(): Access error retrieving topic parameter");
|
||||||
|
if ((user!=null) && (target!=null) && !(user.isLoggedIn()))
|
||||||
|
throw new LogInOrCreate(target);
|
||||||
throw new ErrorBox("Access Error",ae.getMessage(),on_error);
|
throw new ErrorBox("Access Error",ae.getMessage(),on_error);
|
||||||
|
|
||||||
} // end catch
|
} // end catch
|
||||||
|
@ -454,19 +458,29 @@ public abstract class VeniceServlet extends HttpServlet
|
||||||
} // end getConferenceParameter
|
} // end getConferenceParameter
|
||||||
|
|
||||||
protected final static TopicContext getTopicParameter(ServletRequest request, ConferenceContext conf,
|
protected final static TopicContext getTopicParameter(ServletRequest request, ConferenceContext conf,
|
||||||
boolean required, String on_error) throws ErrorBox
|
boolean required, String on_error)
|
||||||
|
throws ErrorBox, LogInOrCreate
|
||||||
{
|
{
|
||||||
return getTopicParameter(request.getParameter("top"),conf,required,on_error);
|
return getTopicParameter(request.getParameter("top"),null,conf,required,on_error,null);
|
||||||
|
|
||||||
|
} // end getTopicParameter
|
||||||
|
|
||||||
|
protected final static TopicContext getTopicParameter(ServletRequest request, UserContext user,
|
||||||
|
ConferenceContext conf, boolean required,
|
||||||
|
String on_error, String target)
|
||||||
|
throws ErrorBox, LogInOrCreate
|
||||||
|
{
|
||||||
|
return getTopicParameter(request.getParameter("top"),user,conf,required,on_error,target);
|
||||||
|
|
||||||
} // end getTopicParameter
|
} // end getTopicParameter
|
||||||
|
|
||||||
protected final static TopicContext getTopicParameter(ServletMultipartHandler mphandler,
|
protected final static TopicContext getTopicParameter(ServletMultipartHandler mphandler,
|
||||||
ConferenceContext conf, boolean required,
|
ConferenceContext conf, boolean required,
|
||||||
String on_error) throws ErrorBox
|
String on_error) throws ErrorBox, LogInOrCreate
|
||||||
{
|
{
|
||||||
if (mphandler.isFileParam("top"))
|
if (mphandler.isFileParam("top"))
|
||||||
throw new ErrorBox(null,"Internal Error: topic should be a normal param",on_error);
|
throw new ErrorBox(null,"Internal Error: topic should be a normal param",on_error);
|
||||||
return getTopicParameter(mphandler.getValue("top"),conf,required,on_error);
|
return getTopicParameter(mphandler.getValue("top"),null,conf,required,on_error,null);
|
||||||
|
|
||||||
} // end getTopicParameter
|
} // end getTopicParameter
|
||||||
|
|
||||||
|
@ -511,10 +525,16 @@ public abstract class VeniceServlet extends HttpServlet
|
||||||
*--------------------------------------------------------------------------------
|
*--------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
protected String getMyLocation(HttpServletRequest request)
|
||||||
|
{
|
||||||
|
return (String)(request.getAttribute(LOCATION_ATTR));
|
||||||
|
|
||||||
|
} // end getMyLocation
|
||||||
|
|
||||||
protected String getMyLocation(HttpServletRequest request, VeniceEngine engine, UserContext user,
|
protected String getMyLocation(HttpServletRequest request, VeniceEngine engine, UserContext user,
|
||||||
RenderData rdat)
|
RenderData rdat)
|
||||||
{
|
{
|
||||||
return (String)(request.getAttribute(LOCATION_ATTR));
|
return getMyLocation(request);
|
||||||
|
|
||||||
} // end getMyLocation
|
} // end getMyLocation
|
||||||
|
|
||||||
|
|
112
src/com/silverwrist/venice/servlets/format/LogInOrCreate.java
Normal file
112
src/com/silverwrist/venice/servlets/format/LogInOrCreate.java
Normal file
|
@ -0,0 +1,112 @@
|
||||||
|
/*
|
||||||
|
* The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||||
|
* (the "License"); you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||||
|
*
|
||||||
|
* Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||||
|
* WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
* language governing rights and limitations under the License.
|
||||||
|
*
|
||||||
|
* The Original Code is the Venice Web Communities System.
|
||||||
|
*
|
||||||
|
* The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||||
|
* for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
|
* Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
|
*
|
||||||
|
* Contributor(s):
|
||||||
|
*/
|
||||||
|
package com.silverwrist.venice.servlets.format;
|
||||||
|
|
||||||
|
import java.net.URLEncoder;
|
||||||
|
import java.io.Writer;
|
||||||
|
import java.io.IOException;
|
||||||
|
import javax.servlet.*;
|
||||||
|
import com.silverwrist.util.StringUtil;
|
||||||
|
import com.silverwrist.venice.servlets.VeniceServletResult;
|
||||||
|
|
||||||
|
public class LogInOrCreate extends VeniceServletResult implements JSPRender, ColorSelectors
|
||||||
|
{
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Static data members
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Attribute name for request attribute
|
||||||
|
protected static final String ATTR_NAME = "com.silverwrist.venice.content.LogInOrCreate";
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Attributes
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
private String target;
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Constructor
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public LogInOrCreate(String target)
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
this.target = target;
|
||||||
|
|
||||||
|
} // end constructor
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* External static functions
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public static LogInOrCreate retrieve(ServletRequest request)
|
||||||
|
{
|
||||||
|
return (LogInOrCreate)(request.getAttribute(ATTR_NAME));
|
||||||
|
|
||||||
|
} // end retrieve
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Implementations from interface VeniceContent
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getPageTitle(RenderData rdat)
|
||||||
|
{
|
||||||
|
return "Log In or Create Account";
|
||||||
|
|
||||||
|
} // end getPageTitle
|
||||||
|
|
||||||
|
public String getPageQID()
|
||||||
|
{
|
||||||
|
return null;
|
||||||
|
|
||||||
|
} // end getPageQID
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* Implementations from interface JSPRender
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public void store(ServletRequest request)
|
||||||
|
{
|
||||||
|
request.setAttribute(ATTR_NAME,this);
|
||||||
|
|
||||||
|
} // end store
|
||||||
|
|
||||||
|
public String getTargetJSPName()
|
||||||
|
{
|
||||||
|
return "login_or_create.jsp";
|
||||||
|
|
||||||
|
} // end getTargetJSPName
|
||||||
|
|
||||||
|
/*--------------------------------------------------------------------------------
|
||||||
|
* External operations
|
||||||
|
*--------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
public String getTargetURL(RenderData rdat, String base_URL)
|
||||||
|
{
|
||||||
|
return rdat.getEncodedServletPath(base_URL + URLEncoder.encode(target));
|
||||||
|
|
||||||
|
} // end getTargetURL
|
||||||
|
|
||||||
|
} // end class LogInOrCreate
|
|
@ -39,4 +39,4 @@
|
||||||
The user accounts are imported as an XML file.
|
The user accounts are imported as an XML file.
|
||||||
<%-- TODO: put a description of the contents here, or a link to a DTD --%>
|
<%-- TODO: put a description of the contents here, or a link to a DTD --%>
|
||||||
</FONT></DIV>
|
</FONT></DIV>
|
||||||
</FORM>
|
</FORM>
|
||||||
|
|
32
web/format/login_or_create.jsp
Normal file
32
web/format/login_or_create.jsp
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
<%--
|
||||||
|
The contents of this file are subject to the Mozilla Public License Version 1.1
|
||||||
|
(the "License"); you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at <http://www.mozilla.org/MPL/>.
|
||||||
|
|
||||||
|
Software distributed under the License is distributed on an "AS IS" basis, WITHOUT
|
||||||
|
WARRANTY OF ANY KIND, either express or implied. See the License for the specific
|
||||||
|
language governing rights and limitations under the License.
|
||||||
|
|
||||||
|
The Original Code is the Venice Web Communities System.
|
||||||
|
|
||||||
|
The Initial Developer of the Original Code is Eric J. Bowersox <erbo@silcom.com>,
|
||||||
|
for Silverwrist Design Studios. Portions created by Eric J. Bowersox are
|
||||||
|
Copyright (C) 2001 Eric J. Bowersox/Silverwrist Design Studios. All Rights Reserved.
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
--%>
|
||||||
|
<%@ page import = "java.util.*" %>
|
||||||
|
<%@ page import = "com.silverwrist.util.StringUtil" %>
|
||||||
|
<%@ page import = "com.silverwrist.venice.core.*" %>
|
||||||
|
<%@ page import = "com.silverwrist.venice.servlets.Variables" %>
|
||||||
|
<%@ page import = "com.silverwrist.venice.servlets.format.*" %>
|
||||||
|
<%
|
||||||
|
LogInOrCreate data = LogInOrCreate.retrieve(request);
|
||||||
|
RenderData rdat = RenderConfig.createRenderData(application,request,response);
|
||||||
|
%>
|
||||||
|
<% rdat.writeContentHeader(out,"Log In or Create Account",null); %>
|
||||||
|
<%= rdat.getStdFontTag(ColorSelectors.CONTENT_FOREGROUND,2) %>
|
||||||
|
You must log in or create an account before you can view this page.<P>
|
||||||
|
Returning users <A HREF="<%= data.getTargetURL(rdat,"account?cmd=L&tgt=") %>">log in here</A>.<P>
|
||||||
|
New users <A HREF="<%= data.getTargetURL(rdat,"account?cmd=C&tgt=") %>">create an account here.<P>
|
||||||
|
</FONT>
|
Loading…
Reference in New Issue
Block a user