blob: 5fe7c82e70905c9146af6b4e0021493d1c518551 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
-- -*- mode: sql; sql-product: postgres -*-
-- Create a login role for ambassador
CREATE USER ambassador;
-- Use this if your deployment uses passwords rather than peer authentication:
-- ALTER ROLE mastodon_ambassador WITH PASSWORD 'something secret, hopefully';
--
-- Note that PostgreSQL supports setting “encrypted” (hashed) passwords,
-- which is a better option if the password must be stored in some configuration
-- management tool.
-- Now, create the view that ambassador actually uses
CREATE VIEW public_toots AS
SELECT *
FROM statuses
WHERE visibility = 0
;
-- Make sure the role doesn't have access to anything undesireable
REVOKE ALL FROM ambassador;
-- Let ambassador select from the view
GRANT SELECT ON public_toots TO ambassador;
|