Skip to content

Lti1p3 #688

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 30 commits into from
May 31, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
c1a4183
Integrate pylti1p3 library
ascholerChemeketa Apr 10, 2025
3addad9
LTI1p3 models and db
ascholerChemeketa Apr 10, 2025
99f4b11
RS specific wrapper for pylti1p3
ascholerChemeketa Apr 10, 2025
a34256b
LoginManager wrapper to modify login cookie handling
ascholerChemeketa Apr 10, 2025
b027821
Change uses_lti to fetch_lti_version to support 1.1 & 1.3
ascholerChemeketa Apr 10, 2025
147e20e
LTI1p3 templates
ascholerChemeketa Apr 10, 2025
dd04558
Admin server base
ascholerChemeketa Apr 10, 2025
c6f1a50
New crud functions for existing models
ascholerChemeketa Apr 10, 2025
15879c5
Modifications to existing crud functions
ascholerChemeketa Apr 10, 2025
71200f7
Admin server project
ascholerChemeketa Apr 10, 2025
b7f871a
Add admin server to docker-compose
ascholerChemeketa Apr 11, 2025
e9136fd
Update other pyproject.tomls
ascholerChemeketa Apr 10, 2025
294d238
nginx updates for admin server
ascholerChemeketa Apr 10, 2025
f9b2bf7
Samesite needed on cookies
ascholerChemeketa Apr 10, 2025
4b10b40
Bugfix, handle default language not existing for course
ascholerChemeketa Apr 10, 2025
d347dc1
Login route in web2py for admin server to use
ascholerChemeketa Apr 10, 2025
ae39ff9
Bugfix for custom importer
ascholerChemeketa Apr 10, 2025
1125055
Bugfix for OS dependent path
ascholerChemeketa Apr 10, 2025
bf15202
Disambiguate login error messages
ascholerChemeketa Apr 10, 2025
ca19229
Update grade updates to handle LTI 1.1 or 1.3
ascholerChemeketa Apr 10, 2025
558ea14
Instructor admin page updates
ascholerChemeketa Apr 10, 2025
4452585
Update to sample.env
ascholerChemeketa Apr 10, 2025
7f182f2
Add codelens as a AUTOGRADEABLE
ascholerChemeketa May 30, 2025
722ca45
Add domain_approvals table
ascholerChemeketa May 30, 2025
dc7474d
Add domain name column to courses
ascholerChemeketa May 30, 2025
e410089
Course designer page - add domain name
ascholerChemeketa May 30, 2025
c4c54da
Course admin page - add domain name
ascholerChemeketa May 30, 2025
25f7a02
DB crud - add check_domain_approval
ascholerChemeketa May 30, 2025
0787c0b
LTI1p3 verify domain approval before content linking
ascholerChemeketa May 30, 2025
e66aa5c
Fix Jinja template request location
ascholerChemeketa May 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions bases/rsptx/admin_server_api/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
## Readme

This server is intended to handle all routes related to course administration, user authorization, and lti setup and launches.

Currently implemented:

* LTI1.3 routes
4 changes: 4 additions & 0 deletions bases/rsptx/admin_server_api/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
from rsptx.admin_server_api import core

__all__ = ["core"]

46 changes: 46 additions & 0 deletions bases/rsptx/admin_server_api/core.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# *********************************
# |docname| - Define the AdminSErver
# *********************************
#

#
# Imports
# =======
# These are listed in the order prescribed by `PEP 8`_.
#
# Standard library
# ----------------
import os
import pathlib

# Third-party imports
# -------------------
from fastapi import FastAPI
from fastapi.staticfiles import StaticFiles

# Local application imports
# -------------------------
from rsptx.exceptions.core import add_exception_handlers
from rsptx.templates import template_folder

from .routers import lti1p3


# FastAPI setup
# =============
# copied from assignment_server_api
kwargs = {}
if root_path := os.environ.get("ROOT_PATH"):
kwargs["root_path"] = root_path
app = FastAPI(**kwargs) # type: ignore

# Anything that gets to this server with /staticAssets gets served from the staticAssets folder
template_dir = pathlib.Path(template_folder)
app.mount(
"/staticAssets", StaticFiles(directory=template_dir / "staticAssets"), name="static"
)

app.include_router(lti1p3.router)

# load a common set of middleware/exception handlers
add_exception_handlers(app)
Empty file.
Loading