This commit is contained in:
Markos Gogoulos
2026-04-21 11:28:15 +03:00
parent 6fb45bc51f
commit f5076024fd
+17 -2
View File
@@ -223,6 +223,7 @@ class LaunchView(View):
'width': 'width', 'width': 'width',
'height': 'height', 'height': 'height',
'show_media_page': 'show_media_page', 'show_media_page': 'show_media_page',
'embed_share_media': 'share_media',
} }
for key, param_name in param_mapping.items(): for key, param_name in param_mapping.items():
@@ -270,7 +271,17 @@ class LaunchView(View):
media_token_from_state = state_data.get('media_token') media_token_from_state = state_data.get('media_token')
# Extract embed parameters from state # Extract embed parameters from state
for key in ['embed_show_title', 'embed_show_related', 'embed_show_user_avatar', 'embed_link_title', 'embed_start_time', 'embed_width', 'embed_height', 'show_media_page']: for key in [
'embed_show_title',
'embed_show_related',
'embed_show_user_avatar',
'embed_link_title',
'embed_start_time',
'embed_width',
'embed_height',
'show_media_page',
'embed_share_media',
]:
if key in state_data: if key in state_data:
embed_params_from_state[key] = state_data[key] embed_params_from_state[key] = state_data[key]
except Exception: except Exception:
@@ -700,6 +711,9 @@ class EmbedMediaLTIView(View):
else: else:
can_view = False can_view = False
# share_media=0 means only grant view access without creating a MediaPermission record
share_media = request.GET.get('share_media', '1') != '0'
if lti_session and request.user.is_authenticated: if lti_session and request.user.is_authenticated:
context_id = lti_session.get('context_id') context_id = lti_session.get('context_id')
platform_id = lti_session.get('platform_id') platform_id = lti_session.get('platform_id')
@@ -720,6 +734,8 @@ class EmbedMediaLTIView(View):
rbac_group=resource_link.rbac_group, rbac_group=resource_link.rbac_group,
).exists() ).exists()
if has_course_access: if has_course_access:
can_view = True
if share_media:
# create an entry so it shows up under shared with me # create an entry so it shows up under shared with me
MediaPermission.objects.get_or_create( MediaPermission.objects.get_or_create(
user=request.user, user=request.user,
@@ -729,7 +745,6 @@ class EmbedMediaLTIView(View):
'permission': 'viewer', 'permission': 'viewer',
}, },
) )
can_view = True
except Exception: except Exception:
logger.exception('EmbedMediaLTIView: error checking course access for user=%s media=%s', request.user, friendly_token) logger.exception('EmbedMediaLTIView: error checking course access for user=%s media=%s', request.user, friendly_token)