annotate update/core-update.v3.0.3-v3.0.4.sql @ 440:9055fd4de232
Added data structures to support externally managed accounts (e.g. LDAP)
 | author | 
 jbe | 
 | date | 
 Tue Jul 22 18:46:25 2014 +0200 (2014-07-22) | 
 | parents | 
  | 
 | children | 
 f5c78b0590c6  | 
 
 | rev | 
   line source | 
| 
jbe@440
 | 
     1 BEGIN;
 | 
| 
jbe@440
 | 
     2 
 | 
| 
jbe@440
 | 
     3 CREATE OR REPLACE VIEW "liquid_feedback_version" AS
 | 
| 
jbe@440
 | 
     4   SELECT * FROM (VALUES ('3.0.4', 3, 0, 4))
 | 
| 
jbe@440
 | 
     5   AS "subquery"("string", "major", "minor", "revision");
 | 
| 
jbe@440
 | 
     6 
 | 
| 
jbe@440
 | 
     7 ALTER TABLE "member" ADD COLUMN "authority"       TEXT;
 | 
| 
jbe@440
 | 
     8 ALTER TABLE "member" ADD COLUMN "authority_uid"   TEXT;
 | 
| 
jbe@440
 | 
     9 ALTER TABLE "member" ADD COLUMN "authority_login" TEXT;
 | 
| 
jbe@440
 | 
    10 
 | 
| 
jbe@440
 | 
    11 COMMENT ON COLUMN "member"."authority"       IS 'NULL if LiquidFeedback Core is authoritative for the member account; otherwise a string that indicates the source/authority of the external account (e.g. ''LDAP'' for an LDAP account)';
 | 
| 
jbe@440
 | 
    12 COMMENT ON COLUMN "member"."authority_uid"   IS 'Unique identifier (unique per "authority") that allows to identify an external account (e.g. even if the login name changes)';
 | 
| 
jbe@440
 | 
    13 COMMENT ON COLUMN "member"."authority_login" IS 'Login name for external accounts (field is not unique!)';
 | 
| 
jbe@440
 | 
    14 
 | 
| 
jbe@440
 | 
    15 ALTER TABLE "member" ADD CONSTRAINT "authority_requires_uid_and_vice_versa" 
 | 
| 
jbe@440
 | 
    16   CHECK ("authority" NOTNULL = "authority_uid" NOTNULL);
 | 
| 
jbe@440
 | 
    17 
 | 
| 
jbe@440
 | 
    18 ALTER TABLE "member" ADD CONSTRAINT "authority_uid_unique_per_authority"
 | 
| 
jbe@440
 | 
    19   UNIQUE ("authority", "authority_uid");
 | 
| 
jbe@440
 | 
    20 
 | 
| 
jbe@440
 | 
    21 ALTER TABLE "member" ADD CONSTRAINT "authority_login_requires_authority"
 | 
| 
jbe@440
 | 
    22   CHECK ("authority" NOTNULL OR "authority_login" ISNULL);
 | 
| 
jbe@440
 | 
    23 
 | 
| 
jbe@440
 | 
    24 CREATE INDEX "member_authority_login_idx" ON "member" ("authority_login");
 | 
| 
jbe@440
 | 
    25 
 | 
| 
jbe@440
 | 
    26 ALTER TABLE "session" ADD COLUMN "authority"       TEXT;
 | 
| 
jbe@440
 | 
    27 ALTER TABLE "session" ADD COLUMN "authority_uid"   TEXT; 
 | 
| 
jbe@440
 | 
    28 ALTER TABLE "session" ADD COLUMN "authority_login" TEXT;
 | 
| 
jbe@440
 | 
    29 
 | 
| 
jbe@440
 | 
    30 COMMENT ON COLUMN "session"."authority"         IS 'Temporary store for "member"."authority" during member account creation';
 | 
| 
jbe@440
 | 
    31 COMMENT ON COLUMN "session"."authority_uid"     IS 'Temporary store for "member"."authority_uid" during member account creation';
 | 
| 
jbe@440
 | 
    32 COMMENT ON COLUMN "session"."authority_login"   IS 'Temporary store for "member"."authority_login" during member account creation';
 | 
| 
jbe@440
 | 
    33 
 | 
| 
jbe@440
 | 
    34 COMMIT;
 |