mirror of
https://github.com/simplex-chat/simplex-chat.git
synced 2026-10-23 06:22:43 +00:00
core, ui: per-server roles for self-hosted servers (#7254)
* core, ui: plan per-server roles for self-hosted servers * core: add per-server roles field to UserServer * core: add nullable role columns to protocol_servers * core: persist per-server roles * core: validate server coverage using per-server roles * test: cover per-server roles resolution and coverage * multiplatform: per-server role toggles for self-hosted servers * ios: per-server role toggles for self-hosted servers * core: per-server role overrides with per-role defaults * test: cover three-state per-server role resolution * fix: derive Eq for ServerRolesOverride * multiplatform: three-state role dropdowns on saved servers * ios: three-state role pickers on saved servers * test: per-server roles independent across two servers * test: enable names role in name-resolution tests * style: trim comments in per-server roles code * chore: rename server_roles migration to 20260716 (last) * core: per-server roles override operator roles, inherit when unset * multiplatform: per-server role default inherits from operator * ios: per-server role default inherits from operator * refactor(servers): tidy per-server roles per review - dedup no-operator default into ServerRoles.noOperatorDefault (Kotlin/Swift) - iOS: move roles-section control flow to the call site via a named gate, and parse the server address once instead of up to three times - Kotlin: collapse redundant derivedState; revert defaultOn->default rename for cross-platform parity - drop unused Hashable conformance on Swift ServerRoles - add agentServerCfgs test for names inheritance from an operator - remove no-op enableNamesRole calls from dormant DirectoryTests - fix ChatClient import ordering * chore(migration): date server_roles migration 20260720 * only show roles when server is enabled, move section above QR code --------- Co-authored-by: Evgeny Poberezkin <evgeny@poberezkin.com>
This commit is contained in:
1 parent
966c9f7947
commit
2ea5940e81
19 files changed
+834
-54
No files matched your search
@@ -0,0 +1,23 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE QuasiQuotes #-}
|
||||
|
||||
module Simplex.Chat.Store.Postgres.Migrations.M20260720_server_roles where
|
||||
|
||||
import Data.Text (Text)
|
||||
import Text.RawString.QQ (r)
|
||||
|
||||
m20260720_server_roles :: Text
|
||||
m20260720_server_roles =
|
||||
[r|
|
||||
ALTER TABLE protocol_servers ADD COLUMN role_storage SMALLINT;
|
||||
ALTER TABLE protocol_servers ADD COLUMN role_proxy SMALLINT;
|
||||
ALTER TABLE protocol_servers ADD COLUMN role_names SMALLINT;
|
||||
|]
|
||||
|
||||
down_m20260720_server_roles :: Text
|
||||
down_m20260720_server_roles =
|
||||
[r|
|
||||
ALTER TABLE protocol_servers DROP COLUMN role_storage;
|
||||
ALTER TABLE protocol_servers DROP COLUMN role_proxy;
|
||||
ALTER TABLE protocol_servers DROP COLUMN role_names;
|
||||
|]
|
||||
@@ -1187,7 +1187,10 @@ CREATE TABLE test_chat_schema.protocol_servers (
|
||||
user_id bigint NOT NULL,
|
||||
created_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
updated_at timestamp with time zone DEFAULT now() NOT NULL,
|
||||
protocol text DEFAULT 'smp'::text NOT NULL
|
||||
protocol text DEFAULT 'smp'::text NOT NULL,
|
||||
role_storage smallint,
|
||||
role_proxy smallint,
|
||||
role_names smallint
|
||||
);
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user