pressbooks / pressbooks-lti-provider

A plugin which turns Pressbooks into an LTI provider.
GNU General Public License v3.0
7 stars 4 forks source link

LTI link and book creation user role mismatch #102

Closed cagp-dev-mtl closed 4 years ago

cagp-dev-mtl commented 4 years ago

When a user that is not registered in Pressbooks clicks on an LTI link or book creation, the role matching LTI config is not being respected. Users are created with the role of the 'subscriber' not taking into account the mapping on the image below:

image

SteelWagstaff commented 4 years ago

@cagp-dev-mtl I did additional testing on several use cases. What I found was that an LTI launch for a user which did not previously exist in the database will always result in adding the user to the book in question with the subscriber role. Any subsequently LTI launch in another book or for a user which already exists on the network will add them to the book with the role specified in book settings. Here are videos of flow observed with integrations network and self-hosted Canvas and Moodle networks

  1. First launch (creates new user and adds them to initial book as subscriber no matter what book settings are), subsequent launches in other books working as expected: https://youtu.be/Bu_7G8xK_GM
  2. First launch & subsequent launches working as expected when user already exists in Pressbooks: https://www.youtube.com/watch?v=Tr1dSdYS9ZU (for Canvas) + https://www.youtube.com/watch?v=TpWXcu69e1c (for Moodle) + https://www.youtube.com/watch?v=gNqHomqu3wc (for Moodle with book create endpoint).
SteelWagstaff commented 4 years ago

@cagp-dev-mtl Tested with LTI 1.1 on integrations.pressbooks.network. User creation flow worked as intended. I did not experience successful user matching with LTI 1.3, however. Upon each launch, a new user was created with an LTI-like username and null email address. Will add more notes tomorrow.

MelanieWalter commented 2 years ago

@SteelWagstaff We did an update on our PB server with the dev 1.4 version of the PlugIn. And since then we are experiencing this issue. It does not seem to have been integrated in the newest build. Could you check this and/or integrate this fix into the master branch?