Porting DrupalGapps to D7 & integration of OAuth & Docs List API

Events happening in the community are now at Drupal community events on www.drupal.org.
You are viewing a wiki page. You are welcome to join the group and then edit it. Be bold!

Project information

Student: Vaidik Kapoor (vaidik on d.o, vaidik on g.d.o)
Mentor: Kaustubh Shrikanth (houndbee)
Co-mentor(s): Stella Power (stella), Daniel Wahner (dereine), Ankur Saxena (flyankur)
Local mentor(s):

Current status: Working on porting DrupalGapps. Working on Documents List API integration for ClientLogin. Basic functionalities of Google Docs Listing of items have been achieved.

Overview

The project aims at extending the DrupalGapps (Google Apps Framework for Drupal) module by:
* Porting DrupalGapps module to Drupal 7.
* Improving and adding more features to existing DrupalGapps API.
* OAuth integration.
* Registration sub-module development.
* Developing wrapper API and application for Google Documents List API using DrupalGapps API.

Links
http://groups.drupal.org/node/136534 - Project Proposal on G.D.O
http://www.google-melange.com/gsoc/proposal/review/google/gsoc2011/vaidik/1 - Application on Melange
http://drupal.org/project/drupalgapps - DrupalGapps: Google Apps Framework for Drupal
http://drupalgapps.vaidikkapoor.info/ - Demo Site for Google Documents List API Integration

Work & Sandbox
http://drupal.org/project/drupalgapps - DrupalGapps
http://drupal.org/sandbox/vaidik/1191524 - DrupalGapps Google Docs Sandbox

Project Schedule

  • Tasks before May 23, 2011

    • Setup Google Apps Working Base.
    • Study Google Data Protocol, Google Authentication API (OAuth), Google Documents List API.
    • Study the existing DrupalGapps code base.
    • Understand the Drupal registration and user management system.
    • Get used to Drupal development environment and git.
  • Milestone 1 – porting DrupalGapps to Drupal 7

    • May 23, 2011 to June 3, 2011 – understanding the differences and making relevant changes to the existing DrupalGapps module for Drupal 7 compatibility.
  • Milestone 2 – planning, designing and prototyping for extending DrupalGapps Core

    • June 4, 2011 to June 10, 2011 – brainstorming, planning and deciding the integration methods to be used. The end-result will be a complete design and prototype to summarize the remaining project.
  • Milestone 3 – OAuth integration into DrupalGapps. Development of registration module Integration of all this work in DrupalGapps Core.

    • June 11, 2011 to June 25, 2011 – complete OAuth integration for Google Apps authentication (2-legged and 3-legged).
    • June 26, 2011 to July 10, 2011 – development of registration sub-module. Development of UI for complete administration.
    • July 10, 2011 to July 13, 2011 – testing, debugging and documentation of the work done so far.
  • Milestone 4 – development of DrupalGapps application modules for Google Apps service-specific APIs.

    • July 13, 2011 to August 14, 2011 – development of wrapper API for Documents List API and development of application (Google Docs like view and interface) with UI. Integration with Views API.
    • August 16, 2011 to August 22, 2011 – final testing, debugging and detailed documentation.

Comments

Progress on porting of DrupalGapps

vaidik's picture

Most of the porting work is complete.

There are issues with the Provisioning API part which I have not been able to resolve. But, I am getting somewhere with that as well. Need to make relevant changes related to that in the code base.

The port should be complete soon.

Vaidik Kapoor

Progress on integration of Documents List Data API

vaidik's picture

I started working on integration of Documents List Data API when I got tired with finding the solution to the problem I was facing with Provisioning API. This work is against the decided schedule but it has helped me understand a lot of things about the complete project and has helped me deciding the design of the project.

Integration of Documents List Data API

  • This will be a separate module which will depend upon the existing DrupalGapps module with a little modification.
  • This will include the following:
    • Wrapper API for Documents List Data API.
    • Application similar to Google Docs (as in functionalities) using the written Wrapper API.

Tasks achieved

  • Listing of documents/files in a Google Docs account.
  • Filtering of files according to file type and sections like Starred items, Trashed items, etc.
  • Trashing items and permanently deletion of items.

