Get Account
- add AccountController - add AccountEntity toAccountResponse in Mapping.kt - add AccountService - add AccountRepository - add AccountEntity
This commit is contained in:
35
sql/002-account.sql
Normal file
35
sql/002-account.sql
Normal file
@@ -0,0 +1,35 @@
|
||||
-- Table: public.accounts
|
||||
-- DROP TABLE IF EXISTS public.accounts;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.accounts
|
||||
(
|
||||
id UUID DEFAULT gen_uuid_v7(),
|
||||
created_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
updated_at timestamp with time zone NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
||||
enabled boolean NOT NULL DEFAULT true,
|
||||
username VARCHAR(50) UNIQUE NOT NULL,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
roles VARCHAR(255) NOT NULL,
|
||||
CONSTRAINT pk_contact_types PRIMARY KEY (id)
|
||||
);
|
||||
|
||||
ALTER TABLE IF EXISTS public.accounts
|
||||
OWNER to role_administrator;
|
||||
|
||||
|
||||
-- Index: idx_accounts_username
|
||||
-- DROP INDEX IF EXISTS public.idx_accounts_username;
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_accounts_username
|
||||
ON public.accounts USING btree (username COLLATE pg_catalog."default" ASC NULLS LAST)
|
||||
TABLESPACE pg_default;
|
||||
|
||||
|
||||
-- Revoke all permissions from existing roles
|
||||
REVOKE ALL ON TABLE public.accounts FROM role_administrator, role_maintainer, role_support, services;
|
||||
|
||||
|
||||
-- Grant appropriate permissions
|
||||
GRANT ALL ON TABLE public.accounts TO role_administrator;
|
||||
GRANT SELECT, INSERT, UPDATE ON TABLE public.accounts TO role_maintainer, services;
|
||||
GRANT SELECT ON TABLE public.accounts TO role_support;
|
||||
26
sql/003-account_audit.sql
Normal file
26
sql/003-account_audit.sql
Normal file
@@ -0,0 +1,26 @@
|
||||
-- Table: public.accounts_audit
|
||||
-- DROP TABLE IF EXISTS public.accounts_audit;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS public.accounts_audit
|
||||
(
|
||||
id uuid NOT NULL,
|
||||
timestamp timestamp with time zone NOT NULL,
|
||||
enabled boolean NOT NULL,
|
||||
username VARCHAR(50) NOT NULL,
|
||||
password VARCHAR(255) NOT NULL,
|
||||
roles VARCHAR(255) NOT NULL,
|
||||
CONSTRAINT pk_accounts_audit PRIMARY KEY (id, timestamp)
|
||||
) TABLESPACE pg_default;
|
||||
|
||||
ALTER TABLE IF EXISTS public.accounts_audit
|
||||
OWNER to role_administrator;
|
||||
|
||||
|
||||
-- Revoke all permissions from existing roles
|
||||
REVOKE ALL ON TABLE public.accounts_audit FROM role_administrator, role_maintainer, role_support, services;
|
||||
|
||||
|
||||
-- Grant appropriate permissions to each role
|
||||
GRANT ALL ON TABLE public.accounts_audit TO role_administrator;
|
||||
GRANT SELECT, INSERT ON TABLE public.accounts_audit TO services;
|
||||
GRANT SELECT ON TABLE public.accounts_audit TO role_maintainer, role_support;
|
||||
29
sql/004-account_audit_function.sql
Normal file
29
sql/004-account_audit_function.sql
Normal file
@@ -0,0 +1,29 @@
|
||||
-- FUNCTION: public.accounts_audit()
|
||||
-- DROP FUNCTION IF EXISTS public.accounts_audit();
|
||||
|
||||
CREATE OR REPLACE FUNCTION public.accounts_audit()
|
||||
RETURNS trigger
|
||||
LANGUAGE 'plpgsql'
|
||||
COST 100
|
||||
VOLATILE NOT LEAKPROOF
|
||||
AS
|
||||
$BODY$
|
||||
BEGIN
|
||||
INSERT INTO accounts_audit (id, timestamp, enabled, username, password, roles)
|
||||
VALUES (NEW.id, NEW.updated_at, NEW.enabled, NEW.username, NEW.password, NEW.roles);
|
||||
RETURN NULL; -- result is ignored since this is an AFTER trigger
|
||||
END;
|
||||
$BODY$;
|
||||
|
||||
ALTER FUNCTION public.accounts_audit()
|
||||
OWNER TO role_administrator;
|
||||
|
||||
|
||||
-- Trigger: accounts_audit_trigger
|
||||
-- DROP TRIGGER IF EXISTS accounts_audit_trigger ON public.accounts;
|
||||
|
||||
CREATE OR REPLACE TRIGGER accounts_audit_trigger
|
||||
AFTER INSERT OR UPDATE
|
||||
ON public.accounts
|
||||
FOR EACH ROW
|
||||
EXECUTE FUNCTION public.accounts_audit();
|
||||
Reference in New Issue
Block a user