updated SQL scripts

This commit is contained in:
2018-11-16 12:42:41 +01:00
parent 1bb9b24bcf
commit 349310ccf9
11 changed files with 103 additions and 139 deletions

2
.gitignore vendored
View File

@ -4,3 +4,5 @@
.classpath .classpath
.project .project
**/nbproject/ **/nbproject/
*.dump
**/_dump

View File

@ -1,8 +0,0 @@
DROP TABLE config;
CREATE TABLE config (
config_key varchar(100),
config_value varchar(200),
CONSTRAINT config_pk PRIMARY KEY (config_key)
);
INSERT INTO config (config_key, config_value) VALUES ('account.maxFailedLogins', '5');

View File

@ -1,91 +0,0 @@
/**
* Author: joern.muehlencord
* Created: 06.09.2015
*/
DROP TABLE account_role;
DROP TABLE account_history;
DROP TABLE account;
DROP TABLE role_permission;
DROP TABLE application_role;
DROP TABLE application_permission;
CREATE TABLE application_role (
id UUID NOT NULL,
role_name varchar(80) NOT NULL,
role_description varchar(200) NOT NULL,
CONSTRAINT pk_application_role_pk PRIMARY KEY (id),
CONSTRAINT uidx_application_id UNIQUE (id)
);
CREATE TABLE account (
id UUID NOT NULL,
username varchar(32) NOT NULL,
emailaddress varchar(200) NOT NULL,
firstname varchar(100) NOT NULL,
lastname varchar(100) NOT NULL,
account_password char(200) NOT NULL,
last_login timestamp with time zone,
last_failed_login timestamp with time zone,
failure_count int NOT NULL DEFAULT 0,
status varchar(10) NOT NULL DEFAULT 'NEW', -- NEW, INIT, OK, BLOCKED,
password_reset_ongoing boolean NOT NULL DEFAULT false,
password_reset_valid_to timestamp with time zone,
password_reset_hash char(200),
created_on timestamp with time zone NOT NULL DEFAULT (now() at time zone 'utc'),
created_by varchar(32) NOT NULL,
last_updated_on timestamp with time zone NOT NULL DEFAULT (now() at time zone 'utc'),
last_updated_by varchar(32) NOT NULL,
CONSTRAINT pk_account PRIMARY KEY (id),
CONSTRAINT uidx_username UNIQUE (username)
);
CREATE TABLE account_history (
id UUID NOT NULL,
account_id UUID NOT NULL,
message varchar(200),
failure_count int NOT NULL DEFAULT 0,
status varchar(20) NOT NULL, -- constants needed, after action - new, init, active, blocked, inactive, marked for deletion
last_updated_on timestamp with time zone NOT NULL DEFAULT (now() at time zone 'utc'),
last_updated_by varchar(32) NOT NULL,
CONSTRAINT pk_account_history PRIMARY KEY (id),
CONSTRAINT fk_account_history_username_fk FOREIGN KEY (account_id) REFERENCES account (id)
);
CREATE TABLE account_role (
account UUID NOT NULL,
account_role UUID NOT NULL,
CONSTRAINT pk_account_role PRIMARY KEY (account, account_role),
CONSTRAINT fk_account_role_account FOREIGN KEY (account) REFERENCES account(id),
CONSTRAINT fk_account_role_role_name FOREIGN KEY (account_role) REFERENCES application_role(id)
);
CREATE TABLE application_permission (
id UUID NOT NULL,
permission_name varchar(80) NOT NULL,
permission_description varchar(200) NOT NULL,
CONSTRAINT pk_application_permission PRIMARY KEY (id),
CONSTRAINT uidx_application_permission_name UNIQUE (permission_name)
);
CREATE TABLE role_permission (
application_role UUID NOT NULL,
role_permission UUID NOT NULL,
CONSTRAINT pk_role_permission_role_permission_name PRIMARY KEY (application_role, role_permission),
CONSTRAINT fk_role_permission_application_role FOREIGN KEY (application_role) REFERENCES application_role(id),
CONSTRAINT fk_role_permission_role_permission FOREIGN KEY (role_permission) REFERENCES application_permission(id)
);
INSERT INTO application_permission (id, permission_name, permission_description) values ('dfd0f8f1-4a51-4fdc-9a1c-a942bee9b649', 'test:view', 'Display test view');
INSERT INTO application_role (id, role_name, role_description) values ('5cd0aca0-5466-483d-8f3e-c369f8061131','Admin', 'Admin role');
INSERT INTO application_role (id, role_name, role_description) values ('da30060e-fd23-4016-a506-4e12e9322148', 'User', 'Standard user role');
-- INSERT INTO role_permission (role_name, permission_name) values ('Admin','test:view');
INSERT INTO account (id, username, emailaddress, firstname, lastname, account_password, created_by, last_updated_by) values('ab5c8337-6872-4aea-a9b9-78ea63706b8f','admin', 'joern@muehlencord.de', 'Joern', 'Muehlencord','$shiro1$SHA-256$500000$4bHPNH9k539UjdFLgm/HOA==$T/n8skgoGSOtNw/c9ScDlXCiGrx2cZF0Esrvf6WPq6g=', 'admin','admin'); --admin/secret
INSERT INTO account_role (account, account_role) values ('ab5c8337-6872-4aea-a9b9-78ea63706b8f', '5cd0aca0-5466-483d-8f3e-c369f8061131');
--select uuid_generate_v4();

