Integration  of  Google  Docs  service  in  Plone Federica D'Elia -  [email_address]   Massimo Azzolini -  [email_address]
GDIP: Google Docs service In Plone GDIP allows Plone users to store their documents on Google servers instead of ZODB <ul>...
Automatic setup of sharing settings on Google documents according to user roles of the Plone application
Integrates Google Docs-based support for collaborative editing in Plone </li></ul>
System Architecture <ul><li>GDIP is realized by four components: </li><ul><li>Google System Storage (GSS)
Google Authentication (GA)
Google Sharing (GS)
Google Modify Content (GMC) </li></ul></ul><ul><li>The GSS, GA, GS, and GMC components take advantage of the gdata-python ...
<ul><li>The Google Documents List data API allows web applications to interact with Google Docs
The gdata-python library provides access to the Google Data APIs through classes and methods for constructing queries and ...
GDIP uses methods provided by gdata-python library for uploading, downloading, deleting documents on Google servers, query...
Google System Storage <ul><li>GSS saves the document types supported by the Google Docs service on the Google servers, whi...
Access The Plone user can access his document Doc.odt from the Plone application and....
Access ...and from his Google account
GSS <ul><li>GSS is an extension of File System Storage </li></ul><ul><li>The  GoogleSystemStorage  class of  googlesystems...
Set method <ul><li>The  set  method saves the document files in the local filesystem </li></ul><ul><li>If the file type co...
 
Get method <ul><li>The  get  method takes care of returning the requested documents to Plone users </li></ul><ul><li>get  ...
 
Google Authentication <ul><li>GA takes care of the user authentication upon Google Docs service, so that the Plone applica...
The procedure allows Web applications to authenticate users through their Google accounts </li></ul></ul>
Authentication Procedure The Plone user is redirected to a Google page that invites him to insert his credentials Once he ...
Authentication token <ul><li>If the user grants access, he is pointed again to the Plone application </li></ul><ul><li>The...
Authentication Procedure
The attribute   google_token <ul><li>GA initiates the authentication procedure immediately after the user has logged into ...
Google Sharing <ul><li>GS manages document sharing attributes and their synchronization from the Plone application to Goog...
For example, if a Plone user assigns another user the Editor role on one of his documents, the other user will be able to ...
Role change The Plone user assigns the Editor role on the Doc.odt document to user Mario Rossi...
Upcoming SlideShare
Loading in …5
×

GoogleDocs on Plone

2,958 views

Published on

These slide has been presented by me at the european plone symposium's sprint 2009. The original author is Federica D'Elia, I just review it.

Published in: Technology
1 Comment
4 Likes
Statistics
Notes
  • This is a very cool solution for integrating Plone with Google docs.
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
2,958
On SlideShare
0
From Embeds
0
Number of Embeds
24
Actions
Shares
0
Downloads
30
Comments
1
Likes
4
Embeds 0
No embeds

No notes for slide

