Add JWT auth with per-user data isolation and account settings.

Users can register, log in, and manage profile/password in a personal account page; server data is scoped by owner across contacts, maps, tags, and import.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-28 21:10:16 +03:00
co-authored by Cursor
parent 85b8b2e9b8
commit 4eb4c145b6
40 changed files with 2301 additions and 117 deletions
+1 -1
View File
@@ -4,6 +4,6 @@ from . import views
from .base import plugin_urlpatterns
urlpatterns = [
path('plugins/', views.plugin_manifest, name='plugin-manifest'),
path('plugins/', views.PluginManifestView.as_view(), name='plugin-manifest'),
*plugin_urlpatterns(),
]
+13 -14
View File
@@ -1,19 +1,18 @@
from django.urls import path
from rest_framework.decorators import api_view
from rest_framework.response import Response
from rest_framework.views import APIView
from core.drf_mixins import JwtAuthMixin
from plugins.base import get_enabled_plugins
@api_view(['GET'])
def plugin_manifest(request):
"""List enabled plugins and their metadata."""
return Response([
{
'id': p.id,
'version': p.version,
'min_core_version': p.min_core_version,
'permissions': p.permissions,
}
for p in get_enabled_plugins()
])
class PluginManifestView(JwtAuthMixin, APIView):
def get(self, request):
return Response([
{
'id': p.id,
'version': p.version,
'min_core_version': p.min_core_version,
'permissions': p.permissions,
}
for p in get_enabled_plugins()
])