From 53da4b1f3458b0ded981c9c2253a614db80686b8 Mon Sep 17 00:00:00 2001 From: Paolo Date: Tue, 14 Nov 2017 14:19:47 +0100 Subject: [PATCH] Added tbl_extension and related stuff to dbupdate_3.3 --- system/dbupdate_3.3.php | 139 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 138 insertions(+), 1 deletion(-) diff --git a/system/dbupdate_3.3.php b/system/dbupdate_3.3.php index 07e7ebe5d..6e625e73b 100644 --- a/system/dbupdate_3.3.php +++ b/system/dbupdate_3.3.php @@ -500,7 +500,7 @@ if(!@$db->db_query("SELECT updateamum FROM public.tbl_rt_person LIMIT 1")) if(!@$db->db_query("SELECT updatevon FROM public.tbl_rt_person LIMIT 1")) { $qry = "ALTER TABLE public.tbl_rt_person ADD COLUMN updatevon varchar(32);"; - + if(!$db->db_query($qry)) echo 'public.tbl_rt_person '.$db->db_last_error().'
'; else @@ -508,6 +508,143 @@ if(!@$db->db_query("SELECT updatevon FROM public.tbl_rt_person LIMIT 1")) } +//--------------------------------------------------------------------------------------------------------------------- +// Start extensions + +// SEQUENCE tbl_extensions_id_seq +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'tbl_extensions_id_seq'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = ' + CREATE SEQUENCE system.tbl_extensions_id_seq + START WITH 1 + INCREMENT BY 1 + NO MAXVALUE + NO MINVALUE + CACHE 1; + '; + if(!$db->db_query($qry)) + echo 'system.tbl_extensions_id_seq '.$db->db_last_error().'
'; + else + echo '
Created sequence: system.tbl_extensions_id_seq'; + + // ALTER SEQUENCE system.tbl_extensions_id_seq + $qry = 'ALTER SEQUENCE system.tbl_extensions_id_seq OWNED BY system.tbl_extensions.extension_id;'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions_id_seq '.$db->db_last_error().'
'; + else + echo '
Altered sequence system.tbl_extensions_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on system.tbl_extensions_id_seq'; + + // GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO fhcomplete; + $qry = 'GRANT SELECT, UPDATE ON SEQUENCE system.tbl_extensions_id_seq TO fhcomplete;'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions_id_seq '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on system.tbl_extensions_id_seq'; + } +} + +// TABLE system.tbl_extensions +if(!@$db->db_query("SELECT 0 FROM system.tbl_extensions WHERE 0 = 1")) +{ + $qry = ' + CREATE TABLE system.tbl_extensions ( + extension_id integer NOT NULL DEFAULT nextval(\'tbl_extensions_id_seq\'::regclass), + name character varying(128) NOT NULL, + version integer NOT NULL, + description text, + license character varying(256), + url character varying(256), + core_version character varying(48) NOT NULL, + dependencies character varying(128)[], + enabled boolean NOT NULL DEFAULT true + );'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions '.$db->db_last_error().'
'; + else + echo '
Created table system.tbl_extensions'; + + // GRANT SELECT ON TABLE system.tbl_extensions TO web; + $qry = 'GRANT SELECT ON TABLE system.tbl_extensions TO web;'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions '.$db->db_last_error().'
'; + else + echo '
Granted privileges to web on system.tbl_extensions'; + + // GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_extensions TO vilesci; + $qry = 'GRANT SELECT, UPDATE, INSERT, DELETE ON TABLE system.tbl_extensions TO vilesci;'; + if (!$db->db_query($qry)) + echo 'system.tbl_extensions '.$db->db_last_error().'
'; + else + echo '
Granted privileges to vilesci on system.tbl_extensions'; + + // COMMENT ON TABLE system.tbl_extensions + $qry = 'COMMENT ON TABLE system.tbl_extensions IS \'Table to manage extensions\';'; + if (!$db->db_query($qry)) + echo 'Adding comment to system.tbl_extensions: '.$db->db_last_error().'
'; + else + echo '
Added comment to system.tbl_extensions'; + + // COMMENT ON COLUMN system.tbl_extensions.name + $qry = 'COMMENT ON COLUMN system.tbl_extensions.name IS \'Extension unique name\';'; + if (!$db->db_query($qry)) + echo 'Adding comment to system.tbl_extensions.name: '.$db->db_last_error().'
'; + else + echo '
Added comment to system.tbl_extensions.name'; + + // COMMENT ON COLUMN system.tbl_extensions.core_version + $qry = 'COMMENT ON COLUMN system.tbl_extensions.core_version IS \'Minimum required core version\';'; + if (!$db->db_query($qry)) + echo 'Adding comment to system.tbl_extensions.core_version: '.$db->db_last_error().'
'; + else + echo '
Added comment to system.tbl_extensions.core_version'; + + // COMMENT ON COLUMN system.tbl_extensions.dependencies + $qry = 'COMMENT ON COLUMN system.tbl_extensions.dependencies IS \'Required extensions\';'; + if (!$db->db_query($qry)) + echo 'Adding comment to system.tbl_extensions.dependencies: '.$db->db_last_error().'
'; + else + echo '
Added comment to system.tbl_extensions.dependencies'; +} + +// UNIQUE INDEX uidx_extensions_name_version +if ($result = $db->db_query("SELECT 0 FROM pg_class WHERE relname = 'uidx_extensions_name_version'")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = 'CREATE UNIQUE INDEX uidx_extensions_name_version ON system.tbl_extensions USING btree (name, version);'; + if (!$db->db_query($qry)) + echo 'uidx_extensions_name_version '.$db->db_last_error().'
'; + else + echo '
Created unique uidx_extensions_name_version'; + } +} + +// Add permission for extensions +if ($result = @$db->db_query("SELECT 1 FROM system.tbl_berechtigung WHERE berechtigung_kurzbz = 'system/extensions';")) +{ + if ($db->db_num_rows($result) == 0) + { + $qry = "INSERT INTO system.tbl_berechtigung (berechtigung_kurzbz, beschreibung) VALUES('system/extensions', 'To manage core extensions');"; + if (!$db->db_query($qry)) + echo 'system.tbl_berechtigung '.$db->db_last_error().'
'; + else + echo ' system.tbl_berechtigung: Added permission for extensions
'; + } +} + +// End extensions +//--------------------------------------------------------------------------------------------------------------------- + + // *** Pruefung und hinzufuegen der neuen Attribute und Tabellen echo '

Pruefe Tabellen und Attribute!

';