| rev | 
   line source | 
| 
jbe@233
 | 
     1 BEGIN;
 | 
| 
jbe@233
 | 
     2 
 | 
| 
jbe@233
 | 
     3 CREATE OR REPLACE VIEW "liquid_feedback_version" AS
 | 
| 
jbe@233
 | 
     4   SELECT * FROM (VALUES ('2.0.6', 2, 0, 6))
 | 
| 
jbe@233
 | 
     5   AS "subquery"("string", "major", "minor", "revision");
 | 
| 
jbe@233
 | 
     6 
 | 
| 
jbe@233
 | 
     7 -- add column "invite_code_expiry" to table "member":
 | 
| 
jbe@233
 | 
     8 ALTER TABLE "member" ADD COLUMN "invite_code_expiry" TIMESTAMPTZ;
 | 
| 
jbe@233
 | 
     9 COMMENT ON COLUMN "member"."invite_code_expiry" IS 'Expiry data/time for "invite_code"';
 | 
| 
jbe@233
 | 
    10 
 | 
| 
jbe@233
 | 
    11 -- write member history only for activated accounts:
 | 
| 
jbe@233
 | 
    12 CREATE OR REPLACE FUNCTION "write_member_history_trigger"()
 | 
| 
jbe@233
 | 
    13   RETURNS TRIGGER
 | 
| 
jbe@233
 | 
    14   LANGUAGE 'plpgsql' VOLATILE AS $$
 | 
| 
jbe@233
 | 
    15     BEGIN
 | 
| 
jbe@233
 | 
    16       IF
 | 
| 
jbe@233
 | 
    17         ( NEW."active" != OLD."active" OR
 | 
| 
jbe@233
 | 
    18           NEW."name"   != OLD."name" ) AND
 | 
| 
jbe@233
 | 
    19         OLD."activated" NOTNULL
 | 
| 
jbe@233
 | 
    20       THEN
 | 
| 
jbe@233
 | 
    21         INSERT INTO "member_history"
 | 
| 
jbe@233
 | 
    22           ("member_id", "active", "name")
 | 
| 
jbe@233
 | 
    23           VALUES (NEW."id", OLD."active", OLD."name");
 | 
| 
jbe@233
 | 
    24       END IF;
 | 
| 
jbe@233
 | 
    25       RETURN NULL;
 | 
| 
jbe@233
 | 
    26     END;
 | 
| 
jbe@233
 | 
    27   $$;
 | 
| 
jbe@233
 | 
    28 
 | 
| 
jbe@233
 | 
    29 -- set "draft_id" in "event" table on event 'initiative_revoked':
 | 
| 
jbe@233
 | 
    30 CREATE OR REPLACE FUNCTION "write_event_initiative_revoked_trigger"()
 | 
| 
jbe@233
 | 
    31   RETURNS TRIGGER
 | 
| 
jbe@233
 | 
    32   LANGUAGE 'plpgsql' VOLATILE AS $$
 | 
| 
jbe@233
 | 
    33     DECLARE
 | 
| 
jbe@233
 | 
    34       "issue_row"  "issue"%ROWTYPE;
 | 
| 
jbe@233
 | 
    35       "draft_id_v" "draft"."id"%TYPE;
 | 
| 
jbe@233
 | 
    36     BEGIN
 | 
| 
jbe@233
 | 
    37       IF OLD."revoked" ISNULL AND NEW."revoked" NOTNULL THEN
 | 
| 
jbe@233
 | 
    38         SELECT * INTO "issue_row" FROM "issue"
 | 
| 
jbe@233
 | 
    39           WHERE "id" = NEW."issue_id";
 | 
| 
jbe@233
 | 
    40         SELECT "id" INTO "draft_id_v" FROM "current_draft"
 | 
| 
jbe@233
 | 
    41           WHERE "initiative_id" = NEW."id";
 | 
| 
jbe@233
 | 
    42         INSERT INTO "event" (
 | 
| 
jbe@233
 | 
    43             "event", "member_id", "issue_id", "state", "initiative_id", "draft_id"
 | 
| 
jbe@233
 | 
    44           ) VALUES (
 | 
| 
jbe@233
 | 
    45             'initiative_revoked',
 | 
| 
jbe@233
 | 
    46             NEW."revoked_by_member_id",
 | 
| 
jbe@233
 | 
    47             NEW."issue_id",
 | 
| 
jbe@233
 | 
    48             "issue_row"."state",
 | 
| 
jbe@233
 | 
    49             NEW."id",
 | 
| 
jbe@233
 | 
    50             "draft_id_v");
 | 
| 
jbe@233
 | 
    51       END IF;
 | 
| 
jbe@233
 | 
    52       RETURN NULL;
 | 
| 
jbe@233
 | 
    53     END;
 | 
| 
jbe@233
 | 
    54   $$;
 | 
