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 '