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