| 
jbe@233
 | 
    55 
 | 
| 
jbe@233
 | 
    56 -- delete column "invite_code_expiry" in function "delete_private_data":
 | 
| 
jbe@233
 | 
    57 CREATE OR REPLACE FUNCTION "delete_private_data"()
 | 
| 
jbe@233
 | 
    58   RETURNS VOID
 | 
| 
jbe@233
 | 
    59   LANGUAGE 'plpgsql' VOLATILE AS $$
 | 
| 
jbe@233
 | 
    60     BEGIN
 | 
| 
jbe@233
 | 
    61       DELETE FROM "member" WHERE "activated" ISNULL;
 | 
| 
jbe@233
 | 
    62       UPDATE "member" SET
 | 
| 
jbe@233
 | 
    63         "invite_code"                  = NULL,
 | 
| 
jbe@233
 | 
    64         "invite_code_expiry"           = NULL,
 | 
| 
jbe@233
 | 
    65         "admin_comment"                = NULL,
 | 
| 
jbe@233
 | 
    66         "last_login"                   = NULL,
 | 
| 
jbe@233
 | 
    67         "login"                        = NULL,
 | 
| 
jbe@233
 | 
    68         "password"                     = NULL,
 | 
| 
jbe@233
 | 
    69         "notify_email"                 = NULL,
 | 
| 
jbe@233
 | 
    70         "notify_email_unconfirmed"     = NULL,
 | 
| 
jbe@233
 | 
    71         "notify_email_secret"          = NULL,
 | 
| 
jbe@233
 | 
    72         "notify_email_secret_expiry"   = NULL,
 | 
| 
jbe@233
 | 
    73         "notify_email_lock_expiry"     = NULL,
 | 
| 
jbe@233
 | 
    74         "password_reset_secret"        = NULL,
 | 
| 
jbe@233
 | 
    75         "password_reset_secret_expiry" = NULL,
 | 
| 
jbe@233
 | 
    76         "organizational_unit"          = NULL,
 | 
| 
jbe@233
 | 
    77         "internal_posts"               = NULL,
 | 
| 
jbe@233
 | 
    78         "realname"                     = NULL,
 | 
| 
jbe@233
 | 
    79         "birthday"                     = NULL,
 | 
| 
jbe@233
 | 
    80         "address"                      = NULL,
 | 
| 
jbe@233
 | 
    81         "email"                        = NULL,
 | 
| 
jbe@233
 | 
    82         "xmpp_address"                 = NULL,
 | 
| 
jbe@233
 | 
    83         "website"                      = NULL,
 | 
| 
jbe@233
 | 
    84         "phone"                        = NULL,
 | 
| 
jbe@233
 | 
    85         "mobile_phone"                 = NULL,
 | 
| 
jbe@233
 | 
    86         "profession"                   = NULL,
 | 
| 
jbe@233
 | 
    87         "external_memberships"         = NULL,
 | 
| 
jbe@233
 | 
    88         "external_posts"               = NULL,
 | 
| 
jbe@233
 | 
    89         "statement"                    = NULL;
 | 
| 
jbe@233
 | 
    90       -- "text_search_data" is updated by triggers
 | 
| 
jbe@233
 | 
    91       DELETE FROM "setting";
 | 
| 
jbe@233
 | 
    92       DELETE FROM "setting_map";
 | 
| 
jbe@233
 | 
    93       DELETE FROM "member_relation_setting";
 | 
| 
jbe@233
 | 
    94       DELETE FROM "member_image";
 | 
| 
jbe@233
 | 
    95       DELETE FROM "contact";
 | 
| 
jbe@233
 | 
    96       DELETE FROM "ignored_member";
 | 
| 
jbe@233
 | 
    97       DELETE FROM "area_setting";
 | 
| 
jbe@233
 | 
    98       DELETE FROM "issue_setting";
 | 
| 
jbe@233
 | 
    99       DELETE FROM "ignored_initiative";
 | 
| 
jbe@233
 | 
   100       DELETE FROM "initiative_setting";
 | 
| 
jbe@233
 | 
   101       DELETE FROM "suggestion_setting";
 | 
| 
jbe@233
 | 
   102       DELETE FROM "non_voter";
 | 
| 
jbe@233
 | 
   103       DELETE FROM "direct_voter" USING "issue"
 | 
| 
jbe@233
 | 
   104         WHERE "direct_voter"."issue_id" = "issue"."id"
 | 
| 
jbe@233
 | 
   105         AND "issue"."closed" ISNULL;
 | 
| 
jbe@233
 | 
   106       RETURN;
 | 
| 
jbe@233
 | 
   107     END;
 | 
| 
jbe@233
 | 
   108   $$;
 | 
| 
jbe@233
 | 
   109 
 | 
| 
jbe@233
 | 
   110 COMMIT;
 |