GoogleDocs on Plone

  1. 1. Integration of Google Docs service in Plone Federica D'Elia - [email_address] Massimo Azzolini - [email_address]
  2. 2. GDIP: Google Docs service In Plone GDIP allows Plone users to store their documents on Google servers instead of ZODB <ul><li>Documents are kept on Google servers </li></ul><ul><ul><li>No more backups or ZODB size growth problems!!! </li></ul></ul><ul><li>Users can access their documents both from the Plone application and from their Google Docs account
  3. 3. Automatic setup of sharing settings on Google documents according to user roles of the Plone application
  4. 4. Integrates Google Docs-based support for collaborative editing in Plone </li></ul>
  5. 5. System Architecture <ul><li>GDIP is realized by four components: </li><ul><li>Google System Storage (GSS)
  6. 6. Google Authentication (GA)
  7. 7. Google Sharing (GS)
  8. 8. Google Modify Content (GMC) </li></ul></ul><ul><li>The GSS, GA, GS, and GMC components take advantage of the gdata-python library to access Google Docs service </li></ul>
  9. 9. <ul><li>The Google Documents List data API allows web applications to interact with Google Docs
  10. 10. The gdata-python library provides access to the Google Data APIs through classes and methods for constructing queries and using response data
  11. 11. GDIP uses methods provided by gdata-python library for uploading, downloading, deleting documents on Google servers, querying for a list of documents, and modifying document sharing permissions </li></ul>Google API
  12. 12. Google System Storage <ul><li>GSS saves the document types supported by the Google Docs service on the Google servers, while storing all the other files in the local filesystem </li></ul><ul><li>User can access their documents both from the Plone application and from their Google account </li></ul>
  13. 13. Access The Plone user can access his document Doc.odt from the Plone application and....
  14. 14. Access ...and from his Google account
  15. 15. GSS <ul><li>GSS is an extension of File System Storage </li></ul><ul><li>The GoogleSystemStorage class of googlesystemstorage changes set and get methods from the FileSystemStorage class of FSS </li></ul>
  16. 16. Set method <ul><li>The set method saves the document files in the local filesystem </li></ul><ul><li>If the file type corresponds to one of those supported by Google Docs set uploads the file on Google servers and removes the local copy of the file from the filesyste m </li></ul>
  17. 18. Get method <ul><li>The get method takes care of returning the requested documents to Plone users </li></ul><ul><li>get checks whether the file is stored on Google servers instead of the local filesystem, and in this case downloads the file from Google Docs </li></ul>
  18. 20. Google Authentication <ul><li>GA takes care of the user authentication upon Google Docs service, so that the Plone application can access the documents stored on Google servers </li><ul><li>GA completes the authentication procedure for Web applications provided by Google Docs
  19. 21. The procedure allows Web applications to authenticate users through their Google accounts </li></ul></ul>
  20. 22. Authentication Procedure The Plone user is redirected to a Google page that invites him to insert his credentials Once he logs in with his Google account, the user is asked to authorize the Plone application to access his documents
  21. 23. Authentication token <ul><li>If the user grants access, he is pointed again to the Plone application </li></ul><ul><li>The URL of the last redirection embeds an authentication token which allows the Plone application to access the user's documents on Google servers for the following requests </li></ul>
  22. 24. Authentication Procedure
  23. 25. The attribute google_token <ul><li>GA initiates the authentication procedure immediately after the user has logged into the Plone application </li></ul><ul><li>The procedure will be executed just once. When the Plone application obtains the authentication token, it will store it as an attribute, go ogle_token , in the user profile </li></ul>
  24. 26. Google Sharing <ul><li>GS manages document sharing attributes and their synchronization from the Plone application to Google Docs service </li><ul><li>For each document a role change performed in the Plone application corresponds to an equivalent role change on the Google Docs service
  25. 27. For example, if a Plone user assigns another user the Editor role on one of his documents, the other user will be able to read and modify that document through his Google account </li></ul></ul>
  26. 28. Role change The Plone user assigns the Editor role on the Doc.odt document to user Mario Rossi...
  27. 29. Role change ...Mario Rossi will then be able to read and modify that document through his Google account
  28. 30. Beware <ul><li>GS doesn't manage permissions but roles! </li><ul><li>Possible problem for documents with changing state </li></ul><li>Support for document workflow still to be implemented
  29. 31. GS doesn't manage changes on the Gdocs side. </li></ul>
  30. 32. Google Modify Content <ul><li>GMC allows Plone users to edit their documents directly from the Google Docs application, discovering the specific URL of the Google Docs document function and embedding that page in the current window of the Plone application </li></ul><ul><li>GMC extends the Plone content Edit function by adding the GoogleModify operation. GMC embeds the Google Docs application inside the GoogleModify panel </li></ul>
  31. 33. GoogleModify panel
  32. 34. iframe A new view, called by GoogleModify, discovers the specific URL of the Google Docs document function and embeds that page in the current window of the Plone application exploiting the iframe mechanism. New view template:
  33. 35. Collaborative editing The user Federica can edit a shared document from the GoogleModify panel...
  34. 36. ...thus collaborating with Mario Rossi who is working on the same document directly from the Google Docs application Collaborative editing
  35. 37. The end <ul><li>So, you can: </li><ul><li>Add a document
  36. 38. Manage it in both plone and gdocs
  37. 39. Change permissions
  38. 40. Have collaborative editing </li></ul><li>More or less :) </li><ul><li>Things to be done
  39. 41. gdata-python not so “stable” (eg. xxx.ods) </li></ul></ul>
  40. 42. Infos: Questions?! Federica D'Elia - [email_address] Massimo Azzolini - [email_address] Code soon on Collective!

×