From 5d41d0533f9a61ba45e15a1e9c2aafe9a75efc69 Mon Sep 17 00:00:00 2001 From: Nigel Kukard <nkukard@lbsd.net> Date: Fri, 27 Feb 2009 07:26:44 +0000 Subject: [PATCH] * Fixed up database schema --- database/core.tsql | 188 +++------------------------------------------ 1 file changed, 9 insertions(+), 179 deletions(-) diff --git a/database/core.tsql b/database/core.tsql index 74b00de5..31dc6140 100644 --- a/database/core.tsql +++ b/database/core.tsql @@ -9,42 +9,27 @@ CREATE TABLE @PREFIX@users ( Description TEXT, - Disabled SMALLINT NOT NULL DEFAULT '0' + Disabled SMALLINT NOT NULL DEFAULT '0', UNIQUE (Username) ) @CREATE_TABLE_SUFFIX@; CREATE INDEX @PREFIX@users_idx1 ON @PREFIX@users (Username); -/* User check items */ -CREATE TABLE @PREFIX@user_check_items ( +/* User attributes */ +CREATE TABLE @PREFIX@user_attributes ( ID @SERIAL_TYPE@, Name VARCHAR(255) NOT NULL, - Op VARCHAR(3) NOT NULL, + Operator VARCHAR(3) NOT NULL, Value VARCHAR(255), - Disabled SMALLINT NOT NULL DEFAULT '0' - - UNIQUE (Name) -) @CREATE_TABLE_SUFFIX@; - - -/* User reply items */ -CREATE TABLE @PREFIX@user_reply_items ( - ID @SERIAL_TYPE@, - - Name VARCHAR(255) NOT NULL, - Op VARCHAR(3) NOT NULL, - Value VARCHAR(255), - - Disabled SMALLINT NOT NULL DEFAULT '0' + Disabled SMALLINT NOT NULL DEFAULT '0', UNIQUE (Name) ) @CREATE_TABLE_SUFFIX@; - /* Groups */ CREATE TABLE @PREFIX@groups ( ID @SERIAL_TYPE@, @@ -59,38 +44,23 @@ CREATE TABLE @PREFIX@groups ( UNIQUE (Name) ) @CREATE_TABLE_SUFFIX@; -CREATE INDEX @PREFIX@groups_idx1 ON @PREFIX@users (Name); +CREATE INDEX @PREFIX@groups_idx1 ON @PREFIX@groups (Name); -/* Group check items */ +/* Group attributes */ CREATE TABLE @PREFIX@group_check_items ( ID @SERIAL_TYPE@, Name VARCHAR(255) NOT NULL, - Op VARCHAR(3) NOT NULL, + Operator VARCHAR(3) NOT NULL, Value VARCHAR(255), - Disabled SMALLINT NOT NULL DEFAULT '0' - - UNIQUE (Name) -) @CREATE_TABLE_SUFFIX@; - - -/* Group reply items */ -CREATE TABLE @PREFIX@group_reply_items ( - ID @SERIAL_TYPE@, - - Name VARCHAR(255) NOT NULL, - Op VARCHAR(3) NOT NULL, - Value VARCHAR(255), - - Disabled SMALLINT NOT NULL DEFAULT '0' + Disabled SMALLINT NOT NULL DEFAULT '0', UNIQUE (Name) ) @CREATE_TABLE_SUFFIX@; - /* User to group mapping */ CREATE TABLE @PREFIX@users_to_groups ( ID @SERIAL_TYPE@, @@ -111,143 +81,3 @@ CREATE INDEX @PREFIX@users_to_groups_idx1 ON @PREFIX@users_to_groups (UserID,Gro - - - - - - - - - - - - - - - - -/* Member list for policies */ -CREATE TABLE @PREFIX@policy_members ( - ID @SERIAL_TYPE@, - - PolicyID @SERIAL_REF_TYPE@, - - /* - Format of key: - NULL = any - a.b.c.d/e = IP address with optional /e - @domain = domain specification, - %xyz = xyz group, - abc@domain = abc user specification - - all options support negation using !<key> - */ - Source TEXT, - Destination TEXT, - - Comment VARCHAR(1024), - - Disabled SMALLINT NOT NULL DEFAULT '0', - - FOREIGN KEY (PolicyID) REFERENCES @PREFIX@policies(ID) -) @CREATE_TABLE_SUFFIX@; - - -/* Default System Policy */ -INSERT INTO @PREFIX@policy_members (PolicyID,Source,Destination) VALUES - (1,NULL,NULL); -/* Default Outbound System Policy */ -INSERT INTO @PREFIX@policy_members (PolicyID,Source,Destination) VALUES - (2,'%internal_ips,%internal_domains','!%internal_domains'); -/* Default Inbound System Policy */ -INSERT INTO @PREFIX@policy_members (PolicyID,Source,Destination) VALUES - (3,'!%internal_ips,!%internal_domains','%internal_domains'); -/* Default Internal System Policy */ -INSERT INTO @PREFIX@policy_members (PolicyID,Source,Destination) VALUES - (4,'%internal_ips,%internal_domains','%internal_domains'); -/* Test Policy */ -INSERT INTO @PREFIX@policy_members (PolicyID,Source,Destination) VALUES - (5,'@example.net',NULL); - - - -/* Groups usable in ACL */ -CREATE TABLE @PREFIX@policy_groups ( - ID @SERIAL_TYPE@, - - Name VARCHAR(255) NOT NULL, - - - Disabled SMALLINT NOT NULL DEFAULT '0', - - Comment VARCHAR(1024), - - - UNIQUE (Name) -) @CREATE_TABLE_SUFFIX@; - -INSERT INTO @PREFIX@policy_groups (Name) VALUES ('internal_ips'); -INSERT INTO @PREFIX@policy_groups (Name) VALUES ('internal_domains'); - - - -/* Group members */ -CREATE TABLE @PREFIX@policy_group_members ( - ID @SERIAL_TYPE@, - - PolicyGroupID @SERIAL_REF_TYPE@, - - /* Format of member: a.b.c.d/e = ip, @domain = domain, %xyz = xyz group, abc@domain = abc user */ - Member VARCHAR(255) NOT NULL, - - - Disabled SMALLINT NOT NULL DEFAULT '0', - Comment VARCHAR(1024), - - - FOREIGN KEY (PolicyGroupID) REFERENCES @PREFIX@policy_groups(ID) -) @CREATE_TABLE_SUFFIX@; - -INSERT INTO @PREFIX@policy_group_members (PolicyGroupID,Member) VALUES (1,'10.0.0.0/8'); -INSERT INTO @PREFIX@policy_group_members (PolicyGroupID,Member) VALUES (2,'@example.org'); -INSERT INTO @PREFIX@policy_group_members (PolicyGroupID,Member) VALUES (2,'@example.com'); - - - -/* Message session tracking */ -CREATE TABLE @PREFIX@session_tracking ( - Instance VARCHAR(255), - QueueID VARCHAR(255), - - Timestamp BIGINT NOT NULL, - - ClientAddress VARCHAR(64), - ClientName VARCHAR(255), - ClientReverseName VARCHAR(255), - - Protocol VARCHAR(255), - - EncryptionProtocol VARCHAR(255), - EncryptionCipher VARCHAR(255), - EncryptionKeySize VARCHAR(255), - - SASLMethod VARCHAR(255), - SASLSender VARCHAR(255), - SASLUsername VARCHAR(255), - - Helo VARCHAR(255), - - Sender VARCHAR(255), - - Size @BIG_INTEGER@, - - RecipientData TEXT, /* Policy state information */ - - UNIQUE (Instance) -) @CREATE_TABLE_SUFFIX@; -CREATE INDEX @PREFIX@session_tracking_idx1 ON @PREFIX@session_tracking (QueueID,ClientAddress,Sender); -CREATE INDEX @PREFIX@session_tracking_idx2 ON @PREFIX@session_tracking (Timestamp); - - - -- GitLab