Initial commit
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
DROP POLICY IF EXISTS tenant_api_token_policy ON tenant.api_tokens;
|
||||
DROP FUNCTION IF EXISTS shared.current_api_token_prefix();
|
||||
|
||||
ALTER TABLE tenant.api_tokens DISABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE tenant.api_tokens NO FORCE ROW LEVEL SECURITY;
|
||||
|
||||
ALTER TABLE tenant.api_tokens
|
||||
DROP COLUMN IF EXISTS capabilities;
|
||||
|
||||
DROP TYPE IF EXISTS shared.api_token_capability;
|
||||
|
||||
ALTER TABLE tenant.api_tokens RENAME TO webdav_tokens;
|
||||
ALTER INDEX tenant.api_tokens_token_prefix_key RENAME TO webdav_tokens_token_prefix_key;
|
||||
ALTER INDEX tenant.api_tokens_user_tenant_idx RENAME TO webdav_tokens_user_tenant_idx;
|
||||
|
||||
CREATE OR REPLACE FUNCTION shared.current_webdav_token_prefix() RETURNS text AS $$
|
||||
SELECT NULLIF(current_setting('papercrate.webdav_token_prefix', true), '')
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
ALTER TABLE tenant.webdav_tokens ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE tenant.webdav_tokens FORCE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE POLICY tenant_webdav_token_policy ON tenant.webdav_tokens
|
||||
USING (
|
||||
tenant_id = shared.current_tenant_id()
|
||||
OR (
|
||||
shared.current_webdav_token_prefix() IS NOT NULL
|
||||
AND token_prefix = shared.current_webdav_token_prefix()
|
||||
)
|
||||
)
|
||||
WITH CHECK (tenant_id = shared.current_tenant_id());
|
||||
@@ -0,0 +1,28 @@
|
||||
ALTER TABLE tenant.webdav_tokens RENAME TO api_tokens;
|
||||
ALTER INDEX tenant.webdav_tokens_token_prefix_key RENAME TO api_tokens_token_prefix_key;
|
||||
ALTER INDEX tenant.webdav_tokens_user_tenant_idx RENAME TO api_tokens_user_tenant_idx;
|
||||
|
||||
DROP POLICY IF EXISTS tenant_webdav_token_policy ON tenant.api_tokens;
|
||||
DROP FUNCTION IF EXISTS shared.current_webdav_token_prefix();
|
||||
|
||||
CREATE TYPE shared.api_token_capability AS ENUM ('api', 'webdav');
|
||||
|
||||
ALTER TABLE tenant.api_tokens
|
||||
ADD COLUMN capabilities shared.api_token_capability[] NOT NULL DEFAULT ARRAY['webdav']::shared.api_token_capability[];
|
||||
|
||||
ALTER TABLE tenant.api_tokens ENABLE ROW LEVEL SECURITY;
|
||||
ALTER TABLE tenant.api_tokens FORCE ROW LEVEL SECURITY;
|
||||
|
||||
CREATE OR REPLACE FUNCTION shared.current_api_token_prefix() RETURNS text AS $$
|
||||
SELECT NULLIF(current_setting('papercrate.api_token_prefix', true), '')
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE POLICY tenant_api_token_policy ON tenant.api_tokens
|
||||
USING (
|
||||
tenant_id = shared.current_tenant_id()
|
||||
OR (
|
||||
shared.current_api_token_prefix() IS NOT NULL
|
||||
AND token_prefix = shared.current_api_token_prefix()
|
||||
)
|
||||
)
|
||||
WITH CHECK (tenant_id = shared.current_tenant_id());
|
||||
Reference in New Issue
Block a user