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

Open
wants to merge 23 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
23 commits
Select commit Hold shift + click to select a range
f58d2e0
Integrate pylti1p3 library
ascholerChemeketa Apr 10, 2025
1d61931
LTI1p3 models and db
ascholerChemeketa Apr 10, 2025
367f97a
RS specific wrapper for pylti1p3
ascholerChemeketa Apr 10, 2025
caf2db8
LoginManager wrapper to modify login cookie handling
ascholerChemeketa Apr 10, 2025
8c80323
Change uses_lti to fetch_lti_version to support 1.1 & 1.3
ascholerChemeketa Apr 10, 2025
62623f9
LTI1p3 templates
ascholerChemeketa Apr 10, 2025
81c117b
Admin server base
ascholerChemeketa Apr 10, 2025
067778a
New crud functions for existing models
ascholerChemeketa Apr 10, 2025
76f380c
Modifications to existing crud functions
ascholerChemeketa Apr 10, 2025
2faca63
Admin server project
ascholerChemeketa Apr 10, 2025
3a7c87e
Add admin server to docker-compose
ascholerChemeketa Apr 11, 2025
2bfd660
Update other pyproject.tomls
ascholerChemeketa Apr 10, 2025
297db37
nginx updates for admin server
ascholerChemeketa Apr 10, 2025
7c9bf7b
Samesite needed on cookies
ascholerChemeketa Apr 10, 2025
65cfca5
Bugfix, handle default language not existing for course
ascholerChemeketa Apr 10, 2025
700f799
Login route in web2py for admin server to use
ascholerChemeketa Apr 10, 2025
d209e24
Bugfix for custom importer
ascholerChemeketa Apr 10, 2025
2490520
Bugfix for OS dependent path
ascholerChemeketa Apr 10, 2025
c104b8a
Disambiguate login error messages
ascholerChemeketa Apr 10, 2025
908215e
Update grade updates to handle LTI 1.1 or 1.3
ascholerChemeketa Apr 10, 2025
8504969
Instructor admin page updates
ascholerChemeketa Apr 10, 2025
aa67b18
Update to sample.env
ascholerChemeketa Apr 10, 2025
ad05b39
Better login error
ascholerChemeketa Apr 11, 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