mirror of
http://172.20.10.11:3000/gitadmin/INSIGHT-MVP.git
synced 2026-06-25 00:16:41 +02:00
Implementiert pro-Entity Sichtbarkeitssteuerung für Companies, Contacts, Deals und Activities mit Rollen-basierter Zugriffskontrolle (ADMIN sieht alles, TEAM_LEAD mindestens Team-Sicht, READONLY nur Lesezugriff). - JWT Payload um tenantRole + department erweitert (Core + CRM) - Team-Members-Endpoint im Core Service (GET /users/team-members) - VisibilityModule mit Redis-Cache (CRM Service) - ReadonlyGuard als globaler Guard (CRM Service) - buildVisibilityFilter Utility für Prisma WHERE-Filterung - Admin-Einstellungsseite /admin/crm-settings (Frontend) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
21 lines
878 B
SQL
21 lines
878 B
SQL
-- Migration: 20260314_crm_visibility
|
|
-- Beschreibung: CRM Visibility Settings (Sichtbarkeitssteuerung OWN/TEAM/ALL)
|
|
|
|
-- CreateEnum
|
|
CREATE TYPE "app_crm"."VisibilityLevel" AS ENUM ('OWN', 'TEAM', 'ALL');
|
|
|
|
-- CreateTable
|
|
CREATE TABLE "app_crm"."crm_visibility_settings" (
|
|
"id" UUID NOT NULL DEFAULT gen_random_uuid(),
|
|
"tenant_id" UUID NOT NULL,
|
|
"entity" VARCHAR(50) NOT NULL,
|
|
"level" "app_crm"."VisibilityLevel" NOT NULL DEFAULT 'ALL',
|
|
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
"updated_at" TIMESTAMP(3) NOT NULL,
|
|
|
|
CONSTRAINT "crm_visibility_settings_pkey" PRIMARY KEY ("id")
|
|
);
|
|
|
|
-- CreateIndex
|
|
CREATE UNIQUE INDEX "crm_visibility_settings_tenant_id_entity_key" ON "app_crm"."crm_visibility_settings"("tenant_id", "entity");
|
|
CREATE INDEX "crm_visibility_settings_tenant_id_idx" ON "app_crm"."crm_visibility_settings"("tenant_id");
|