包含:登录失败锁定、90天密码有效期、30分钟会话超时、 强制改密、登录审计日志、屏幕水印、企业背景图、 备案信息固定底部、favicon、登录页JS修复等全部改动
This commit is contained in:
+256
@@ -0,0 +1,256 @@
|
||||
--
|
||||
-- MRBS table creation script - for PostgreSQL 7.3 and above
|
||||
--
|
||||
-- Notes:
|
||||
-- (1) MySQL inserts the current date/time into any timestamp field which is not
|
||||
-- specified on insert. To get the same effect, use PostgreSQL default
|
||||
-- value current_timestamp.
|
||||
--
|
||||
-- (2) If you have decided to change the prefix of your tables from 'mrbs_'
|
||||
-- to something else using $db_tbl_prefix then you must edit each
|
||||
-- 'CREATE TABLE', 'create index', 'INSERT INTO' and 'REFERENCES' line below
|
||||
-- to replace 'mrbs_' with your new table prefix. A global replace of
|
||||
-- 'mrbs_' will be sufficient.
|
||||
--
|
||||
-- (3) If you add new (standard) fields then you should also change the global variable
|
||||
-- $standard_fields. Note that if you are just adding custom fields for
|
||||
-- a single site then this is not necessary.
|
||||
|
||||
|
||||
CREATE TABLE mrbs_area
|
||||
(
|
||||
-- smallints in mrbs_area are assumed to represent booleans
|
||||
id serial primary key,
|
||||
disabled smallint DEFAULT 0 NOT NULL,
|
||||
area_name varchar(30),
|
||||
sort_key varchar(30) DEFAULT '' NOT NULL,
|
||||
timezone varchar(50),
|
||||
area_admin_email text,
|
||||
resolution int,
|
||||
default_duration int,
|
||||
default_duration_all_day smallint DEFAULT 0 NOT NULL,
|
||||
morningstarts int,
|
||||
morningstarts_minutes int,
|
||||
eveningends int,
|
||||
eveningends_minutes int,
|
||||
private_enabled smallint,
|
||||
private_default smallint,
|
||||
private_mandatory smallint,
|
||||
private_override varchar(32),
|
||||
min_create_ahead_enabled smallint,
|
||||
min_create_ahead_secs int,
|
||||
max_create_ahead_enabled smallint,
|
||||
max_create_ahead_secs int,
|
||||
min_delete_ahead_enabled smallint,
|
||||
min_delete_ahead_secs int,
|
||||
max_delete_ahead_enabled smallint,
|
||||
max_delete_ahead_secs int,
|
||||
max_per_day_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_per_day int DEFAULT 0 NOT NULL,
|
||||
max_per_week_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_per_week int DEFAULT 0 NOT NULL,
|
||||
max_per_month_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_per_month int DEFAULT 0 NOT NULL,
|
||||
max_per_year_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_per_year int DEFAULT 0 NOT NULL,
|
||||
max_per_future_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_per_future int DEFAULT 0 NOT NULL,
|
||||
max_secs_per_day_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_secs_per_day int DEFAULT 0 NOT NULL,
|
||||
max_secs_per_week_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_secs_per_week int DEFAULT 0 NOT NULL,
|
||||
max_secs_per_month_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_secs_per_month int DEFAULT 0 NOT NULL,
|
||||
max_secs_per_year_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_secs_per_year int DEFAULT 0 NOT NULL,
|
||||
max_secs_per_future_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_secs_per_future int DEFAULT 0 NOT NULL,
|
||||
max_duration_enabled smallint DEFAULT 0 NOT NULL,
|
||||
max_duration_secs int DEFAULT 0 NOT NULL,
|
||||
max_duration_periods int DEFAULT 0 NOT NULL,
|
||||
custom_html text,
|
||||
approval_enabled smallint,
|
||||
reminders_enabled smallint,
|
||||
enable_periods smallint,
|
||||
periods text DEFAULT NULL,
|
||||
confirmation_enabled smallint,
|
||||
confirmed_default smallint,
|
||||
times_along_top smallint DEFAULT 0 NOT NULL,
|
||||
default_type char DEFAULT 'E' NOT NULL,
|
||||
|
||||
CONSTRAINT mrbs_uq_area_name UNIQUE (area_name)
|
||||
);
|
||||
|
||||
CREATE TABLE mrbs_room
|
||||
(
|
||||
id serial primary key,
|
||||
disabled smallint DEFAULT 0 NOT NULL,
|
||||
area_id int DEFAULT 0 NOT NULL
|
||||
REFERENCES mrbs_area(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT,
|
||||
room_name varchar(25) NOT NULL,
|
||||
sort_key varchar(25) NOT NULL,
|
||||
description varchar(60),
|
||||
capacity int DEFAULT 0 NOT NULL,
|
||||
room_admin_email text,
|
||||
invalid_types varchar(255) DEFAULT NULL,
|
||||
custom_html text,
|
||||
|
||||
CONSTRAINT mrbs_uq_room_name UNIQUE (area_id, room_name)
|
||||
);
|
||||
comment on column mrbs_room.invalid_types is 'JSON encoded';
|
||||
create index mrbs_idxSortKey on mrbs_room(sort_key);
|
||||
|
||||
CREATE TABLE mrbs_repeat
|
||||
(
|
||||
id serial primary key,
|
||||
start_time int DEFAULT 0 NOT NULL,
|
||||
end_time int DEFAULT 0 NOT NULL,
|
||||
rep_type int DEFAULT 0 NOT NULL,
|
||||
end_date int DEFAULT 0 NOT NULL,
|
||||
rep_opt varchar(32) DEFAULT '' NOT NULL,
|
||||
room_id int DEFAULT 1 NOT NULL
|
||||
REFERENCES mrbs_room(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT,
|
||||
timestamp timestamptz DEFAULT current_timestamp,
|
||||
create_by varchar(80) DEFAULT '' NOT NULL,
|
||||
modified_by varchar(80) DEFAULT '' NOT NULL,
|
||||
name varchar(80) DEFAULT '' NOT NULL,
|
||||
type char DEFAULT 'E' NOT NULL,
|
||||
description text,
|
||||
rep_interval smallint DEFAULT 1 NOT NULL,
|
||||
month_absolute smallint DEFAULT NULL,
|
||||
month_relative varchar(4) DEFAULT NULL,
|
||||
status smallint DEFAULT 0 NOT NULL,
|
||||
reminded int,
|
||||
info_time int,
|
||||
info_user varchar(80),
|
||||
info_text text,
|
||||
ical_uid varchar(255) DEFAULT '' NOT NULL,
|
||||
ical_sequence smallint DEFAULT 0 NOT NULL
|
||||
);
|
||||
comment on column mrbs_repeat.start_time is 'Unix timestamp';
|
||||
comment on column mrbs_repeat.end_time is 'Unix timestamp';
|
||||
comment on column mrbs_repeat.end_date is 'Unix timestamp';
|
||||
|
||||
CREATE TABLE mrbs_entry
|
||||
(
|
||||
id serial primary key,
|
||||
start_time int DEFAULT 0 NOT NULL,
|
||||
end_time int DEFAULT 0 NOT NULL,
|
||||
entry_type int DEFAULT 0 NOT NULL,
|
||||
repeat_id int DEFAULT NULL
|
||||
REFERENCES mrbs_repeat(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
room_id int DEFAULT 1 NOT NULL
|
||||
REFERENCES mrbs_room(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE RESTRICT,
|
||||
timestamp timestamptz DEFAULT current_timestamp,
|
||||
create_by varchar(80) DEFAULT '' NOT NULL,
|
||||
modified_by varchar(80) DEFAULT '' NOT NULL,
|
||||
name varchar(80) DEFAULT '' NOT NULL,
|
||||
type char DEFAULT 'E' NOT NULL,
|
||||
description text,
|
||||
status smallint DEFAULT 0 NOT NULL,
|
||||
reminded int,
|
||||
info_time int,
|
||||
info_user varchar(80),
|
||||
info_text text,
|
||||
ical_uid varchar(255) DEFAULT '' NOT NULL,
|
||||
ical_sequence smallint DEFAULT 0 NOT NULL,
|
||||
ical_recur_id varchar(16) DEFAULT NULL,
|
||||
allow_registration smallint DEFAULT 0 NOT NULL,
|
||||
registrant_limit int DEFAULT 0 NOT NULL,
|
||||
registrant_limit_enabled smallint DEFAULT 1 NOT NULL,
|
||||
registration_opens int DEFAULT 1209600 NOT NULL, -- 2 weeks
|
||||
registration_opens_enabled smallint DEFAULT 0 NOT NULL,
|
||||
registration_closes int DEFAULT 0 NOT NULL,
|
||||
registration_closes_enabled smallint DEFAULT 0 NOT NULL
|
||||
);
|
||||
comment on column mrbs_entry.start_time is 'Unix timestamp';
|
||||
comment on column mrbs_entry.end_time is 'Unix timestamp';
|
||||
comment on column mrbs_entry.registration_opens is 'Seconds before the start time';
|
||||
comment on column mrbs_entry.registration_closes is 'Seconds before the start time';
|
||||
create index mrbs_idxStartTime on mrbs_entry(start_time);
|
||||
create index mrbs_idxEndTime on mrbs_entry(end_time);
|
||||
create index mrbs_idxRoomStartEnd on mrbs_entry(room_id, start_time, end_time);
|
||||
|
||||
CREATE TABLE mrbs_participants
|
||||
(
|
||||
id serial primary key,
|
||||
entry_id int NOT NULL
|
||||
REFERENCES mrbs_entry(id)
|
||||
ON UPDATE CASCADE
|
||||
ON DELETE CASCADE,
|
||||
username varchar(191),
|
||||
create_by varchar(255),
|
||||
registered int,
|
||||
|
||||
CONSTRAINT mrbs_uq_entryid_username UNIQUE (entry_id, username)
|
||||
);
|
||||
|
||||
CREATE TABLE mrbs_variables
|
||||
(
|
||||
id serial primary key,
|
||||
variable_name varchar(80),
|
||||
variable_content text,
|
||||
|
||||
CONSTRAINT mrbs_uq_variable_name UNIQUE (variable_name)
|
||||
);
|
||||
|
||||
CREATE TABLE mrbs_zoneinfo
|
||||
(
|
||||
id serial primary key,
|
||||
timezone varchar(127) DEFAULT '' NOT NULL,
|
||||
outlook_compatible smallint NOT NULL DEFAULT 0,
|
||||
vtimezone text,
|
||||
last_updated int NOT NULL DEFAULT 0,
|
||||
|
||||
CONSTRAINT mrbs_uq_timezone UNIQUE (timezone, outlook_compatible)
|
||||
);
|
||||
|
||||
CREATE TABLE mrbs_sessions
|
||||
(
|
||||
id varchar(191) NOT NULL primary key,
|
||||
access int DEFAULT NULL,
|
||||
data text DEFAULT NULL
|
||||
);
|
||||
comment on column mrbs_sessions.access is 'Unix timestamp';
|
||||
create index mrbs_idxAccess on mrbs_sessions(access);
|
||||
|
||||
CREATE TABLE mrbs_users
|
||||
(
|
||||
id serial primary key,
|
||||
level smallint DEFAULT 0 NOT NULL, /* play safe and give no rights */
|
||||
name varchar(30),
|
||||
display_name varchar(191),
|
||||
password_hash varchar(255),
|
||||
email varchar(75),
|
||||
timestamp timestamptz DEFAULT current_timestamp,
|
||||
last_login int DEFAULT 0 NOT NULL,
|
||||
reset_key_hash varchar(255),
|
||||
reset_key_expiry int DEFAULT 0 NOT NULL,
|
||||
|
||||
CONSTRAINT mrbs_uq_name UNIQUE (name)
|
||||
);
|
||||
|
||||
CREATE OR REPLACE FUNCTION update_timestamp_column()
|
||||
RETURNS TRIGGER AS $$
|
||||
BEGIN
|
||||
NEW.timestamp = NOW();
|
||||
RETURN NEW;
|
||||
END;
|
||||
$$ language 'plpgsql';
|
||||
|
||||
CREATE TRIGGER update_mrbs_entry_timestamp BEFORE UPDATE ON mrbs_entry FOR EACH ROW EXECUTE PROCEDURE update_timestamp_column();
|
||||
CREATE TRIGGER update_mrbs_repeat_timestamp BEFORE UPDATE ON mrbs_repeat FOR EACH ROW EXECUTE PROCEDURE update_timestamp_column();
|
||||
CREATE TRIGGER update_mrbs_users_timestamp BEFORE UPDATE ON mrbs_users FOR EACH ROW EXECUTE PROCEDURE update_timestamp_column();
|
||||
|
||||
INSERT INTO mrbs_variables (variable_name, variable_content)
|
||||
VALUES ('db_version', '82');
|
||||
INSERT INTO mrbs_variables (variable_name, variable_content)
|
||||
VALUES ('local_db_version', '1');
|
||||
Reference in New Issue
Block a user