feat: add install mode verification

This commit is contained in:
swve 2023-07-12 12:52:25 +01:00
parent 6e9998d45c
commit ce50fa760f
7 changed files with 64 additions and 15 deletions

View file

@ -2,7 +2,8 @@ from fastapi import APIRouter, Depends
from src.routers import blocks, dev, trail, users, auth, orgs, roles
from src.routers.courses import chapters, collections, courses, activities
from src.routers.install import install
from src.services.dev.dev import isDevModeEnabled
from src.services.dev.dev import isDevModeEnabled, isDevModeEnabledOrRaise
from src.services.install.install import isInstallModeEnabled
v1_router = APIRouter(prefix="/api/v1")
@ -17,13 +18,20 @@ v1_router.include_router(blocks.router, prefix="/blocks", tags=["blocks"])
v1_router.include_router(courses.router, prefix="/courses", tags=["courses"])
v1_router.include_router(chapters.router, prefix="/chapters", tags=["chapters"])
v1_router.include_router(activities.router, prefix="/activities", tags=["activities"])
v1_router.include_router( collections.router, prefix="/collections", tags=["collections"])
v1_router.include_router(
collections.router, prefix="/collections", tags=["collections"]
)
v1_router.include_router(trail.router, prefix="/trail", tags=["trail"])
# Dev Routes
v1_router.include_router(
dev.router, prefix="/dev", tags=["dev"], dependencies=[Depends(isDevModeEnabled)]
dev.router, prefix="/dev", tags=["dev"], dependencies=[Depends(isDevModeEnabledOrRaise)]
)
# Install Routes
v1_router.include_router(install.router, prefix="/install", tags=["install"])
v1_router.include_router(
install.router,
prefix="/install",
tags=["install"],
dependencies=[Depends(isInstallModeEnabled)],
)

View file

@ -7,8 +7,12 @@ def isDevModeEnabled():
if config.general_config.development_mode:
return True
else:
raise HTTPException(
status_code=403,
detail="Development mode is not enabled",
)
return False
def isDevModeEnabledOrRaise():
config = get_learnhouse_config()
if config.general_config.development_mode:
return True
else:
raise HTTPException(status_code=403, detail="Development mode is not enabled")

View file

@ -3,6 +3,7 @@ from uuid import uuid4
from fastapi import HTTPException, Request, status
from pydantic import BaseModel
import requests
from config.config import get_learnhouse_config
from src.security.security import security_hash_password
from src.services.courses.activities.activities import Activity, create_activity
from src.services.courses.chapters import create_coursechapter, CourseChapter
@ -31,6 +32,18 @@ class InstallInstance(BaseModel):
data: dict
async def isInstallModeEnabled():
config = get_learnhouse_config()
if config.general_config.install_mode:
return True
else:
raise HTTPException(
status_code=403,
detail="Install mode is not enabled",
)
async def create_install_instance(request: Request, data: dict):
installs = request.app.db["installs"]
@ -432,8 +445,6 @@ async def create_sample_data(org_slug: str, username: str, request: Request):
courses = request.app.db["courses"]
course = CourseInDB(**course.dict())
await courses.insert_one(course.dict())