You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shindig.apache.org by do...@apache.org on 2008/03/18 15:08:57 UTC

svn commit: r638368 - in /incubator/shindig/trunk: features/opensocial-0.7/ java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/ javascript/samplecontainer/

Author: doll
Date: Tue Mar 18 07:08:55 2008
New Revision: 638368

URL: http://svn.apache.org/viewvc?rev=638368&view=rev
Log:
Added isOwner and isViewer fields to the person object and changed the javascript to handle these fields. 

Also created a security token within the samplecontainer. The security token will be parsed and used in the next set of changes.


Modified:
    incubator/shindig/trunk/features/opensocial-0.7/jsoncontainer.js
    incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js
    incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/Person.java
    incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html

Modified: incubator/shindig/trunk/features/opensocial-0.7/jsoncontainer.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-0.7/jsoncontainer.js?rev=638368&r1=638367&r2=638368&view=diff
==============================================================================
--- incubator/shindig/trunk/features/opensocial-0.7/jsoncontainer.js (original)
+++ incubator/shindig/trunk/features/opensocial-0.7/jsoncontainer.js Tue Mar 18 07:08:55 2008
@@ -37,6 +37,17 @@
 
   this.environment_ = new opensocial.Environment(domain, supportedFieldsMap);
   this.baseUrl_ = baseUrl;
+
+  // TODO: Need to fix this for inlined gadgets as there is no URL.
+  var hash = document.location.hash || '#';
+  var hashData = hash.substring(1).split('&');
+  for (var i = 0; i < hashData.length; i++) {
+    var parts = hashData[i].split('=');
+    if (parts[0] == 'st') {
+      this.securityToken_ = parts[1];
+      break;
+    }
+  }
 };
 JsonContainer.inherits(opensocial.Container);
 
@@ -103,7 +114,8 @@
     callback(dataResponse);
   };
 
-  new BatchRequest(this.baseUrl_, jsonText, sendResponse).send();
+  new BatchRequest(this.baseUrl_, jsonText, sendResponse,
+      {'st' : this.securityToken_}).send();
 };
 
 JsonContainer.prototype.newFetchPersonRequest = function(id, opt_params) {
@@ -138,7 +150,6 @@
 };
 
 JsonContainer.prototype.createPersonFromJson = function(serverJson) {
-  // TODO: isOwner, isViewer
   return new JsonPerson(serverJson);
 }
 

Modified: incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js?rev=638368&r1=638367&r2=638368&view=diff
==============================================================================
--- incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js (original)
+++ incubator/shindig/trunk/features/opensocial-0.7/jsonperson.js Tue Mar 18 07:08:55 2008
@@ -23,7 +23,7 @@
  * @private
  * @constructor
  */
-JsonPerson = function(opt_params, opt_isOwner, opt_isViewer) {
+JsonPerson = function(opt_params) {
   opt_params = opt_params || {};
 
   // TODO: doesn't handle dateOfBirth, drinker, smoker, or gender yet
@@ -41,8 +41,8 @@
       opensocial.Organization);
   JsonPerson.constructArrayObject(opt_params, "urls", opensocial.Url);
 
-  
-  opensocial.Person.call(this, opt_params, opt_isOwner, opt_isViewer);
+  opensocial.Person.call(this, opt_params, opt_params['isOwner'],
+      opt_params['isViewer']);
 };
 JsonPerson.inherits(opensocial.Person);
 

Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/Person.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/Person.java?rev=638368&r1=638367&r2=638368&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/Person.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/social/opensocial/model/Person.java Tue Mar 18 07:08:55 2008
@@ -87,6 +87,10 @@
   private List<String> tvShows;
   private List<Url> urls;
 
+  // Note: Not in the opensocial js person object directly
+  private boolean isOwner = false;
+  private boolean isViewer = false;
+
   public Person(String id, Name name) {
     this.id = id;
     this.name = name;
@@ -490,5 +494,21 @@
 
   public void setUrls(List<Url> urls) {
     this.urls = urls;
+  }
+
+  public boolean getIsOwner() {
+    return isOwner;
+  }
+
+  public void setIsOwner(boolean isOwner) {
+    this.isOwner = isOwner;
+  }
+
+  public boolean getIsViewer() {
+    return isViewer;
+  }
+
+  public void setIsViewer(boolean isViewer) {
+    this.isViewer = isViewer;
   }
 }

Modified: incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html?rev=638368&r1=638367&r2=638368&view=diff
==============================================================================
--- incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html (original)
+++ incubator/shindig/trunk/javascript/samplecontainer/samplecontainer.html Tue Mar 18 07:08:55 2008
@@ -56,6 +56,9 @@
 var doEvil = false;
 var gadget;
 
+var viewerId = "john.doe";
+var ownerId = "john.doe";
+
 function initGadget() {
   // Fetch cookies
   var cookieGadgetUrl = decodeURIComponent(goog.net.cookies.get(gadgetUrlCookie));
@@ -78,6 +81,11 @@
   gadget = gadgets.container.createGadget({'specUrl': gadgetUrl});;
   gadget.setServerBase('../../');
 
+  // Viewer and Owner
+  document.getElementById("viewerId").value = viewerId;
+  document.getElementById("ownerId").value = ownerId;
+  gadget.secureToken = generateSecureToken();
+
   gadgets.container.addGadget(gadget);
   gadgets.container.layoutManager.setGadgetChromeIds(['gadget-chrome']);
   gadgets.container.renderGadgets();
@@ -96,6 +104,10 @@
   reloadStateFile();
   goog.net.cookies.set(stateFileUrlCookie, encodeURIComponent(stateFileUrl));
 
+  viewerId = document.getElementById("viewerId").value;
+  ownerId = document.getElementById("ownerId").value;
+  gadget.secureToken = generateSecureToken();
+
   gadgetUrl = document.getElementById("gadgetUrl").value;
   gadget.specUrl = gadgetUrl;
   goog.net.cookies.set(gadgetUrlCookie, encodeURIComponent(gadgetUrl));
@@ -103,6 +115,10 @@
   gadgets.container.renderGadgets();
 };
 
+function generateSecureToken() {
+  // TODO: Use a real app id
+  return [ownerId, viewerId, "samplecontainerapp", "shindig"].join(":");
+}
 
 SampleContainerGadget = function(opt_params) {
   gadgets.IfrGadget.call(this, opt_params);
@@ -147,7 +163,8 @@
     "CONTENT_TYPE" : "JSON",
     "METHOD" : "POST",
     "AUTHORIZATION" : "SIGNED",
-    "POST_DATA" : encodeValues({'request' : jsonRequest})};
+    "POST_DATA" : encodeValues({'request' : jsonRequest,
+      'st' : generateSecureToken()})};
 
   makeRequest(socialDataPath,
       function(data) {
@@ -242,6 +259,11 @@
 
       Using state: <input type="text" size="75" id="stateFileUrl"/>
       <input type="checkbox" id="doEvilCheckbox"/>do evil
+
+      <br/>
+      <br/>
+      Viewer id: <input type="text" size="20" id="viewerId"/>
+      Owner id: <input type="text" size="20" id="ownerId"/>
 
       <br/>