wip
This commit is contained in:
parent
d5c613f6e4
commit
c7ad365846
4 changed files with 7 additions and 28 deletions
|
@ -19,7 +19,7 @@ setup = '''
|
||||||
CONSTRAINT "fk_domain"
|
CONSTRAINT "fk_domain"
|
||||||
FOREIGN KEY("domain_id")
|
FOREIGN KEY("domain_id")
|
||||||
REFERENCES domains("id"),
|
REFERENCES domains("id"),
|
||||||
"password" varchar(255) NOT NULL,
|
"password" varchar(255) NULL,
|
||||||
"redirect" varchar(255) DEFAULT NULL
|
"redirect" varchar(255) DEFAULT NULL
|
||||||
);
|
);
|
||||||
CREATE UNIQUE INDEX ON users ("name", "domain_id") WHERE "redirect" IS NULL;
|
CREATE UNIQUE INDEX ON users ("name", "domain_id") WHERE "redirect" IS NULL;
|
||||||
|
@ -36,8 +36,12 @@ actions['initialize_mailserver_db'] = {
|
||||||
|
|
||||||
# TEST
|
# TEST
|
||||||
'''
|
'''
|
||||||
|
DROP TABLE users; DROP TABLE domains;
|
||||||
|
|
||||||
INSERT INTO domains (id, name)
|
INSERT INTO domains (id, name)
|
||||||
VALUES (1, 'mails2.sublimity.de');
|
VALUES (1, 'mails2.sublimity.de');
|
||||||
INSERT INTO users (id, name, domain_id, password)
|
INSERT INTO users (id, name, domain_id, password)
|
||||||
VALUES (1, 'ckn', 1, MD5('test123'));
|
VALUES (1, 'ckn', 1, MD5('test123'));
|
||||||
|
INSERT INTO users (id, name, domain_id, redirect)
|
||||||
|
VALUES (1, 'weg', 1, 'irgendweo@gmail.com');
|
||||||
'''
|
'''
|
||||||
|
|
|
@ -2,4 +2,4 @@ hosts = ${host}
|
||||||
dbname = ${name}
|
dbname = ${name}
|
||||||
user = ${user}
|
user = ${user}
|
||||||
password = ${password}
|
password = ${password}
|
||||||
query = SELECT redirect FROM users LEFT JOIN domains ON users.domain_id = domains.id WHERE users.name = SPLIT_PART('%s', '@', 1) AND domains.name = SPLIT_PART('%s', '@', 2)
|
query = SELECT redirect FROM users LEFT JOIN domains ON users.domain_id = domains.id WHERE redirect IS NOT NULL AND users.name = SPLIT_PART('%s', '@', 1) AND domains.name = SPLIT_PART('%s', '@', 2)
|
||||||
|
|
|
@ -2,4 +2,4 @@ hosts = ${host}
|
||||||
dbname = ${name}
|
dbname = ${name}
|
||||||
user = ${user}
|
user = ${user}
|
||||||
password = ${password}
|
password = ${password}
|
||||||
query = SELECT CONCAT(users.name, '@', domains.name) AS email FROM users LEFT JOIN domains ON users.domain_id = domains.id WHERE users.name = SPLIT_PART('%s', '@', 1) AND domains.name = SPLIT_PART('%s', '@', 2)
|
query = SELECT CONCAT(users.name, '@', domains.name) AS email FROM users LEFT JOIN domains ON users.domain_id = domains.id WHERE redirect IS NULL AND users.name = SPLIT_PART('%s', '@', 1) AND domains.name = SPLIT_PART('%s', '@', 2)
|
||||||
|
|
|
@ -1,25 +0,0 @@
|
||||||
DROP TABLE users; DROP TABLE domains;
|
|
||||||
|
|
||||||
CREATE TABLE domains (
|
|
||||||
"id" BIGSERIAL PRIMARY KEY,
|
|
||||||
"name" varchar(255) UNIQUE NOT NULL
|
|
||||||
);
|
|
||||||
CREATE INDEX ON domains ("name");
|
|
||||||
|
|
||||||
CREATE TABLE users (
|
|
||||||
"id" BIGSERIAL PRIMARY KEY,
|
|
||||||
"name" varchar(255) NOT NULL,
|
|
||||||
"domain_id" BIGSERIAL NOT NULL,
|
|
||||||
CONSTRAINT "fk_domain"
|
|
||||||
FOREIGN KEY("domain_id")
|
|
||||||
REFERENCES domains("id"),
|
|
||||||
"password" varchar(255) NOT NULL,
|
|
||||||
"redirect" varchar(255) DEFAULT NULL
|
|
||||||
);
|
|
||||||
CREATE UNIQUE INDEX ON users ("name", "domain_id") WHERE "redirect" IS NULL;
|
|
||||||
|
|
||||||
|
|
||||||
INSERT INTO domains (id, name)
|
|
||||||
VALUES (1, 'mails2.sublimity.de');
|
|
||||||
INSERT INTO users (id, name, domain_id, password)
|
|
||||||
VALUES (1, 'ckn', 1, MD5('test123'));
|
|
Loading…
Reference in a new issue