{"action":"created","issue":{"url":"https://api.github.com/repos/edx/edx-platform/issues/7549","labels_url":"https://api.github.com/repos/edx/edx-platform/issues/7549/labels{/name}","comments_url":"https://api.github.com/repos/edx/edx-platform/issues/7549/comments","events_url":"https://api.github.com/repos/edx/edx-platform/issues/7549/events","html_url":"https://github.com/edx/edx-platform/pull/7549","id":65678128,"number":7549,"title":"[LTI Provider] Creating Django project and adding initial LTI launch","user":{"login":"mcgachey","id":3449356,"avatar_url":"https://avatars.githubusercontent.com/u/3449356?v=3","gravatar_id":"","url":"https://api.github.com/users/mcgachey","html_url":"https://github.com/mcgachey","followers_url":"https://api.github.com/users/mcgachey/followers","following_url":"https://api.github.com/users/mcgachey/following{/other_user}","gists_url":"https://api.github.com/users/mcgachey/gists{/gist_id}","starred_url":"https://api.github.com/users/mcgachey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcgachey/subscriptions","organizations_url":"https://api.github.com/users/mcgachey/orgs","repos_url":"https://api.github.com/users/mcgachey/repos","events_url":"https://api.github.com/users/mcgachey/events{/privacy}","received_events_url":"https://api.github.com/users/mcgachey/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/edx/edx-platform/labels/waiting%20on%20author","name":"waiting on author","color":"0052cc"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":6,"created_at":"2015-04-01T12:59:20Z","updated_at":"2015-04-02T21:59:25Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/edx/edx-platform/pulls/7549","html_url":"https://github.com/edx/edx-platform/pull/7549","diff_url":"https://github.com/edx/edx-platform/pull/7549.diff","patch_url":"https://github.com/edx/edx-platform/pull/7549.patch"},"body":"This is the first pull request for the new LTI Provider feature. See the architecture plan at:\r\n    https://docs.google.com/document/d/185hdPvIxcKtiDOLjb4sTGovA_WYXWz5Cd79gCzQwBms\r\nand the discussion on the edx-code mailing list at:\r\n    https://groups.google.com/forum/#!topic/edx-code/aJnAqyHzpB8\r\n\r\nThis change introduces a new Django project to the LMS to allow edX to act as an LTI provider. It includes two new views; one that accepts an LTI POST launch request, and another that the user is redirected to via GET after authentication. It also verifies the OAuth signature of the LTI message and checks that all required LTI parameters are present.\r\n\r\nThe functionality here is controlled using a feature flag (ENABLE_LTI_PROVIDER) that defaults to False, so it will not be deployed until it is feature complete. Right now the views don't render anything interesting; there are plans in the works to refactor the courseware/courseware.html template in such a way that allows us to turn off the various chrome around the content so that we can embed just a single edX CAPA problem (and, eventually, any other XBlock). \r\n\r\nThe other major limitation to the existing code (that will be addressed in a future change) is that the OAuth signature verifier does not handle timestamps and nonces. The functionality here works for development purposes, but will have to be fixed before the feature can go live.\r\n\r\nThe OAuth verification uses the oauthlib library that is already in use elsewhere in edX. However it required a version bump from 0.6.3 to 0.7.2 in order to use a signature verification pattern that was recently added."},"comment":{"url":"https://api.github.com/repos/edx/edx-platform/issues/comments/89057581","html_url":"https://github.com/edx/edx-platform/pull/7549#issuecomment-89057581","issue_url":"https://api.github.com/repos/edx/edx-platform/issues/7549","id":89057581,"user":{"login":"mcgachey","id":3449356,"avatar_url":"https://avatars.githubusercontent.com/u/3449356?v=3","gravatar_id":"","url":"https://api.github.com/users/mcgachey","html_url":"https://github.com/mcgachey","followers_url":"https://api.github.com/users/mcgachey/followers","following_url":"https://api.github.com/users/mcgachey/following{/other_user}","gists_url":"https://api.github.com/users/mcgachey/gists{/gist_id}","starred_url":"https://api.github.com/users/mcgachey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mcgachey/subscriptions","organizations_url":"https://api.github.com/users/mcgachey/orgs","repos_url":"https://api.github.com/users/mcgachey/repos","events_url":"https://api.github.com/users/mcgachey/events{/privacy}","received_events_url":"https://api.github.com/users/mcgachey/received_events","type":"User","site_admin":false},"created_at":"2015-04-02T21:59:25Z","updated_at":"2015-04-02T21:59:25Z","body":"@sarina - The two tests that are failing are doing so because of the missing dependency on the oauthlib library (that was moved to its own pull request). Once that change has been merged, I'll rebase this one and everything will pass."}}