googledocs on plone

Download GoogleDocs on Plone

If you can't read please download the document

Upload: massimo-azzolini

Post on 13-Jun-2015

2.469 views

Category:

Technology


0 download

DESCRIPTION

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.

TRANSCRIPT

  • 1. IntegrationofGoogleDocsserviceinPlone Federica D'Elia -[email_address] Massimo Azzolini -[email_address]

2. GDIP: Google Docs service In Plone GDIP allows Plone users to store their documents on Google servers instead of ZODB

  • Documents are kept on Google servers
    • No more backups or ZODB size growth problems!!!
  • Users can access their documents both from the Plone application and from their Google Docs account

3. Automatic setup of sharing settings on Google documents according to user roles of the Plone application 4. Integrates Google Docs-based support for collaborative editing in Plone 5. System Architecture

  • GDIP is realized by four components:
  • Google System Storage (GSS)

6. Google Authentication (GA) 7. Google Sharing (GS) 8. Google Modify Content (GMC)

  • The GSS, GA, GS, and GMC components take advantage of the gdata-python library to access Google Docs service

9.

  • The Google Documents List data API allows web applications to interact with Google Docs

10. The gdata-python library provides access to the Google Data APIs through classes and methods for constructing queries and using response data 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 Google API 12. Google System Storage

  • 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
  • User can access their documents both from the Plone application and from their Google account

13. Access The Plone user can access his document Doc.odt from the Plone application and.... 14. Access ...and from his Google account 15. GSS

  • GSS is an extension of File System Storage
  • TheGoogleSystemStorageclass ofgooglesystemstoragechangesset and getmethods from theFileSystemStorageclass of FSS

16. Set method

  • Thesetmethod saves the document files in the local filesystem
  • If the file type corresponds to one of those supported by Google Docssetuploads the file on Google servers and removes the local copy of the file from the filesyste m

17. 18. Get method

  • Thegetmethod takes care of returning the requested documents to Plone users
  • getchecks whether the file is stored on Google servers instead of the local filesystem, and in this case downloads the file from Google Docs

19. 20. Google Authentication

  • GA takes care of the user authentication upon Google Docs service, so that the Plone application can access the documents stored on Google servers
  • GA completes the authentication procedure for Web applications provided by Google Docs

21. The procedure allows Web applications to authenticate users through their Google accounts 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 23. Authentication token

  • If the user grants access, he is pointed again to the Plone application
  • 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

24. Authentication Procedure 25. The attribute google_token

  • GA initiates the authentication procedure immediately after the user has logged into the Plone application
  • 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

26. Google Sharing

  • GS manages document sharing attributes and their synchronization from the Plone application to Google Docs service
  • For each document a role change performed in the Plone application corresponds to an equivalent role change on the Google Docs service

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 28. Role change The Plone user assigns the Editor role on the Doc.odt document to user Mario Rossi... 29. Role change ...Mario Rossi will then be able to read and modify that document through his Google account 30. Beware

  • GS doesn't manage permissions but roles!
  • Possible problem for documents with changing state

Support for document workflow still to be implemented 31. GS doesn't manage changes on the Gdocs side. 32. Google Modify Content

  • 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
  • GMC extends the Plone contentEditfunction by adding theGoogleModifyoperation. GMC embeds the Google Docs application inside theGoogleModifypanel

33. GoogleModifypanel 34. iframe A new view, called byGoogleModify,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: 35. Collaborative editing The user Federica can edit a shared document from theGoogleModifypanel... 36. ...thus collaborating with Mario Rossi who is working on the same document directly from the Google Docs application Collaborative editing 37. The end

  • So, you can:
  • Add a document

38. Manage it in both plone and gdocs 39. Change permissions 40. Have collaborative editing More or less :)

  • Things to be done

41. gdata-python not so stable (eg. xxx.ods) 42. Infos: Questions?! Federica D'Elia -[email_address] Massimo Azzolini -[email_address] Code soon on Collective!