Merge pull request #86 from begriffs/user-management
Route for adding a new user
This commit is contained in:
+1
-1
@@ -1,5 +1,5 @@
|
||||
name: dbapi
|
||||
version: 0.2.2.1
|
||||
version: 0.2.3.0
|
||||
synopsis: The database is your api
|
||||
license: MIT
|
||||
license-file: LICENSE
|
||||
|
||||
+28
-1
@@ -5,7 +5,7 @@ module Dbapi where
|
||||
|
||||
import Types (SqlRow, getRow)
|
||||
|
||||
import Control.Monad (join)
|
||||
import Control.Monad (join, mzero)
|
||||
import Control.Arrow ((***))
|
||||
import Control.Applicative
|
||||
import Options.Applicative hiding (columns)
|
||||
@@ -51,6 +51,19 @@ data AppConfig = AppConfig {
|
||||
, configSecure :: Bool
|
||||
}
|
||||
|
||||
data AuthUser = AuthUser {
|
||||
userId :: String
|
||||
, userPass :: String
|
||||
, userRole :: String
|
||||
}
|
||||
|
||||
instance JSON.FromJSON AuthUser where
|
||||
parseJSON (JSON.Object v) = AuthUser <$>
|
||||
v JSON..: "id" <*>
|
||||
v JSON..: "pass" <*>
|
||||
v JSON..: "role"
|
||||
parseJSON _ = mzero
|
||||
|
||||
jsonContentType :: (HeaderName, BS.ByteString)
|
||||
jsonContentType = (hContentType, "application/json")
|
||||
|
||||
@@ -76,6 +89,20 @@ app conn req respond =
|
||||
([], _) ->
|
||||
responseLBS status200 [jsonContentType] <$> printTables ver conn
|
||||
|
||||
(["dbapi", "users"], "POST") -> do
|
||||
body <- strictRequestBody req
|
||||
let parse = JSON.eitherDecode body
|
||||
|
||||
case parse of
|
||||
Left err -> return $ responseLBS status400 [jsonContentType] json
|
||||
where json = JSON.encode . JSON.object $ [("error", JSON.String $ "Failed to parse JSON payload. " <> cs err) ]
|
||||
Right u -> do
|
||||
addUser (cs $ userId u) (cs $ userPass u) (cs $ userRole u) conn
|
||||
return $ responseLBS status201
|
||||
[ jsonContentType
|
||||
, (hLocation, "/dbapi/users?id=eq." <> cs (userId u))
|
||||
] ""
|
||||
|
||||
([table], "OPTIONS") ->
|
||||
responseLBS status200 [jsonContentType, allOrigins] <$>
|
||||
printColumns ver (cs table) conn
|
||||
|
||||
+4
-4
@@ -170,10 +170,10 @@ insert schema table row conn = do
|
||||
|
||||
addUser :: BS.ByteString -> BS.ByteString -> BS.ByteString -> Connection -> IO ()
|
||||
addUser identity pass role conn = do
|
||||
hashed <- hashPasswordUsingPolicy fastBcryptHashingPolicy $ cs pass
|
||||
_ <- insert "dbapi" "auth" (SqlRow [
|
||||
("id", toSql identity), ("pass", toSql hashed), ("rolname", toSql role)
|
||||
]) conn
|
||||
Just hashed <- hashPasswordUsingPolicy fastBcryptHashingPolicy $ cs pass
|
||||
_ <- quickQuery conn
|
||||
"insert into dbapi.auth (id, pass, rolname) values (?, ?, ?)"
|
||||
$ map toSql [identity, hashed, role]
|
||||
return ()
|
||||
|
||||
signInRole :: BS.ByteString -> BS.ByteString -> Connection -> IO LoginAttempt
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE OverloadedStrings, QuasiQuotes #-}
|
||||
module Feature.AuthSpec where
|
||||
|
||||
-- {{{ Imports
|
||||
import Test.Hspec
|
||||
import Test.Hspec.Wai
|
||||
import Test.Hspec.Wai.JSON
|
||||
import Network.HTTP.Types
|
||||
|
||||
import SpecHelper
|
||||
@@ -15,10 +16,11 @@ spec = around appWithFixture $
|
||||
it "hides tables that anonymous does not own" $
|
||||
get "/authors_only" `shouldRespondWith` 400 -- TODO: should be 404
|
||||
it "indicates login failure" $ do
|
||||
let auth = authHeader "dbapi_test_author_a" "fakefake"
|
||||
let auth = authHeader "dbapi_test_author" "fakefake"
|
||||
request methodGet "/authors_only" [auth] ""
|
||||
`shouldRespondWith` 401
|
||||
-- it "allows users with permissions to see their tables" $ do
|
||||
-- let auth = authHeader "dbapi_test_author_a" ""
|
||||
-- request methodGet "/authors_only" [auth] ""
|
||||
-- `shouldRespondWith` 200
|
||||
it "allows users with permissions to see their tables" $ do
|
||||
_ <- post "/dbapi/users" [json| { "id":"jdoe", "pass": "1234", "role": "dbapi_test_author" } |]
|
||||
let auth = authHeader "jdoe" "1234"
|
||||
request methodGet "/authors_only" [auth] ""
|
||||
`shouldRespondWith` 200
|
||||
|
||||
Vendored
-2
@@ -15,5 +15,3 @@ select pg_temp.create_role_if_not_exists('dbapi_anonymous', 'with nologin');
|
||||
select pg_temp.create_role_if_not_exists('test_default_role', 'with nologin');
|
||||
|
||||
select pg_temp.create_role_if_not_exists('dbapi_test_author', 'with nologin');
|
||||
select pg_temp.create_role_if_not_exists('dbapi_test_author_a', 'with nologin in role dbapi_test_author');
|
||||
select pg_temp.create_role_if_not_exists('dbapi_test_author_b', 'with nologin in role dbapi_test_author');
|
||||
|
||||
Vendored
+211
-54
@@ -2,10 +2,9 @@
|
||||
-- PostgreSQL database dump
|
||||
--
|
||||
|
||||
-- Dumped from database version 9.3.4
|
||||
-- Dumped by pg_dump version 9.3.4
|
||||
-- Started on 2014-10-01 13:41:39 PDT
|
||||
-- Started on 2014-10-07 16:46:34 PDT
|
||||
-- Dumped from database version 9.3.5
|
||||
-- Dumped by pg_dump version 9.3.5
|
||||
-- Started on 2014-10-21 15:12:44 PDT
|
||||
|
||||
SET statement_timeout = 0;
|
||||
SET lock_timeout = 0;
|
||||
@@ -15,7 +14,7 @@ SET check_function_bodies = false;
|
||||
SET client_min_messages = warning;
|
||||
|
||||
--
|
||||
-- TOC entry 11 (class 2615 OID 280932)
|
||||
-- TOC entry 20 (class 2615 OID 337536)
|
||||
-- Name: 1; Type: SCHEMA; Schema: -; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -25,7 +24,7 @@ CREATE SCHEMA "1";
|
||||
ALTER SCHEMA "1" OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 8 (class 2615 OID 50928)
|
||||
-- TOC entry 19 (class 2615 OID 337537)
|
||||
-- Name: dbapi; Type: SCHEMA; Schema: -; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -35,7 +34,7 @@ CREATE SCHEMA dbapi;
|
||||
ALTER SCHEMA dbapi OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 9 (class 2615 OID 50929)
|
||||
-- TOC entry 16 (class 2615 OID 337538)
|
||||
-- Name: private; Type: SCHEMA; Schema: -; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -45,7 +44,7 @@ CREATE SCHEMA private;
|
||||
ALTER SCHEMA private OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 187 (class 3079 OID 12018)
|
||||
-- TOC entry 205 (class 3079 OID 12018)
|
||||
-- Name: plpgsql; Type: EXTENSION; Schema: -; Owner:
|
||||
--
|
||||
|
||||
@@ -53,29 +52,37 @@ CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2321 (class 0 OID 0)
|
||||
-- Dependencies: 205
|
||||
-- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner:
|
||||
--
|
||||
|
||||
COMMENT ON EXTENSION plpgsql IS 'PL/pgSQL procedural language';
|
||||
|
||||
|
||||
SET search_path = "1", pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 571 (class 1247 OID 309112)
|
||||
-- Name: enum_menagerie_type; Type: TYPE; Schema: 1; Owner: postgres
|
||||
-- TOC entry 553 (class 1247 OID 337540)
|
||||
-- Name: enum_menagerie_type; Type: TYPE; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
CREATE TYPE "1".enum_menagerie_type AS ENUM (
|
||||
'foo',
|
||||
'bar'
|
||||
CREATE TYPE enum_menagerie_type AS ENUM (
|
||||
'foo',
|
||||
'bar'
|
||||
);
|
||||
|
||||
|
||||
ALTER TYPE "1".enum_menagerie_type OWNER TO dbapi_test;
|
||||
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 218 (class 1255 OID 337545)
|
||||
-- Name: check_role_exists(); Type: FUNCTION; Schema: dbapi; Owner: dbapi_test
|
||||
--
|
||||
|
||||
CREATE FUNCTION dbapi.check_role_exists() RETURNS trigger
|
||||
CREATE FUNCTION check_role_exists() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
begin
|
||||
@@ -90,8 +97,12 @@ $$;
|
||||
|
||||
ALTER FUNCTION dbapi.check_role_exists() OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 219 (class 1255 OID 337546)
|
||||
-- Name: update_owner(); Type: FUNCTION; Schema: dbapi; Owner: dbapi_test
|
||||
--
|
||||
|
||||
CREATE FUNCTION dbapi.update_owner() RETURNS trigger
|
||||
CREATE FUNCTION update_owner() RETURNS trigger
|
||||
LANGUAGE plpgsql
|
||||
AS $$
|
||||
BEGIN
|
||||
@@ -109,6 +120,9 @@ SET default_tablespace = '';
|
||||
|
||||
SET default_with_oids = false;
|
||||
|
||||
--
|
||||
-- TOC entry 191 (class 1259 OID 337547)
|
||||
-- Name: authors_only; Type: TABLE; Schema: 1; Owner: dbapi_test_author; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE authors_only (
|
||||
@@ -119,7 +133,8 @@ CREATE TABLE authors_only (
|
||||
ALTER TABLE "1".authors_only OWNER TO dbapi_test_author;
|
||||
|
||||
--
|
||||
-- TOC entry 175 (class 1259 OID 280937)
|
||||
-- TOC entry 192 (class 1259 OID 337553)
|
||||
-- Name: auto_incrementing_pk; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
CREATE TABLE auto_incrementing_pk (
|
||||
@@ -133,6 +148,7 @@ CREATE TABLE auto_incrementing_pk (
|
||||
ALTER TABLE "1".auto_incrementing_pk OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 193 (class 1259 OID 337560)
|
||||
-- Name: auto_incrementing_pk_id_seq; Type: SEQUENCE; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -147,12 +163,16 @@ CREATE SEQUENCE auto_incrementing_pk_id_seq
|
||||
ALTER TABLE "1".auto_incrementing_pk_id_seq OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 2324 (class 0 OID 0)
|
||||
-- Dependencies: 193
|
||||
-- Name: auto_incrementing_pk_id_seq; Type: SEQUENCE OWNED BY; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
ALTER SEQUENCE auto_incrementing_pk_id_seq OWNED BY auto_incrementing_pk.id;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 194 (class 1259 OID 337562)
|
||||
-- Name: compound_pk; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -166,6 +186,7 @@ CREATE TABLE compound_pk (
|
||||
ALTER TABLE "1".compound_pk OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 195 (class 1259 OID 337565)
|
||||
-- Name: has_fk; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -179,7 +200,7 @@ CREATE TABLE has_fk (
|
||||
ALTER TABLE "1".has_fk OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 185 (class 1259 OID 50947)
|
||||
-- TOC entry 196 (class 1259 OID 337568)
|
||||
-- Name: has_fk_id_seq; Type: SEQUENCE; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -194,8 +215,8 @@ CREATE SEQUENCE has_fk_id_seq
|
||||
ALTER TABLE "1".has_fk_id_seq OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 2042 (class 0 OID 0)
|
||||
-- Dependencies: 185
|
||||
-- TOC entry 2327 (class 0 OID 0)
|
||||
-- Dependencies: 196
|
||||
-- Name: has_fk_id_seq; Type: SEQUENCE OWNED BY; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -203,7 +224,7 @@ ALTER SEQUENCE has_fk_id_seq OWNED BY has_fk.id;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 186 (class 1259 OID 50949)
|
||||
-- TOC entry 197 (class 1259 OID 337570)
|
||||
-- Name: items; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -215,6 +236,7 @@ CREATE TABLE items (
|
||||
ALTER TABLE "1".items OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 198 (class 1259 OID 337573)
|
||||
-- Name: items_id_seq; Type: SEQUENCE; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -229,6 +251,8 @@ CREATE SEQUENCE items_id_seq
|
||||
ALTER TABLE "1".items_id_seq OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 2329 (class 0 OID 0)
|
||||
-- Dependencies: 198
|
||||
-- Name: items_id_seq; Type: SEQUENCE OWNED BY; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -236,6 +260,7 @@ ALTER SEQUENCE items_id_seq OWNED BY items.id;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 199 (class 1259 OID 337575)
|
||||
-- Name: menagerie; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -246,13 +271,14 @@ CREATE TABLE menagerie (
|
||||
"boolean" boolean NOT NULL,
|
||||
date date NOT NULL,
|
||||
money money NOT NULL,
|
||||
enum "1".enum_menagerie_type not null
|
||||
enum enum_menagerie_type NOT NULL
|
||||
);
|
||||
|
||||
|
||||
ALTER TABLE "1".menagerie OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 200 (class 1259 OID 337581)
|
||||
-- Name: no_pk; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -265,6 +291,7 @@ CREATE TABLE no_pk (
|
||||
ALTER TABLE "1".no_pk OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 201 (class 1259 OID 337587)
|
||||
-- Name: simple_pk; Type: TABLE; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -279,6 +306,7 @@ ALTER TABLE "1".simple_pk OWNER TO dbapi_test;
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 202 (class 1259 OID 337593)
|
||||
-- Name: auth; Type: TABLE; Schema: dbapi; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -294,6 +322,7 @@ ALTER TABLE dbapi.auth OWNER TO dbapi_test;
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 203 (class 1259 OID 337599)
|
||||
-- Name: articles; Type: TABLE; Schema: private; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -307,6 +336,7 @@ CREATE TABLE articles (
|
||||
ALTER TABLE private.articles OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 204 (class 1259 OID 337605)
|
||||
-- Name: articles_id_seq; Type: SEQUENCE; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -321,6 +351,8 @@ CREATE SEQUENCE articles_id_seq
|
||||
ALTER TABLE private.articles_id_seq OWNER TO dbapi_test;
|
||||
|
||||
--
|
||||
-- TOC entry 2336 (class 0 OID 0)
|
||||
-- Dependencies: 204
|
||||
-- Name: articles_id_seq; Type: SEQUENCE OWNED BY; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -330,6 +362,7 @@ ALTER SEQUENCE articles_id_seq OWNED BY articles.id;
|
||||
SET search_path = "1", pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2165 (class 2604 OID 337607)
|
||||
-- Name: id; Type: DEFAULT; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -337,7 +370,7 @@ ALTER TABLE ONLY auto_incrementing_pk ALTER COLUMN id SET DEFAULT nextval('auto_
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 1886 (class 2604 OID 50987)
|
||||
-- TOC entry 2166 (class 2604 OID 337608)
|
||||
-- Name: id; Type: DEFAULT; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -345,7 +378,7 @@ ALTER TABLE ONLY has_fk ALTER COLUMN id SET DEFAULT nextval('has_fk_id_seq'::reg
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 1887 (class 2604 OID 50988)
|
||||
-- TOC entry 2167 (class 2604 OID 337609)
|
||||
-- Name: id; Type: DEFAULT; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -355,6 +388,7 @@ ALTER TABLE ONLY items ALTER COLUMN id SET DEFAULT nextval('items_id_seq'::regcl
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2168 (class 2604 OID 337610)
|
||||
-- Name: id; Type: DEFAULT; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -364,49 +398,49 @@ ALTER TABLE ONLY articles ALTER COLUMN id SET DEFAULT nextval('articles_id_seq':
|
||||
SET search_path = "1", pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2279 (class 0 OID 281006)
|
||||
-- Dependencies: 186
|
||||
-- TOC entry 2298 (class 0 OID 337547)
|
||||
-- Dependencies: 191
|
||||
-- Data for Name: authors_only; Type: TABLE DATA; Schema: 1; Owner: dbapi_test_author
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2268 (class 0 OID 280937)
|
||||
-- Dependencies: 175
|
||||
-- TOC entry 2016 (class 0 OID 50932)
|
||||
-- Dependencies: 181
|
||||
-- TOC entry 2299 (class 0 OID 337553)
|
||||
-- Dependencies: 192
|
||||
-- Data for Name: auto_incrementing_pk; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
-- TOC entry 2270 (class 0 OID 280946)
|
||||
-- Dependencies: 177
|
||||
-- TOC entry 2051 (class 0 OID 0)
|
||||
-- Dependencies: 182
|
||||
|
||||
--
|
||||
-- TOC entry 2337 (class 0 OID 0)
|
||||
-- Dependencies: 193
|
||||
-- Name: auto_incrementing_pk_id_seq; Type: SEQUENCE SET; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('auto_incrementing_pk_id_seq', 50, true);
|
||||
SELECT pg_catalog.setval('auto_incrementing_pk_id_seq', 54, true);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2018 (class 0 OID 50941)
|
||||
-- Dependencies: 183
|
||||
-- TOC entry 2301 (class 0 OID 337562)
|
||||
-- Dependencies: 194
|
||||
-- Data for Name: compound_pk; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2271 (class 0 OID 280949)
|
||||
-- Dependencies: 178
|
||||
-- TOC entry 2302 (class 0 OID 337565)
|
||||
-- Dependencies: 195
|
||||
-- Data for Name: has_fk; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2052 (class 0 OID 0)
|
||||
-- Dependencies: 185
|
||||
-- TOC entry 2338 (class 0 OID 0)
|
||||
-- Dependencies: 196
|
||||
-- Name: has_fk_id_seq; Type: SEQUENCE SET; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -414,8 +448,8 @@ SELECT pg_catalog.setval('has_fk_id_seq', 1, false);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2021 (class 0 OID 50949)
|
||||
-- Dependencies: 186
|
||||
-- TOC entry 2304 (class 0 OID 337570)
|
||||
-- Dependencies: 197
|
||||
-- Data for Name: items; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -437,24 +471,34 @@ INSERT INTO items (id) VALUES (15);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2339 (class 0 OID 0)
|
||||
-- Dependencies: 198
|
||||
-- Name: items_id_seq; Type: SEQUENCE SET; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
SELECT pg_catalog.setval('items_id_seq', 15, true);
|
||||
SELECT pg_catalog.setval('items_id_seq', 19, true);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2306 (class 0 OID 337575)
|
||||
-- Dependencies: 199
|
||||
-- Data for Name: menagerie; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2307 (class 0 OID 337581)
|
||||
-- Dependencies: 200
|
||||
-- Data for Name: no_pk; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2308 (class 0 OID 337587)
|
||||
-- Dependencies: 201
|
||||
-- Data for Name: simple_pk; Type: TABLE DATA; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
@@ -462,6 +506,8 @@ SELECT pg_catalog.setval('items_id_seq', 15, true);
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2309 (class 0 OID 337593)
|
||||
-- Dependencies: 202
|
||||
-- Data for Name: auth; Type: TABLE DATA; Schema: dbapi; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -470,11 +516,16 @@ SET search_path = dbapi, pg_catalog;
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2310 (class 0 OID 337599)
|
||||
-- Dependencies: 203
|
||||
-- Data for Name: articles; Type: TABLE DATA; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2340 (class 0 OID 0)
|
||||
-- Dependencies: 204
|
||||
-- Name: articles_id_seq; Type: SEQUENCE SET; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -484,6 +535,7 @@ SELECT pg_catalog.setval('articles_id_seq', 1, false);
|
||||
SET search_path = "1", pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2170 (class 2606 OID 337612)
|
||||
-- Name: authors_only_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test_author; Tablespace:
|
||||
--
|
||||
|
||||
@@ -492,7 +544,8 @@ ALTER TABLE ONLY authors_only
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2144 (class 2606 OID 280990)
|
||||
-- TOC entry 2172 (class 2606 OID 337614)
|
||||
-- Name: auto_incrementing_pk_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY auto_incrementing_pk
|
||||
@@ -500,6 +553,7 @@ ALTER TABLE ONLY auto_incrementing_pk
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2174 (class 2606 OID 337616)
|
||||
-- Name: compound_pk_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -508,7 +562,8 @@ ALTER TABLE ONLY compound_pk
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 1900 (class 2606 OID 50995)
|
||||
-- TOC entry 2182 (class 2606 OID 337618)
|
||||
-- Name: contacts_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY simple_pk
|
||||
@@ -516,6 +571,8 @@ ALTER TABLE ONLY simple_pk
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2176 (class 2606 OID 337620)
|
||||
-- Name: has_fk_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY has_fk
|
||||
@@ -523,7 +580,8 @@ ALTER TABLE ONLY has_fk
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 1896 (class 2606 OID 50999)
|
||||
-- TOC entry 2178 (class 2606 OID 337622)
|
||||
-- Name: items_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY items
|
||||
@@ -531,6 +589,8 @@ ALTER TABLE ONLY items
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2180 (class 2606 OID 337624)
|
||||
-- Name: menagerie_pkey; Type: CONSTRAINT; Schema: 1; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY menagerie
|
||||
@@ -540,6 +600,7 @@ ALTER TABLE ONLY menagerie
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2184 (class 2606 OID 337626)
|
||||
-- Name: auth_pkey; Type: CONSTRAINT; Schema: dbapi; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
@@ -550,6 +611,8 @@ ALTER TABLE ONLY auth
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2186 (class 2606 OID 337628)
|
||||
-- Name: articles_pkey; Type: CONSTRAINT; Schema: private; Owner: dbapi_test; Tablespace:
|
||||
--
|
||||
|
||||
ALTER TABLE ONLY articles
|
||||
@@ -559,6 +622,7 @@ ALTER TABLE ONLY articles
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2189 (class 2620 OID 337630)
|
||||
-- Name: ensure_auth_role_exists; Type: TRIGGER; Schema: dbapi; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -568,6 +632,7 @@ CREATE CONSTRAINT TRIGGER ensure_auth_role_exists AFTER INSERT OR UPDATE ON auth
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2190 (class 2620 OID 337631)
|
||||
-- Name: articles_owner_track; Type: TRIGGER; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -577,7 +642,7 @@ CREATE TRIGGER articles_owner_track BEFORE INSERT OR UPDATE ON articles FOR EACH
|
||||
SET search_path = "1", pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 1905 (class 2606 OID 51009)
|
||||
-- TOC entry 2187 (class 2606 OID 337632)
|
||||
-- Name: has_fk_fk_fkey; Type: FK CONSTRAINT; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -586,7 +651,7 @@ ALTER TABLE ONLY has_fk
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 1906 (class 2606 OID 51015)
|
||||
-- TOC entry 2188 (class 2606 OID 337637)
|
||||
-- Name: has_fk_simple_fk_fkey; Type: FK CONSTRAINT; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
@@ -594,87 +659,179 @@ ALTER TABLE ONLY has_fk
|
||||
ADD CONSTRAINT has_fk_simple_fk_fkey FOREIGN KEY (simple_fk) REFERENCES simple_pk(k);
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2317 (class 0 OID 0)
|
||||
-- Dependencies: 20
|
||||
-- Name: 1; Type: ACL; Schema: -; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON SCHEMA "1" FROM PUBLIC;
|
||||
REVOKE ALL ON SCHEMA "1" FROM dbapi_test;
|
||||
GRANT ALL ON SCHEMA "1" TO dbapi_test;
|
||||
GRANT USAGE ON SCHEMA "1" TO dbapi_anonymous;
|
||||
GRANT USAGE ON SCHEMA "1" TO dbapi_test_author;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2036 (class 0 OID 0)
|
||||
-- Dependencies: 15
|
||||
-- TOC entry 2318 (class 0 OID 0)
|
||||
-- Dependencies: 19
|
||||
-- Name: dbapi; Type: ACL; Schema: -; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON SCHEMA dbapi FROM PUBLIC;
|
||||
REVOKE ALL ON SCHEMA dbapi FROM dbapi_test;
|
||||
GRANT ALL ON SCHEMA dbapi TO dbapi_test;
|
||||
GRANT USAGE ON SCHEMA dbapi TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2320 (class 0 OID 0)
|
||||
-- Dependencies: 21
|
||||
-- Name: public; Type: ACL; Schema: -; Owner: postgres
|
||||
--
|
||||
|
||||
REVOKE ALL ON SCHEMA public FROM PUBLIC;
|
||||
REVOKE ALL ON SCHEMA public FROM postgres;
|
||||
GRANT ALL ON SCHEMA public TO postgres;
|
||||
GRANT ALL ON SCHEMA public TO PUBLIC;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2322 (class 0 OID 0)
|
||||
-- Dependencies: 191
|
||||
-- Name: authors_only; Type: ACL; Schema: 1; Owner: dbapi_test_author
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE authors_only FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE authors_only FROM dbapi_test_author;
|
||||
GRANT ALL ON TABLE authors_only TO dbapi_test_author;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2290 (class 0 OID 0)
|
||||
-- Dependencies: 175
|
||||
-- TOC entry 2323 (class 0 OID 0)
|
||||
-- Dependencies: 192
|
||||
-- Name: auto_incrementing_pk; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE auto_incrementing_pk FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE auto_incrementing_pk FROM dbapi_test;
|
||||
GRANT ALL ON TABLE auto_incrementing_pk TO dbapi_test;
|
||||
GRANT ALL ON TABLE auto_incrementing_pk TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2325 (class 0 OID 0)
|
||||
-- Dependencies: 193
|
||||
-- Name: auto_incrementing_pk_id_seq; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON SEQUENCE auto_incrementing_pk_id_seq FROM PUBLIC;
|
||||
REVOKE ALL ON SEQUENCE auto_incrementing_pk_id_seq FROM dbapi_test;
|
||||
GRANT ALL ON SEQUENCE auto_incrementing_pk_id_seq TO dbapi_test;
|
||||
GRANT USAGE ON SEQUENCE auto_incrementing_pk_id_seq TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2326 (class 0 OID 0)
|
||||
-- Dependencies: 194
|
||||
-- Name: compound_pk; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE compound_pk FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE compound_pk FROM dbapi_test;
|
||||
GRANT ALL ON TABLE compound_pk TO dbapi_test;
|
||||
GRANT ALL ON TABLE compound_pk TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2328 (class 0 OID 0)
|
||||
-- Dependencies: 197
|
||||
-- Name: items; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE items FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE items FROM dbapi_test;
|
||||
GRANT ALL ON TABLE items TO dbapi_test;
|
||||
GRANT ALL ON TABLE items TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2330 (class 0 OID 0)
|
||||
-- Dependencies: 198
|
||||
-- Name: items_id_seq; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON SEQUENCE items_id_seq FROM PUBLIC;
|
||||
REVOKE ALL ON SEQUENCE items_id_seq FROM dbapi_test;
|
||||
GRANT ALL ON SEQUENCE items_id_seq TO dbapi_test;
|
||||
GRANT USAGE ON SEQUENCE items_id_seq TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2331 (class 0 OID 0)
|
||||
-- Dependencies: 199
|
||||
-- Name: menagerie; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE menagerie FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE menagerie FROM dbapi_test;
|
||||
GRANT ALL ON TABLE menagerie TO dbapi_test;
|
||||
GRANT ALL ON TABLE menagerie TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2332 (class 0 OID 0)
|
||||
-- Dependencies: 200
|
||||
-- Name: no_pk; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE no_pk FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE no_pk FROM dbapi_test;
|
||||
GRANT ALL ON TABLE no_pk TO dbapi_test;
|
||||
GRANT ALL ON TABLE no_pk TO dbapi_anonymous;
|
||||
|
||||
|
||||
--
|
||||
-- TOC entry 2333 (class 0 OID 0)
|
||||
-- Dependencies: 201
|
||||
-- Name: simple_pk; Type: ACL; Schema: 1; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE simple_pk FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE simple_pk FROM dbapi_test;
|
||||
GRANT ALL ON TABLE simple_pk TO dbapi_test;
|
||||
GRANT ALL ON TABLE simple_pk TO dbapi_anonymous;
|
||||
|
||||
|
||||
SET search_path = private, pg_catalog;
|
||||
SET search_path = dbapi, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2334 (class 0 OID 0)
|
||||
-- Dependencies: 202
|
||||
-- Name: auth; Type: ACL; Schema: dbapi; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE auth FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE auth FROM dbapi_test;
|
||||
GRANT ALL ON TABLE auth TO dbapi_test;
|
||||
GRANT INSERT ON TABLE auth TO dbapi_anonymous;
|
||||
|
||||
|
||||
SET search_path = private, pg_catalog;
|
||||
|
||||
--
|
||||
-- TOC entry 2335 (class 0 OID 0)
|
||||
-- Dependencies: 203
|
||||
-- Name: articles; Type: ACL; Schema: private; Owner: dbapi_test
|
||||
--
|
||||
|
||||
REVOKE ALL ON TABLE articles FROM PUBLIC;
|
||||
REVOKE ALL ON TABLE articles FROM dbapi_test;
|
||||
GRANT ALL ON TABLE articles TO dbapi_test;
|
||||
|
||||
|
||||
-- Completed on 2014-10-21 15:12:44 PDT
|
||||
|
||||
--
|
||||
-- PostgreSQL database dump complete
|
||||
--
|
||||
|
||||
|
||||
Reference in New Issue
Block a user