Wrapper APIs have been written for the above mentioned particulars. A small application has also been developed using the written API so far. This application also assists me in testing the new wrapper API.

I am also attaching some screen-shots of the application developed so far.

Only local images are allowed.

Only local images are allowed.

Only local images are allowed.

Only local images are allowed.

Only local images are allowed.

Vaidik Kapoor

DrupalGapps port to D7 - complete!

vaidik's picture

Existing DrupalGapps port has been finally ported to D7. The ported module has been committed to D.O.

Vaidik Kapoor

Vaidik, Good job with

sumitk's picture

Vaidik,

Good job with reporting. Looking forward to this project.

Wrapper API for Google Docs API

vaidik's picture

Wrappers API is almost ready. Application development is on-going.

Vaidik Kapoor

3-legged OAuth Integration is complete

vaidik's picture

Completed 3-legged OAuth authentication.

Now, OAuth and ClientLogin both are available. One of the two protocols can be selected for use.

I have tried to maintain uniformity in the functions for OAuth and ClientLogin - uniformity in the sense that it shouldn't be difficult for a developer to use the DrupalGapps API. Hence, there is not much difference when it comes to using ClientLogin or OAuth.

Vaidik Kapoor

OAuth

Brtk's picture

Hi,
great job with the project.
I'm creating a site where users must be able to login to Drupal with their Google Apps accounts. OAuth seems best for this purpose (works well in Google apps, e.g. Insightly). I tried many modules for Drupal 6 and nothing seemed to work. Is your module offering the features I’m looking for?

Regards,
Brtk

Hi, Thanks! The D6 version of

vaidik's picture

Hi,

Thanks! The D6 version of this module does not have support for OAuth.

The current D7-dev version is a simple port of the D6 version.

The work done under GSoC 2011 includes OAuth support and a lot of other things as well. That has not been released yet and I am working on releasing the dev version. It will be released soon. All the new work has been done for D7. Also, there is no support for SSO right now. But I will be working on that soon as well. There is enough API in the module which can be used to do what you wish to achieve.

Let me know if there is anything else I can help you with.

Vaidik Kapoor

Hi, yes, I've seen both

Brtk's picture

Hi,
yes, I've seen both versions and commits in sandbox (congratulations on D7 work you have already done).
I wasn't sure if you wanted OAuth just to get access to API or also to allow users to login with it, but now I see that you consider it.
Can you estimate when could I expect the feature I'm looking for?

Maybe you know any currently working module (for either D6 or D7) which allows user to login with their Google Apps account? I tried many and don’t know if I failed because I have set up something wrong or it just doesn't work properly.

Any help would be appreciated. And good luck with your project.

Regards,
Brtk

Well, initially OAuth was

vaidik's picture

Well, initially OAuth was selected only for API access only as SSO was never a part of my project. But that is because all the work that had been done in this module used ClientLogin authentication which is not secure (even Google recommends not to use it). So OAuth was made available. But, SSO is probably the most sought after feature and I don't know why I didn't include it. It needs to be done ASAP.

The issue is that I am little busy with college these days so whatever work I do on this comes out of my sleep time. However, I am trying really hard to roll out the release in 2 weeks any how (not later).

I am not sure if there are modules that have SSO. There are modules that do other things but not SSO (at least not to my knowledge).

If you need it urgently, you can write something temporary on top of the code in the sandbox to serve your purpose (i.e. if you are not interested in contrib) and then submit a patch so that I can add/modify to make it generic and include it in the module.

Hope that helps!
Vaidik

P.S.: I will try to get things out ASAP. Apologies for the delay.

Vaidik Kapoor

Document List

wastrilith2k's picture

Do you have a link to the Document List API module or is that not completed?

Thank you,

James

--James

Its not completely complete.

vaidik's picture

Its not completely complete. But almost of all it is done. The project is not release ready and therefore is in the sandbox.

http://drupal.org/sandbox/vaidik/1191524

Vaidik Kapoor

Google Summer of Code 2011

Group notifications

This group offers an RSS feed. Or subscribe to these personalized, sitewide feeds:

Hot content this week