mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
wtv
This commit is contained in:
@@ -69,22 +69,43 @@ def stuff(request):
|
||||
if getattr(settings, 'USE_LTI', False):
|
||||
# Check if user has an active LTI session
|
||||
lti_session = request.session.get('lti_session')
|
||||
print("=" * 80)
|
||||
print("CONTEXT PROCESSOR - LTI CATEGORY LOOKUP")
|
||||
print("USE_LTI: True")
|
||||
print(f"User authenticated: {request.user.is_authenticated}")
|
||||
print(f"LTI session exists: {lti_session is not None}")
|
||||
|
||||
if lti_session and request.user.is_authenticated:
|
||||
ret['lti_session'] = lti_session
|
||||
print(f"LTI session data: {lti_session}")
|
||||
|
||||
# Get the category for this LTI context via lti_platform and lti_context_id
|
||||
platform_id = lti_session.get('platform_id')
|
||||
context_id = lti_session.get('context_id')
|
||||
print(f"Platform ID: {platform_id}, Context ID: {context_id}")
|
||||
|
||||
if platform_id and context_id:
|
||||
try:
|
||||
# Look up category by LTI platform and context
|
||||
category = Category.objects.get(lti_platform_id=platform_id, lti_context_id=context_id)
|
||||
print(f"Category found: {category.title} (uid={category.uid})")
|
||||
|
||||
# Check if user has permission to upload to this category
|
||||
if request.user.has_member_access_to_category(category):
|
||||
has_access = request.user.has_member_access_to_category(category)
|
||||
print(f"User has member access: {has_access}")
|
||||
|
||||
if has_access:
|
||||
ret['lti_category_uid'] = category.uid
|
||||
print(f"SUCCESS: Set lti_category_uid = {category.uid}")
|
||||
else:
|
||||
print("SKIPPED: User does not have member access to category")
|
||||
except Category.DoesNotExist:
|
||||
print(f"ERROR: No category found with lti_platform_id={platform_id}, lti_context_id={context_id}")
|
||||
pass
|
||||
else:
|
||||
print("SKIPPED: Missing platform_id or context_id")
|
||||
else:
|
||||
print("SKIPPED: No LTI session or user not authenticated")
|
||||
print("=" * 80)
|
||||
|
||||
return ret
|
||||
|
||||
@@ -276,18 +276,34 @@ class MediaList(APIView):
|
||||
|
||||
# Handle LTI category assignment if publish_to_category parameter is provided
|
||||
publish_to_category = request.data.get('publish_to_category', '').strip()
|
||||
print("=" * 80)
|
||||
print("MEDIA UPLOAD - CATEGORY ASSIGNMENT")
|
||||
print(f"publish_to_category parameter: '{publish_to_category}'")
|
||||
print(f"User: {request.user.username}")
|
||||
|
||||
if publish_to_category:
|
||||
from ..models import Category
|
||||
|
||||
try:
|
||||
category = Category.objects.get(uid=publish_to_category)
|
||||
print(f"Category found: {category.title} (uid={category.uid})")
|
||||
|
||||
# Check if user has upload access to this category
|
||||
if request.user.has_member_access_to_category(category):
|
||||
has_access = request.user.has_member_access_to_category(category)
|
||||
print(f"User has member access to category: {has_access}")
|
||||
|
||||
if has_access:
|
||||
media.category.add(category)
|
||||
print(f"SUCCESS: Added media '{media.title}' to category '{category.title}'")
|
||||
else:
|
||||
print(f"SKIPPED: User does not have member access to category '{category.title}'")
|
||||
except Category.DoesNotExist:
|
||||
# Category doesn't exist, silently ignore
|
||||
print(f"ERROR: Category with uid='{publish_to_category}' does not exist")
|
||||
pass
|
||||
else:
|
||||
print("No publish_to_category parameter provided")
|
||||
print("=" * 80)
|
||||
|
||||
return Response(serializer.data, status=status.HTTP_201_CREATED)
|
||||
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
|
||||
|
||||
Reference in New Issue
Block a user