liquid_feedback_core

annotate update/core-update.v4.0.0-v4.0.1.sql @ 580:78f6833f5f19

Further work on role accounts (role_verification, real_member_id)
author jbe
date Sun Mar 04 17:59:11 2018 +0100 (2018-03-04)
parents f6b84db4dd0c
children 1cb6710fc429
rev   line source
jbe@574 1 BEGIN;
jbe@574 2
jbe@574 3 CREATE OR REPLACE VIEW "liquid_feedback_version" AS
jbe@579 4 SELECT * FROM (VALUES ('4.0.1-dev', 4, 0, -1))
jbe@574 5 AS "subquery"("string", "major", "minor", "revision");
jbe@574 6
jbe@578 7 ALTER TABLE "member" ADD COLUMN "role" BOOLEAN NOT NULL DEFAULT FALSE;
jbe@578 8
jbe@578 9 CREATE TABLE "agent" (
jbe@578 10 PRIMARY KEY ("controlled_id", "controller_id"),
jbe@578 11 "controlled_id" INT4 REFERENCES "member" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
jbe@578 12 "controller_id" INT4 REFERENCES "member" ("id") ON DELETE CASCADE ON UPDATE CASCADE,
jbe@578 13 CONSTRAINT "controlled_id_and_controller_id_differ" CHECK (
jbe@578 14 "controlled_id" != "controller_id" ) );
jbe@578 15 CREATE INDEX "agent_controller_id_idx" ON "agent" ("controller_id");
jbe@578 16
jbe@578 17 COMMENT ON TABLE "agent" IS 'Privileges for role accounts';
jbe@578 18
jbe@580 19 ALTER TABLE "session" ADD COLUMN "real_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE;
jbe@580 20
jbe@580 21 COMMENT ON COLUMN "session"."member_id" IS 'Reference to member, who is logged in, or role account in use';
jbe@580 22 COMMENT ON COLUMN "session"."real_member_id" IS 'Reference to member, who is really logged in (real person rather than role account)';
jbe@580 23
jbe@580 24 CREATE TABLE "role_verification" (
jbe@580 25 "id" SERIAL8 PRIMARY KEY,
jbe@580 26 "requested" TIMESTAMPTZ,
jbe@580 27 "request_origin" JSONB,
jbe@580 28 "request_data" JSONB,
jbe@580 29 "requesting_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 30 "requesting_real_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 31 "verifying_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 32 "verified_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 33 "verified" TIMESTAMPTZ,
jbe@580 34 "verification_data" JSONB,
jbe@580 35 "denied" TIMESTAMPTZ,
jbe@580 36 "comment" TEXT,
jbe@580 37 CONSTRAINT "verified_and_denied_conflict" CHECK (
jbe@580 38 "verified" ISNULL OR "denied" ISNULL ) );
jbe@580 39 CREATE INDEX "role_verification_requested_idx" ON "role_verification" ("requested");
jbe@580 40 CREATE INDEX "role_verification_open_request_idx" ON "role_verification" ("requested") WHERE "verified" ISNULL AND "denied" ISNULL;
jbe@580 41 CREATE INDEX "role_verification_requesting_member_id_idx" ON "role_verification" ("requesting_member_id");
jbe@580 42 CREATE INDEX "role_verification_verified_member_id_idx" ON "role_verification" ("verified_member_id");
jbe@580 43 CREATE INDEX "role_verification_verified_idx" ON "role_verification" ("verified");
jbe@580 44 CREATE INDEX "role_verification_denied_idx" ON "role_verification" ("denied");
jbe@580 45
jbe@580 46 COMMENT ON TABLE "role_verification" IS 'Request to verify a role account (see table "verification" for documentation of columns not documented for this table)';
jbe@580 47
jbe@580 48 COMMENT ON COLUMN "role_verification"."requesting_member_id" IS 'Member role account to verify';
jbe@580 49 COMMENT ON COLUMN "role_verification"."requesting_real_member_id" IS 'Member account of real person who requested verification';
jbe@580 50
jbe@579 51 ALTER TABLE "ignored_area" DROP CONSTRAINT "ignored_area_member_id_fkey";
jbe@579 52 ALTER TABLE "ignored_area" ADD FOREIGN KEY ("member_id") REFERENCES "member" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
jbe@579 53
jbe@574 54 CREATE OR REPLACE VIEW "expired_token" AS
jbe@574 55 SELECT * FROM "token" WHERE now() > "expiry" AND NOT (
jbe@574 56 "token_type" = 'authorization' AND "used" AND EXISTS (
jbe@574 57 SELECT NULL FROM "token" AS "other"
jbe@574 58 WHERE "other"."authorization_token_id" = "token"."id" ) );
jbe@574 59
jbe@575 60 ALTER TABLE "system_application" RENAME COLUMN "discovery_baseurl" TO "base_url";
jbe@575 61 ALTER TABLE "system_application" ADD COLUMN "manifest_url" TEXT;
jbe@575 62
jbe@576 63 COMMENT ON COLUMN "system_application"."base_url" IS 'Base URL for users';
jbe@576 64 COMMENT ON COLUMN "system_application"."manifest_url" IS 'URL referring to a manifest that can be used for application (type/version) discovery';
jbe@575 65
jbe@574 66 COMMIT;

Impressum / About Us