liquid_feedback_core

annotate update/core-update.v4.0.0-v4.0.1.sql @ 581:1cb6710fc429

Introduced "accepted" flag for agents of role/member accounts
author jbe
date Sun Mar 04 18:10:07 2018 +0100 (2018-03-04)
parents 78f6833f5f19
children 225a0c047691
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@581 13 "accepted" BOOLEAN,
jbe@578 14 CONSTRAINT "controlled_id_and_controller_id_differ" CHECK (
jbe@578 15 "controlled_id" != "controller_id" ) );
jbe@578 16 CREATE INDEX "agent_controller_id_idx" ON "agent" ("controller_id");
jbe@578 17
jbe@578 18 COMMENT ON TABLE "agent" IS 'Privileges for role accounts';
jbe@578 19
jbe@581 20 COMMENT ON COLUMN "agent"."accepted" IS 'If "accepted" is NULL, then the member was invited to be an agent, but has not reacted yet. If it is TRUE, the member has accepted the invitation, if it is FALSE, the member has rejected the invitation.';
jbe@581 21
jbe@580 22 ALTER TABLE "session" ADD COLUMN "real_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE;
jbe@580 23
jbe@580 24 COMMENT ON COLUMN "session"."member_id" IS 'Reference to member, who is logged in, or role account in use';
jbe@580 25 COMMENT ON COLUMN "session"."real_member_id" IS 'Reference to member, who is really logged in (real person rather than role account)';
jbe@580 26
jbe@580 27 CREATE TABLE "role_verification" (
jbe@580 28 "id" SERIAL8 PRIMARY KEY,
jbe@580 29 "requested" TIMESTAMPTZ,
jbe@580 30 "request_origin" JSONB,
jbe@580 31 "request_data" JSONB,
jbe@580 32 "requesting_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 33 "requesting_real_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 34 "verifying_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 35 "verified_member_id" INT4 REFERENCES "member" ("id") ON DELETE RESTRICT ON UPDATE CASCADE,
jbe@580 36 "verified" TIMESTAMPTZ,
jbe@580 37 "verification_data" JSONB,
jbe@580 38 "denied" TIMESTAMPTZ,
jbe@580 39 "comment" TEXT,
jbe@580 40 CONSTRAINT "verified_and_denied_conflict" CHECK (
jbe@580 41 "verified" ISNULL OR "denied" ISNULL ) );
jbe@580 42 CREATE INDEX "role_verification_requested_idx" ON "role_verification" ("requested");
jbe@580 43 CREATE INDEX "role_verification_open_request_idx" ON "role_verification" ("requested") WHERE "verified" ISNULL AND "denied" ISNULL;
jbe@580 44 CREATE INDEX "role_verification_requesting_member_id_idx" ON "role_verification" ("requesting_member_id");
jbe@580 45 CREATE INDEX "role_verification_verified_member_id_idx" ON "role_verification" ("verified_member_id");
jbe@580 46 CREATE INDEX "role_verification_verified_idx" ON "role_verification" ("verified");
jbe@580 47 CREATE INDEX "role_verification_denied_idx" ON "role_verification" ("denied");
jbe@580 48
jbe@580 49 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 50
jbe@580 51 COMMENT ON COLUMN "role_verification"."requesting_member_id" IS 'Member role account to verify';
jbe@580 52 COMMENT ON COLUMN "role_verification"."requesting_real_member_id" IS 'Member account of real person who requested verification';
jbe@580 53
jbe@579 54 ALTER TABLE "ignored_area" DROP CONSTRAINT "ignored_area_member_id_fkey";
jbe@579 55 ALTER TABLE "ignored_area" ADD FOREIGN KEY ("member_id") REFERENCES "member" ("id") ON DELETE CASCADE ON UPDATE CASCADE;
jbe@579 56
jbe@574 57 CREATE OR REPLACE VIEW "expired_token" AS
jbe@574 58 SELECT * FROM "token" WHERE now() > "expiry" AND NOT (
jbe@574 59 "token_type" = 'authorization' AND "used" AND EXISTS (
jbe@574 60 SELECT NULL FROM "token" AS "other"
jbe@574 61 WHERE "other"."authorization_token_id" = "token"."id" ) );
jbe@574 62
jbe@575 63 ALTER TABLE "system_application" RENAME COLUMN "discovery_baseurl" TO "base_url";
jbe@575 64 ALTER TABLE "system_application" ADD COLUMN "manifest_url" TEXT;
jbe@575 65
jbe@576 66 COMMENT ON COLUMN "system_application"."base_url" IS 'Base URL for users';
jbe@576 67 COMMENT ON COLUMN "system_application"."manifest_url" IS 'URL referring to a manifest that can be used for application (type/version) discovery';
jbe@575 68
jbe@574 69 COMMIT;

Impressum / About Us