Module: IMS::LTI::RoleChecks
- Included in:
- ToolProvider
- Defined in:
- lib/ims/lti/role_checks.rb
Overview
Some convenience methods for the most used roles Take care when using context_ helpers, as the context of an LTI launch determines the meaning of that role. For example, if the context is an institution context instead of a course context, then the short role of “Instructor” means they are a teacher at the institution, but not necessarily of the course you’re working in.
Also note that these only check for the base roles. So, asking context_student? only matches ‘urn:lti:role:ims/lis/Learner`, not `urn:lti:role:ims/lis/Learner/NonCreditLearner` If you make use of the more specific roles you’ll need to ask specifically for those: @tool_provider.has_exact_role?(“urn:lti:role:ims/lis/Learner/NonCreditLearner”) Or you can use ‘has_base_role?`
Instance Method Summary collapse
-
#context_admin? ⇒ Boolean
Convenience method for checking if the user has ‘administrator’ role in the current launch context.
-
#context_content_developer? ⇒ Boolean
Convenience method for checking if the user has ‘contentdeveloper’ role in the current launch context.
-
#context_instructor? ⇒ Boolean
Convenience method for checking if the user has ‘instructor’ role in the current launch context.
-
#context_mentor? ⇒ Boolean
Convenience method for checking if the user has ‘Mentor’ role in the current launch context.
-
#context_observer? ⇒ Boolean
Convenience method for checking if the user has ‘Observer’ role in the current launch context.
-
#context_student? ⇒ Boolean
Convenience method for checking if the user has ‘learner’ role in the current launch context.
-
#context_ta? ⇒ Boolean
Convenience method for checking if the user has ‘TeachingAssistant’ role in the current launch context.
-
#has_base_role?(role) ⇒ Boolean
Check whether the Launch Parameters have a given role ignoring sub roles.
-
#has_exact_role?(role) ⇒ Boolean
Check whether the Launch Parameters have a given role.
-
#institution_admin? ⇒ Boolean
Convenience method for checking if the user has ‘Administrator’ role at the institution.
-
#institution_instructor? ⇒ Boolean
Convenience method for checking if the user has ‘Instructor’ role at the institution.
-
#institution_student? ⇒ Boolean
Convenience method for checking if the user has ‘student’ or ‘learner’ roles at the institution.
-
#system_administrator? ⇒ Boolean
Convenience method for checking if the user is the system administrator of the TC.
Instance Method Details
#context_admin? ⇒ Boolean
Convenience method for checking if the user has ‘administrator’ role in the current launch context
87 88 89 |
# File 'lib/ims/lti/role_checks.rb', line 87 def context_admin? has_exact_role?('Administrator') || has_exact_role?('urn:lti:role:ims/lis/Administrator') end |
#context_content_developer? ⇒ Boolean
Convenience method for checking if the user has ‘contentdeveloper’ role in the current launch context
77 78 79 |
# File 'lib/ims/lti/role_checks.rb', line 77 def context_content_developer? has_exact_role?('ContentDeveloper') || has_exact_role?('urn:lti:role:ims/lis/ContentDeveloper') end |
#context_instructor? ⇒ Boolean
Convenience method for checking if the user has ‘instructor’ role in the current launch context
72 73 74 |
# File 'lib/ims/lti/role_checks.rb', line 72 def context_instructor? has_exact_role?('instructor') || has_exact_role?('urn:lti:role:ims/lis/Instructor') end |
#context_mentor? ⇒ Boolean
Convenience method for checking if the user has ‘Mentor’ role in the current launch context
82 83 84 |
# File 'lib/ims/lti/role_checks.rb', line 82 def context_mentor? has_exact_role?('Mentor') || has_exact_role?('urn:lti:role:ims/lis/Mentor') end |
#context_observer? ⇒ Boolean
Convenience method for checking if the user has ‘Observer’ role in the current launch context
97 98 99 |
# File 'lib/ims/lti/role_checks.rb', line 97 def context_observer? has_exact_role?('Observer') || has_exact_role?('urn:lti:instrole:ims/lis/Observer') end |
#context_student? ⇒ Boolean
Convenience method for checking if the user has ‘learner’ role in the current launch context
67 68 69 |
# File 'lib/ims/lti/role_checks.rb', line 67 def context_student? has_exact_role?('Learner') || has_exact_role?('urn:lti:role:ims/lis/Learner') end |
#context_ta? ⇒ Boolean
Convenience method for checking if the user has ‘TeachingAssistant’ role in the current launch context
92 93 94 |
# File 'lib/ims/lti/role_checks.rb', line 92 def context_ta? has_exact_role?('TeachingAssistant') || has_exact_role?('urn:lti:role:ims/lis/TeachingAssistant') end |
#has_base_role?(role) ⇒ Boolean
Check whether the Launch Parameters have a given role ignoring sub roles. So asking: @tool_provider.has_base_role?(“urn:lti:role:ims/lis/Instructor/”) will return true if the role is ‘urn:lti:role:ims/lis/Instructor/GuestInstructor`
26 27 28 29 |
# File 'lib/ims/lti/role_checks.rb', line 26 def has_base_role?(role) role = role.downcase @roles && @roles.any? { |r| r.downcase.start_with?(role) } end |
#has_exact_role?(role) ⇒ Boolean
Check whether the Launch Parameters have a given role
17 18 19 20 |
# File 'lib/ims/lti/role_checks.rb', line 17 def has_exact_role?(role) role = role.downcase @roles && @roles.any? { |r| r.downcase == role } end |
#institution_admin? ⇒ Boolean
Convenience method for checking if the user has ‘Administrator’ role at the institution
54 55 56 |
# File 'lib/ims/lti/role_checks.rb', line 54 def institution_admin? has_exact_role?('urn:lti:instrole:ims/lis/Administrator') end |
#institution_instructor? ⇒ Boolean
Convenience method for checking if the user has ‘Instructor’ role at the institution
49 50 51 |
# File 'lib/ims/lti/role_checks.rb', line 49 def institution_instructor? has_exact_role?('urn:lti:instrole:ims/lis/Instructor') end |
#institution_student? ⇒ Boolean
Convenience method for checking if the user has ‘student’ or ‘learner’ roles at the institution
44 45 46 |
# File 'lib/ims/lti/role_checks.rb', line 44 def institution_student? has_exact_role?('urn:lti:instrole:ims/lis/Student') || has_exact_role?('urn:lti:instrole:ims/lis/Learner') end |
#system_administrator? ⇒ Boolean
Convenience method for checking if the user is the system administrator of the TC
32 33 34 35 36 |
# File 'lib/ims/lti/role_checks.rb', line 32 def system_administrator? has_exact_role?('urn:lti:sysrole:ims/lis/SysAdmin') || has_exact_role?('SysAdmin') || has_exact_role?('urn:lti:sysrole:ims/lis/Administrator') end |