|
From: <tre...@us...> - 2007-07-11 22:50:01
|
Revision: 226
http://ogoglio.svn.sourceforge.net/ogoglio/?rev=226&view=rev
Author: trevorolio
Date: 2007-07-11 15:50:02 -0700 (Wed, 11 Jul 2007)
Log Message:
-----------
Moved space creation over to /og/space/ and out of /og/account/<username>/space/ so that it is more appropriately near space deletion on /og/space/<id#>
Updated ogoglio.js and WebAPIClient to reflect this change.
Added AccountRecord.isFrozen() util function.
Modified Paths:
--------------
spaces/trunk/src/com/ogoglio/client/WebAPIClient.java
spaces/trunk/src/com/ogoglio/persist/AccountRecord.java
spaces/trunk/src/com/ogoglio/site/AccountServlet.java
spaces/trunk/src/com/ogoglio/site/SpaceServlet.java
spaces/trunk/war/ogoglio.js
Modified: spaces/trunk/src/com/ogoglio/client/WebAPIClient.java
===================================================================
--- spaces/trunk/src/com/ogoglio/client/WebAPIClient.java 2007-07-11 20:20:31 UTC (rev 225)
+++ spaces/trunk/src/com/ogoglio/client/WebAPIClient.java 2007-07-11 22:50:02 UTC (rev 226)
@@ -114,7 +114,7 @@
public static SpaceDocument createSpace(URI serviceURI, String authCookie) throws IOException {
AuthDocument authDocument = new AuthDocument(fetchAuthenticatedXML(getAuthURI(serviceURI), authCookie));
SpaceDocument spaceDoc = new SpaceDocument(-1, "New Space", authDocument.getUsername(), false, 0, false, 0, -1);
- XMLElement result = sendAuthenticatedXML(WebAPIUtil.appendToURI(serviceURI, "account/" + authDocument.getUsername() + "/space/"), spaceDoc.toString(), "POST", authCookie);
+ XMLElement result = sendAuthenticatedXML(WebAPIUtil.appendToURI(serviceURI, "space/"), spaceDoc.toString(), "POST", authCookie);
return new SpaceDocument(result);
}
Modified: spaces/trunk/src/com/ogoglio/persist/AccountRecord.java
===================================================================
--- spaces/trunk/src/com/ogoglio/persist/AccountRecord.java 2007-07-11 20:20:31 UTC (rev 225)
+++ spaces/trunk/src/com/ogoglio/persist/AccountRecord.java 2007-07-11 22:50:02 UTC (rev 226)
@@ -217,6 +217,10 @@
this.frozenUntil = frozenUntil;
}
+ public boolean isFrozen() {
+ return frozenUntil != null && System.currentTimeMillis() < frozenUntil.getTime();
+ }
+
public String getLastName() {
return lastName;
}
Modified: spaces/trunk/src/com/ogoglio/site/AccountServlet.java
===================================================================
--- spaces/trunk/src/com/ogoglio/site/AccountServlet.java 2007-07-11 20:20:31 UTC (rev 225)
+++ spaces/trunk/src/com/ogoglio/site/AccountServlet.java 2007-07-11 22:50:02 UTC (rev 226)
@@ -656,38 +656,6 @@
super("space", true, getSessionFactory());
}
- public void doPost(HttpServletRequest request, HttpServletResponse response, String[] pathElements, AccountRecord authedAccount) throws PersistException, ServletException, IOException {
- String usernameParam = pathElements[pathElements.length - 2];
- AccountRecord requestedAccount = AccountPersistTasks.findAccountByUsername(usernameParam, getSessionFactory());
- if (requestedAccount == null) {
- response.setStatus(HttpServletResponse.SC_NOT_FOUND);
- return;
- }
-
- if (!authedAccount.getUsername().equals(requestedAccount.getUsername())) {
- response.setStatus(HttpServletResponse.SC_FORBIDDEN);
- return;
- }
-
- XMLElement spaceElement = parseXML(request.getInputStream());
- if (!SpaceDocument.NAME.equals(spaceElement.getName())) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
-
- String displayName = spaceElement.getStringAttribute(SpaceDocument.DISPLAY_NAME);
-
- SpaceRecord newSpace = SpacePersistTasks.createSpace(displayName, requestedAccount.getUsername(), getSessionFactory());
- if (newSpace == null) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- return;
- }
- getMediaService().write(MediaService.SPACE_DOCUMENT_PREFIX + newSpace.getSpaceID() + MediaService.SPACE_DOCUMENT_SUFFIX, new SpaceDocument(newSpace).toString());
-
- SpaceDocument spaceDoc = new SpaceDocument(newSpace);
- sendStringResponse(spaceDoc.toString(), "text/xml", response);
- }
-
public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements, AccountRecord authedAccount) throws PersistException, ServletException, IOException {
String usernameParam = pathElements[pathElements.length - 2];
AccountRecord requestedAccount = AccountPersistTasks.findAccountByUsername(usernameParam, getSessionFactory());
Modified: spaces/trunk/src/com/ogoglio/site/SpaceServlet.java
===================================================================
--- spaces/trunk/src/com/ogoglio/site/SpaceServlet.java 2007-07-11 20:20:31 UTC (rev 225)
+++ spaces/trunk/src/com/ogoglio/site/SpaceServlet.java 2007-07-11 22:50:02 UTC (rev 226)
@@ -29,6 +29,7 @@
import com.ogoglio.client.WebAPIClient;
import com.ogoglio.client.WebAPIUtil;
import com.ogoglio.media.MediaService;
+import com.ogoglio.persist.AccountPersistTasks;
import com.ogoglio.persist.AccountRecord;
import com.ogoglio.persist.PersistException;
import com.ogoglio.persist.SimPersistTasks;
@@ -76,17 +77,42 @@
return new BaseSpaceResource();
}
- private class BaseSpaceResource extends SiteResource {
+ private class BaseSpaceResource extends AuthenticatedSiteResource {
public BaseSpaceResource() {
- super("space");
+ super("space", false, getSessionFactory());
addSubResource(new SpaceResource());
addSubResource(new SimResource());
}
- public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements) throws IOException {
+ public void doGet(HttpServletRequest request, HttpServletResponse response, String[] pathElements, AccountRecord authedAccount) throws PersistException, ServletException, IOException {
ServiceDocument serviceDocument = new ServiceDocument(messageProxy.getUserCount(), messageProxy.getSimCount());
sendStringResponse(serviceDocument.toString(), "text/xml", response);
}
+
+ public void doPost(HttpServletRequest request, HttpServletResponse response, String[] pathElements, AccountRecord authedAccount) throws PersistException, ServletException, IOException {
+ if (authedAccount == null || authedAccount.isFrozen()) {
+ response.setStatus(HttpServletResponse.SC_FORBIDDEN);
+ return;
+ }
+
+ XMLElement spaceElement = parseXML(request.getInputStream());
+ if (!SpaceDocument.NAME.equals(spaceElement.getName())) {
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ return;
+ }
+
+ String displayName = spaceElement.getStringAttribute(SpaceDocument.DISPLAY_NAME);
+
+ SpaceRecord newSpace = SpacePersistTasks.createSpace(displayName, authedAccount.getUsername(), getSessionFactory());
+ if (newSpace == null) {
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ return;
+ }
+ getMediaService().write(MediaService.SPACE_DOCUMENT_PREFIX + newSpace.getSpaceID() + MediaService.SPACE_DOCUMENT_SUFFIX, new SpaceDocument(newSpace).toString());
+
+ SpaceDocument spaceDoc = new SpaceDocument(newSpace);
+ sendStringResponse(spaceDoc.toString(), "text/xml", response);
+ }
}
private class SpaceResource extends AuthenticatedSiteResource {
Modified: spaces/trunk/war/ogoglio.js
===================================================================
--- spaces/trunk/war/ogoglio.js 2007-07-11 20:20:31 UTC (rev 225)
+++ spaces/trunk/war/ogoglio.js 2007-07-11 22:50:02 UTC (rev 226)
@@ -507,7 +507,7 @@
var bodyXML = document.createElement("space");
bodyXML.setAttribute("ownerusername", username);
bodyXML.setAttribute("displayname", escape(spaceName));
- var manager = new XMLRequestManager(appPath + "/account/" + username + "/space/", new BasicHTTPListener(listener));
+ var manager = new XMLRequestManager(appPath + "/space/", new BasicHTTPListener(listener));
manager.setMethod("POST");
manager.send(serializeXML(bodyXML));
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|