No description
Find a file
2025-09-22 10:14:21 +02:00
api REmove __pycache__ 2025-09-20 12:51:27 +02:00
config cleanup 2025-09-22 07:34:49 +02:00
locale cleanup 2025-09-22 07:34:49 +02:00
risks Change Impact_Choices to DB 2025-09-22 10:14:21 +02:00
static Add risk trend chart to dashboard 2025-09-12 22:31:05 +02:00
templates Change Impact_Choices to DB 2025-09-22 10:14:21 +02:00
.env-example Create Basic Django Framework with API, SQLite, PostgreSQL, MySQL and SSO with OIDC 2025-09-05 15:32:33 +02:00
.gitignore Refactor risk management templates for improved usability and localization 2025-09-12 13:04:04 +02:00
db.sqlite3 Change Impact_Choices to DB 2025-09-22 10:14:21 +02:00
docker-compose-sqlite.yml Create Basic Django Framework with API, SQLite, PostgreSQL, MySQL and SSO with OIDC 2025-09-05 15:32:33 +02:00
Dockerfile First Commit 2025-09-05 12:02:41 +02:00
entrypoint.sh Create Basic Django Framework with API, SQLite, PostgreSQL, MySQL and SSO with OIDC 2025-09-05 15:32:33 +02:00
manage.py First Commit 2025-09-05 12:02:41 +02:00
README.md Add navigation registry and template integration for modular apps 2025-09-17 09:36:11 +02:00
requirements.txt Add custom User model, OIDC backend, DB flexibility (SQLite/Postgres/MySQL), secured API endpoints, and initial Risk/Control models with enums, score calculation, and groups seeding. 2025-09-07 20:52:19 +02:00
startserver.sh Create Basic Django Framework with API, SQLite, PostgreSQL, MySQL and SSO with OIDC 2025-09-05 15:32:33 +02:00

Modul-Integration in das risks Projekt

Dieses Dokument beschreibt, wie weitere Apps (z. B. ToDo) in dein ISO-27001 Risk-Management Projekt (App heißt risks) integriert werden. Alle Apps im Bestand sind/werden nach demselben Muster aufgebaut und registrieren sich selbst in der Navigation, wenn sie installiert sind und vorhandene Permissions passen.


Schritte zur Einbindung einer neuen App

1. Submodul hinzufügen

Füge das gewünschte App-Repo als Git-Submodul hinzu:

git submodule add <git-url-der-app> <ziel-verzeichnis>

Beispiel für ToDo-App:

git submodule add https://skulldev.de/Skull-IT/todo-app.git todo

Wichtig: Der Zielpfad sollte dem App-Namen entsprechen (todo etc).


2. App in INSTALLED_APPS aktivieren

In deinem Projekt unter config/settings.py oder dem entsprechenden Settings-Modul:

INSTALLED_APPS = [
    # bestehende Apps
    "risks",
    "todo",  # neu hinzugefügte App
    # … weitere
]

Damit registriert Django Models, Migrations, Templates & static files der App.


3. URLs einbinden

In deiner zentralen urls.py (unter config/ oder wo dein Root URLs definiert sind) muss die neue App eingebunden werden:

from django.urls import include, path

urlpatterns = [
    # …
    path("todo/", include("todo.urls", namespace="todo")),
]

Damit werden die Views der App über /todo/ erreichbar.


4. Navigation (automatisch)

Registry-Ansatz

  • In risks existiert eine Navigation-Registry.
  • Jede App registriert sich selbst in dieser Registry mit Label, URL-Name, und erforderlicher Permission.
  • risks rendert automatisch alle registrierten Navigationseinträge im Menü, sofern installiert + Benutzer berechtigt.

Beispiel: Registrierung in der neuen App (apps.py)

from django.apps import AppConfig

class TodoConfig(AppConfig):
    default_auto_field = "django.db.models.BigAutoField"
    name = "todo"

    def ready(self):
        try:
            from risks.navigation_registry import register
            register(
                label="ToDo",
                url_name="todo:list",         # Name, wie in todo.urls
                permission="todo.view_task",  # Permission nötig
            )
        except ImportError:
            # risks App ist nicht installiert → nichts machen
            pass

Verhalten

  • Ist die App nicht installiert → kein Menüpunkt
  • Ist sie installiert, aber User hat keine entsprechende Permission → kein Menüpunkt
  • Ist sie installiert und hat User die Permission → Menüpunkt erscheint automatisch

5. Base-Template-Vererbung

  • Läuft die neue App allein (Standalone/Demo) → sie liefert ein eigenes base.html.
  • Wenn sie im risks Projekt eingebunden ist → sie erbt das base.html aus risks.

Dies funktioniert über die Reihenfolge in INSTALLED_APPS oder über ein optionales Setting wie z. B. TODO_BASE_TEMPLATE, welches gesetzt werden kann, wenn risks das Base vorgibt.


6. Migration & Datenbankstruktur

Nach Einbindung:

python manage.py migrate

Stelle sicher, dass Migrationen der neuen App mitlaufen und keine Konflikte bestehen.


7. Permissions setzen

Die neue App definiert eigene Permissions via Meta in models oder explizit via Migration.

Beispiele:

  • todo.view_task → um den Menüpunkt und Zugriffe zu erlauben
  • Weitere wie todo.add_task, todo.change_task, todo.delete_task

Rechte können über Django Admin oder Migration vergeben werden.


8. Tests ausführen

Sicherheitshalber:

python manage.py test todo

So siehst du, ob die App sauber arbeitet und integriert ist.


9. Checkliste

  • Submodul hinzugefügt
  • App in INSTALLED_APPS eingetragen
  • URL-Einbindung in Root URLs umgesetzt
  • Neue App registriert sich in der Navigation via Registry
  • Migrationen ausgeführt
  • Permissions gesetzt
  • Navigation erscheint/dem User sichtbar, wo nötig