View File

@ -1,21 +0,0 @@
DROP TABLE mail_template;
CREATE TABLE mail_template (
template_name varchar(40) NOT NULL,
template_value text NOT NULL,
CONSTRAINT mail_template_pk PRIMARY KEY (template_name)
);
INSERT INTO mail_template (template_name, template_value) VALUES('password_reset_html',
'<#ftl strip_whitespace = true>
<!DOCTYPE html>
<html>
<body>
Dear ${account.firstname},<br>
<br>
you requested to reset your password at ${parameter.url}. Please open the following URL to proceed.<br>
<a href="${parameter.resetUrl}">${parameter.resetUrl}</a><br>
<br>
</body>
</html>');

View File

@ -11,19 +11,20 @@
-- -- DROP DATABASE IF EXISTS account_test; -- -- DROP DATABASE IF EXISTS account_test;
-- CREATE DATABASE account_test -- CREATE DATABASE account_test
-- ENCODING = 'UTF8' -- ENCODING = 'UTF8'
-- LC_COLLATE = 'German_Germany.1252' -- LC_COLLATE = 'C'
-- LC_CTYPE = 'German_Germany.1252'; -- LC_CTYPE = 'C';
-- -- ddl-end -- -- -- ddl-end --
-- --
-- object: public.config | type: TABLE -- -- object: public.config | type: TABLE --
-- DROP TABLE IF EXISTS public.config CASCADE; -- DROP TABLE IF EXISTS public.config CASCADE;
CREATE TABLE public.config( CREATE TABLE public.config(
application uuid NOT NULL,
config_key varchar(100) NOT NULL, config_key varchar(100) NOT NULL,
config_key_account uuid NOT NULL,
config_key_group varchar(200), config_key_group varchar(200),
config_key_account uuid,
config_value varchar(200), config_value varchar(200),
CONSTRAINT config_pk PRIMARY KEY (config_key) CONSTRAINT config_pk PRIMARY KEY (application,config_key,config_key_account)
); );
-- ddl-end -- -- ddl-end --
@ -32,9 +33,11 @@ CREATE TABLE public.config(
-- DROP TABLE IF EXISTS public.application_role CASCADE; -- DROP TABLE IF EXISTS public.application_role CASCADE;
CREATE TABLE public.application_role( CREATE TABLE public.application_role(
id uuid NOT NULL, id uuid NOT NULL,
application uuid NOT NULL,
role_name character varying(80) NOT NULL, role_name character varying(80) NOT NULL,
role_description character varying(200) NOT NULL, role_description character varying(200) NOT NULL,
CONSTRAINT pk_application_role_pk PRIMARY KEY (id) CONSTRAINT application_role_pk PRIMARY KEY (id),
CONSTRAINT application_role_name_uidx UNIQUE (application,role_name)
); );
-- ddl-end -- -- ddl-end --
@ -47,14 +50,7 @@ CREATE TABLE public.account(
emailaddress character varying(200) NOT NULL, emailaddress character varying(200) NOT NULL,
firstname character varying(100) NOT NULL, firstname character varying(100) NOT NULL,
lastname character varying(100) NOT NULL, lastname character varying(100) NOT NULL,
account_password character(200) NOT NULL,
last_login timestamp with time zone,
last_failed_login timestamp with time zone,
failure_count integer NOT NULL DEFAULT 0,
status character varying(10) NOT NULL DEFAULT 'NEW', status character varying(10) NOT NULL DEFAULT 'NEW',
password_reset_ongoing boolean NOT NULL DEFAULT false,
password_reset_valid_to timestamp with time zone,
password_reset_hash character(200),
created_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()), created_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()),
created_by character varying(32) NOT NULL, created_by character varying(32) NOT NULL,
last_updated_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()), last_updated_on timestamp with time zone NOT NULL DEFAULT timezone('utc'::text, now()),
@ -94,10 +90,11 @@ CREATE TABLE public.account_role(
-- DROP TABLE IF EXISTS public.application_permission CASCADE; -- DROP TABLE IF EXISTS public.application_permission CASCADE;
CREATE TABLE public.application_permission( CREATE TABLE public.application_permission(
id uuid NOT NULL, id uuid NOT NULL,
application uuid NOT NULL,
permission_name character varying(80) NOT NULL, permission_name character varying(80) NOT NULL,
permission_description character varying(200) NOT NULL, permission_description character varying(200) NOT NULL,
CONSTRAINT pk_application_permission PRIMARY KEY (id), CONSTRAINT pk_application_permission PRIMARY KEY (id),
CONSTRAINT uidx_application_permission_name UNIQUE (permission_name) CONSTRAINT application_permission_name_uidx UNIQUE (application,permission_name)
); );
-- ddl-end -- -- ddl-end --
@ -122,6 +119,44 @@ CREATE TABLE public.mail_template(
); );
-- ddl-end -- -- ddl-end --
-- object: public.application | type: TABLE --
-- DROP TABLE IF EXISTS public.application CASCADE;
CREATE TABLE public.application(
id uuid NOT NULL,
application_name varchar(200) NOT NULL,
CONSTRAINT application_pk PRIMARY KEY (id)
);
-- ddl-end --
-- -- object: uuid-ossp | type: EXTENSION --
-- -- DROP EXTENSION IF EXISTS uuid-ossp CASCADE;
-- CREATE EXTENSION uuid-ossp
-- WITH SCHEMA public;
-- -- ddl-end --
--
-- object: public.account_login | type: TABLE --
-- DROP TABLE IF EXISTS public.account_login CASCADE;
CREATE TABLE public.account_login(
id uuid NOT NULL DEFAULT uuid_generate_v4(),
account uuid NOT NULL,
account_password varchar(200) NOT NULL,
last_login timestamptz,
last_failed_login timestamptz,
failure_count integer NOT NULL DEFAULT 0,
password_reset_ongoing boolean NOT NULL DEFAULT false,
password_reset_valid_to timestamptz,
password_reset_hash varchar(200),
created_on timestamptz NOT NULL DEFAULT timezone('utc'::text, now()),
created_by varchar(32) NOT NULL,
last_updated_on timestamptz NOT NULL DEFAULT timezone('utc'::text, now()),
last_updated_by varchar(32) NOT NULL,
CONSTRAINT account_login_pk PRIMARY KEY (id),
CONSTRAINT account_login_uidx UNIQUE (account)
);
-- ddl-end --
-- object: config_key_account_fk | type: CONSTRAINT -- -- object: config_key_account_fk | type: CONSTRAINT --
-- ALTER TABLE public.config DROP CONSTRAINT IF EXISTS config_key_account_fk CASCADE; -- ALTER TABLE public.config DROP CONSTRAINT IF EXISTS config_key_account_fk CASCADE;
ALTER TABLE public.config ADD CONSTRAINT config_key_account_fk FOREIGN KEY (config_key_account) ALTER TABLE public.config ADD CONSTRAINT config_key_account_fk FOREIGN KEY (config_key_account)
@ -129,6 +164,20 @@ REFERENCES public.account (id) MATCH FULL
ON DELETE NO ACTION ON UPDATE NO ACTION; ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end -- -- ddl-end --
-- object: config_application_fk | type: CONSTRAINT --
-- ALTER TABLE public.config DROP CONSTRAINT IF EXISTS config_application_fk CASCADE;
ALTER TABLE public.config ADD CONSTRAINT config_application_fk FOREIGN KEY (application)
REFERENCES public.application (id) MATCH FULL
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end --
-- object: application_role_app_fk | type: CONSTRAINT --
-- ALTER TABLE public.application_role DROP CONSTRAINT IF EXISTS application_role_app_fk CASCADE;
ALTER TABLE public.application_role ADD CONSTRAINT application_role_app_fk FOREIGN KEY (application)
REFERENCES public.application (id) MATCH FULL
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end --
-- object: fk_account_history_username_fk | type: CONSTRAINT -- -- object: fk_account_history_username_fk | type: CONSTRAINT --
-- ALTER TABLE public.account_history DROP CONSTRAINT IF EXISTS fk_account_history_username_fk CASCADE; -- ALTER TABLE public.account_history DROP CONSTRAINT IF EXISTS fk_account_history_username_fk CASCADE;
ALTER TABLE public.account_history ADD CONSTRAINT fk_account_history_username_fk FOREIGN KEY (account_id) ALTER TABLE public.account_history ADD CONSTRAINT fk_account_history_username_fk FOREIGN KEY (account_id)
@ -150,6 +199,13 @@ REFERENCES public.application_role (id) MATCH SIMPLE
ON DELETE NO ACTION ON UPDATE NO ACTION; ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end -- -- ddl-end --
-- object: application_permission_app_fk | type: CONSTRAINT --
-- ALTER TABLE public.application_permission DROP CONSTRAINT IF EXISTS application_permission_app_fk CASCADE;
ALTER TABLE public.application_permission ADD CONSTRAINT application_permission_app_fk FOREIGN KEY (application)
REFERENCES public.application (id) MATCH FULL
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end --
-- object: fk_role_permission_application_role | type: CONSTRAINT -- -- object: fk_role_permission_application_role | type: CONSTRAINT --
-- ALTER TABLE public.role_permission DROP CONSTRAINT IF EXISTS fk_role_permission_application_role CASCADE; -- ALTER TABLE public.role_permission DROP CONSTRAINT IF EXISTS fk_role_permission_application_role CASCADE;
ALTER TABLE public.role_permission ADD CONSTRAINT fk_role_permission_application_role FOREIGN KEY (application_role) ALTER TABLE public.role_permission ADD CONSTRAINT fk_role_permission_application_role FOREIGN KEY (application_role)
@ -164,4 +220,11 @@ REFERENCES public.application_permission (id) MATCH SIMPLE
ON DELETE NO ACTION ON UPDATE NO ACTION; ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end -- -- ddl-end --
-- object: account_login_fk | type: CONSTRAINT --
-- ALTER TABLE public.account_login DROP CONSTRAINT IF EXISTS account_login_fk CASCADE;
ALTER TABLE public.account_login ADD CONSTRAINT account_login_fk FOREIGN KEY (account)
REFERENCES public.account (id) MATCH FULL
ON DELETE NO ACTION ON UPDATE NO ACTION;
-- ddl-end --

