This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
BEGIN;
|
||||
|
||||
ALTER TABLE user_account
|
||||
ADD COLUMN account_kind varchar(24) NOT NULL DEFAULT 'customer'
|
||||
CHECK (account_kind IN ('customer','operator'));
|
||||
|
||||
UPDATE user_account
|
||||
SET account_kind='operator'
|
||||
WHERE platform_role <> 'customer';
|
||||
|
||||
ALTER TABLE user_account
|
||||
ADD CONSTRAINT user_account_kind_role_check CHECK (
|
||||
(account_kind='customer' AND platform_role='customer') OR
|
||||
(account_kind='operator' AND platform_role IN ('ops_viewer','ops_operator','ops_approver','ops_admin'))
|
||||
);
|
||||
|
||||
CREATE INDEX user_account_operator_identity_idx
|
||||
ON user_account(oidc_issuer,oidc_subject,tenant_id)
|
||||
WHERE account_kind='operator' AND status='active';
|
||||
|
||||
COMMENT ON COLUMN user_account.account_kind IS
|
||||
'Hard boundary between household customer identities and dedicated maintenance operator identities.';
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user