Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5715651fb7 |
No files matched your search
@@ -1,4 +1,4 @@
|
||||
# TeamVis — Self-Hosting-Bundle (v0.59.1)
|
||||
# TeamVis — Self-Hosting-Bundle (v0.60.0)
|
||||
|
||||
Dieses Bundle enthält alles zum **Betreiben** von TeamVis auf eigener
|
||||
Infrastruktur — **keinen** App-Quellcode. Die App selbst kommt als fertiges
|
||||
@@ -36,4 +36,4 @@ Vollständige Schritt-für-Schritt-Anleitung (von der nackten VM bis live):
|
||||
| `supabase/migrations/` | Datenbank-Schema (DDL) |
|
||||
| `docs/` | Anleitungen |
|
||||
|
||||
Stand: TeamVis 0.59.1.
|
||||
Stand: TeamVis 0.60.0.
|
||||
+1
-1
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "teamvis-selfhost",
|
||||
"version": "0.59.1",
|
||||
"version": "0.60.0",
|
||||
"private": true,
|
||||
"description": "Self-Hosting-Bundle für TeamVis (Installer + Migrationen, ohne App-Quellcode).",
|
||||
"type": "module",
|
||||
|
||||
+4
-4
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"version": "0.59.1",
|
||||
"released": "2026-10-22",
|
||||
"security": false,
|
||||
"summary": "Schrift durchgehend Funnel Sans, auch in serverseitig erzeugten Bildern. Keine Migration, keine neuen Variablen."
|
||||
"version": "0.60.0",
|
||||
"released": "2026-10-29",
|
||||
"security": true,
|
||||
"summary": "Konto löschen aus der App (Apple 5.1.1(v)) und Rechte-Härtung M22. SQL-first: Migrationen 0073 und 0074 vor dem Image-Update einspielen."
|
||||
}
|
||||
@@ -0,0 +1,52 @@
|
||||
-- Konto löschen aus der App (Apple Guideline 5.1.1(v))
|
||||
-- ====================================================================
|
||||
-- Bisher schickte die App nur einen Antrag an die Verwaltung. Apple
|
||||
-- verlangt, dass sich das Konto in der App selbst löschen lässt. Ablauf
|
||||
-- ab jetzt:
|
||||
--
|
||||
-- 1. sofort: App-Zugang weg (Tokens, Login-Codes, Push), Karte
|
||||
-- deaktiviert und öffentlich nicht mehr erreichbar — auch nicht als
|
||||
-- „nicht mehr im Unternehmen"-Seite
|
||||
-- 2. nach `account_deletion_days` (Default 30): Datensatz samt Foto
|
||||
-- endgültig gelöscht, die Person bekommt eine Bestätigung
|
||||
--
|
||||
-- Die Frist dazwischen erlaubt der Verwaltung, versehentliche Anträge
|
||||
-- zurückzunehmen und Kontakte/Termine der Karte zu übernehmen (sie hängen
|
||||
-- per ON DELETE CASCADE an der Karte).
|
||||
|
||||
alter table public.employees
|
||||
add column if not exists deletion_requested_at timestamptz;
|
||||
|
||||
comment on column public.employees.deletion_requested_at is
|
||||
'Zeitpunkt, zu dem die Person ihr Konto in der App gelöscht hat. Gesetzt → Karte offline, endgültige Löschung nach site_settings.account_deletion_days.';
|
||||
|
||||
create index if not exists employees_deletion_requested_at_idx
|
||||
on public.employees (deletion_requested_at)
|
||||
where deletion_requested_at is not null;
|
||||
|
||||
alter table public.site_settings
|
||||
add column if not exists account_deletion_days integer not null default 30;
|
||||
|
||||
comment on column public.site_settings.account_deletion_days is
|
||||
'Tage zwischen Kontolöschung in der App und endgültiger Löschung des Kartendatensatzes.';
|
||||
|
||||
-- Mindestens ein Tag (sonst gibt es kein Zurücknehmen), höchstens ein
|
||||
-- Jahr (die App nennt die Frist der Person; darüber ist sie für einen
|
||||
-- Datensatz ohne weiteren Zweck nicht mehr begründbar).
|
||||
alter table public.site_settings
|
||||
drop constraint if exists site_settings_account_deletion_days_check;
|
||||
alter table public.site_settings
|
||||
add constraint site_settings_account_deletion_days_check
|
||||
check (account_deletion_days between 1 and 365);
|
||||
|
||||
-- Beide Spalten sind nur für den Server bestimmt. Spaltenrechte hat
|
||||
-- 0073 für anon/authenticated explizit vergeben — neue Spalten sind
|
||||
-- davon nicht erfasst; das revoke hält es auch auf Instanzen fest, auf
|
||||
-- denen noch ein Tabellenrecht liegt.
|
||||
do $$
|
||||
begin
|
||||
revoke select (deletion_requested_at) on public.employees from anon, authenticated;
|
||||
revoke select (account_deletion_days) on public.site_settings from anon, authenticated;
|
||||
exception when others then
|
||||
raise notice 'Spaltenrechte nicht angepasst (%).', sqlerrm;
|
||||
end $$;
|
||||
Reference in new issue
Block a user