View File

@ -9,9 +9,6 @@ DELETE FROM application;
INSERT INTO application (id, application_name) values ('143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'Account UI'); INSERT INTO application (id, application_name) values ('143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'Account UI');
-- permissions not used in Account UI
-- INSERT INTO application_permission (id, permission_name, permission_description) values ('dfd0f8f1-4a51-4fdc-9a1c-a942bee9b649', 'test:view', 'Display test view');
-- add roles to Account UI application -- add roles to Account UI application
INSERT INTO application_role (id, application, role_name, role_description) values ('5cd0aca0-5466-483d-8f3e-c369f8061131','143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'Admin', 'Admin role'); INSERT INTO application_role (id, application, role_name, role_description) values ('5cd0aca0-5466-483d-8f3e-c369f8061131','143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'Admin', 'Admin role');
INSERT INTO application_role (id, application, role_name, role_description) values ('da30060e-fd23-4016-a506-4e12e9322148','143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'User', 'Standard user role'); INSERT INTO application_role (id, application, role_name, role_description) values ('da30060e-fd23-4016-a506-4e12e9322148','143a2bd3-7e0b-4162-a76e-3031331c7dfe', 'User', 'Standard user role');

View File

@ -0,0 +1,4 @@
echo off
SET BACKUPFOLDER=%~dp0
"C:\Program Files\PostgreSQL\10\bin\pg_dump.exe" -U jomu -n public --column-inserts --attribute-inserts --no-owner --no-privileges --no-acl account_test > %BACKUPFOLDER%\account_test.dump
pause;

View File

@ -1,2 +0,0 @@
\i 01_accounts.sql
\i 02_templates.sql

View File

@ -0,0 +1,10 @@
DROP TABLE IF EXISTS config CASCADE;
DROP TABLE IF EXISTS account_role CASCADE;
DROP TABLE IF EXISTS account_login CASCADE;
DROP TABLE IF EXISTS account CASCADE;
DROP TABLE IF EXISTS role_permission CASCADE;
DROP TABLE IF EXISTS application_role CASCADE;
DROP TABLE IF EXISTS application_permission CASCADE;
DROP TABLE IF EXISTS application CASCADE;
DROP TABLE IF EXISTS account_history CASCADE;
DROP TABLE IF EXISTS mail_template CASCADE;

View File

@ -0,0 +1,5 @@
@ECHO OFF
SET BACKUPFOLDER=%~dp0
"C:\Program Files\PostgreSQL\10\bin\psql.exe" -U jomu --set ON_ERROR_STOP=on account < %BACKUPFOLDER%\drop_all_tables.sql
"C:\Program Files\PostgreSQL\10\bin\psql.exe" -U jomu --set ON_ERROR_STOP=on account < %BACKUPFOLDER%\restore.dump
pause;

View File

@ -0,0 +1,5 @@
@ECHO OFF
SET BACKUPFOLDER=%~dp0
"C:\Program Files\PostgreSQL\10\bin\psql.exe" -U jomu --set ON_ERROR_STOP=on account_test < %BACKUPFOLDER%\drop_all_tables.sql
"C:\Program Files\PostgreSQL\10\bin\psql.exe" -U jomu --set ON_ERROR_STOP=on account_test < %BACKUPFOLDER%\restore.dump
pause;