Skip to content

Commit edac976

Browse files
committed
feat: Send an LTI launch event for LTI Launches
1 parent eea4c60 commit edac976

1 file changed

Lines changed: 30 additions & 0 deletions

File tree

lms/djangoapps/lti_provider/views.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
from common.djangoapps.edxmako.shortcuts import render_to_response
1313
from opaque_keys import InvalidKeyError
1414
from opaque_keys.edx.keys import CourseKey, UsageKey
15+
from openedx_events.learning.data import LtiProviderLaunchData, LtiProviderLaunchParamsData, UserData, UserPersonalData
16+
from openedx_events.learning.signals import LTI_PROVIDER_LAUNCH_SUCCESS
1517

1618
from common.djangoapps.util.views import add_p3p_header
1719
from lms.djangoapps.lti_provider.models import LtiConsumer
@@ -107,6 +109,34 @@ def lti_launch(request, course_id, usage_id):
107109
# used earlier to verify the oauth signature.
108110
store_outcome_parameters(params, request.user, lti_consumer)
109111

112+
# Make a copy of params for the event signal, and remove sensitive oauth parameters.
113+
launch_params = params.copy()
114+
for key in launch_params:
115+
if key.startswith('oauth_'):
116+
launch_params.pop(key)
117+
118+
LTI_PROVIDER_LAUNCH_SUCCESS.send_event(
119+
launch_data=LtiProviderLaunchData(
120+
user=UserData(
121+
pii=UserPersonalData(
122+
username=request.user.username,
123+
email=request.user.email,
124+
name=request.user.profile.name,
125+
),
126+
id=request.user.id,
127+
is_active=request.user.is_active,
128+
),
129+
course_key=launch_params.pop("course_key"),
130+
usage_key=launch_params.pop("usage_key"),
131+
launch_params=LtiProviderLaunchParamsData(
132+
roles=launch_params.pop("roles"),
133+
context_id=launch_params.pop("context_id"),
134+
user_id=launch_params.pop("user_id"),
135+
extra_data={key: str(val) for key, val in launch_params.items()},
136+
),
137+
)
138+
)
139+
110140
return render_courseware(request, params['usage_key'])
111141

112142

0 commit comments

Comments
 (0)