Uploaded image for project: 'Sakai'
  1. Sakai
  2. SAK-40632

Implement the rolemap feature in the non-portlet LTI Placements

    Details

    • Type: Task
    • Status: RESOLVED
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 19.0
    • Component/s: None
    • Labels:
      None
    • Conversion Script Required:
      Yes
    • Test Plan:
      Hide

      Log in as administrator.  Under Administration Workspace / External Tools. Make an LTI 1.1 tool.  Url: https://www.tsugicloud.org/mod/cats/  Key: 12345 Secret: secret.  Set the rolemap to be

      maintain:Dude;access:RockStar

      And turn on debug launch (see image).

      Then login and make a site, with an instructor and student account.  Place the tool into Lessons and launch as instructor, show debug data and verify the role is Dude (see image).  Then switch to student, launch the tool, show debug data and verify the role is RockStar (see image).

      Go into the Admin / Admin Workspace / External Tools and change the tool's rolemap to use comma:

      maintain:Dude;access:RockStar

      The two launches should be the same.

      Go into the Admin / Admin Workspace / External Tools and delete the rolemap completely.

      The two launches should be Instructor and Learner (i.e. the defaults).

       

      Show
      Log in as administrator.  Under Administration Workspace / External Tools. Make an LTI 1.1 tool.  Url:  https://www.tsugicloud.org/mod/cats/   Key: 12345 Secret: secret.  Set the rolemap to be maintain:Dude;access:RockStar And turn on debug launch (see image). Then login and make a site, with an instructor and student account.  Place the tool into Lessons and launch as instructor, show debug data and verify the role is Dude (see image).  Then switch to student, launch the tool, show debug data and verify the role is RockStar (see image). Go into the Admin / Admin Workspace / External Tools and change the tool's rolemap to use comma: maintain:Dude;access:RockStar The two launches should be the same. Go into the Admin / Admin Workspace / External Tools and delete the rolemap completely. The two launches should be Instructor and Learner (i.e. the defaults).  

      Description

      The old portlet style LTI placements support a feature called "rolemap" where you can map a set of Sakai roles to IMS roles for a particular placement.  The new style LTI Tool placements (i.e. those that you create in External Tools) do not have a similar feature.   This task is to replicate the feature implemented in ---SAK-24185--- and related JIRAs.  Here is a thread about the old feature:

      http://sakai-dev.collab.sakaiproject.narkive.com/nGhAtwHv/building-sakai-can-sakai-roles-be-mapped-to-lti-roles

      It generally looks like the feature was proposed a lot of ways and implemented slightly differently than all the proposals.  Here is how it works in the portlet.  You go into the old Site Admin tool, and go into the tool placement and set a property called "rolemap" to a value like "maintain:Learner,access:Learner".

      This is how it will work for style LTI tools.  There will ba role map field on the add new tool screen that accepts mappings of the form:

      maintain:Learner,access:Learner

      Or if the string has a semicolon in it anywhere, we use semicolon as separator

      maintain:Learner;access:Learner

      This allows, more than one LTI role to be specified:

      maintain:Instructor,Mentor,Manager;access:Learner,TeachingAssistant

      Note that with this change the old portlet-style settings can use semicolon or comma as well.

       

       

        Gliffy Diagrams

          Attachments

            Activity

              People

              • Assignee:
                csev Charles Severance
                Reporter:
                csev Charles Severance
              • Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved:

                  Git Source Code