Location: PHPKode > projects > Svn-access-manager > svn_access_manager/install/install-old.php
<?php

/*
    SVN Access Manager - a subversion access rights management tool
    Copyright (C) 2008 Thomas Krieger <hide@address.com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

/*

File:          install.php
Template File: install.tpl
$LastChangedDate: 2010-07-15 19:49:46 +0200 (Thu, 15 Jul 2010) $
$LastChangedBy: kriegeth $

$Id: install-old.php 470 2010-07-15 17:49:46Z kriegeth $

*/

require ("../include/variables.inc.php");
require ("../include/db-functions-adodb.inc.php");
require ("../include/functions.inc.php");



$DBTABLES									= array( 'help', 'log', 'preferences', 'rights', 'workinfo', 'sessions', 
													 'svngroups', 'svnmailinglists', 'svnpasswordreset', 'svnprojects', 'svnrepos', 'svnusers', 
											  	 	 'svn_access_rights', 'svn_groups_responsible', 'svn_projects_mailinglists',
													 'svn_projects_responsible', 'svn_users_groups', 'users_rights');
																		 
													 

function dropMySQLDatabaseTables( $dbh ) {
	
	global $DBTABLES;
		
	$error									= 0;
	$tMessage								= "";
	
	foreach( $DBTABLES as $dbtable ) {
	
		if( $error == 0 ) {
			
			$query							= "DROP TABLE IF EXISTS `".$dbtable."`";
			$result							= db_query_install( $query, $dbh );
			if( mysql_errno() != 0 ) {
				
				$error						= 1;
				$tMessage					= sprintf( _("Cannot drop table %s"), "log" );
			}
		}	
	}
	
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	return $ret;
}


function dropOracleDatabaseTables( $dbh, $schema ) {
	
	global $DBTABLES;
	
	$error									= 0;
	$tMessage								= "";
	
	foreach( $DBTABLES as $dbtable ) {
		
		if( $error == 0 ) {
			
			$query							= "begin execute immediate 'drop table $schema.$dbtable cascade constraints'; exception when others then null; end;";
			#error_log($query);
			$result							= db_query_install( $query, $dbh );
			$seq							= $dbtable."_seq";
			$query							= "begin execute immediate 'drop sequence $schema.$seq'; exception when others then null; end;";
			#error_log($query);
			$result							= db_query_install( $query, $dbh );
		}
		
	}
	
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	return $ret;
}


function dropPostgresDatabaseTables( $dbh ) {
	
	global $DBTABLES;
	
	$error									= 0;
	$tMessage								= "";
	
	foreach( $DBTABLES as $dbtable ) {
		
		if( $error == 0 ) {
			
			$query							= "DROP TABLE IF EXISTS $dbtable CASCADE";
			$result							= db_query_install( $query, $dbh );
			$seq							= $dbtable."_id_seq";
			$query							= "DROP SEQUENCE IF EXISTS $seq CASCADE";
			$result							= db_query_install( $query, $dbh );
		}
		
	}
	
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	return $ret;
}


function createDatabaseTables( $dbh, $charset, $collation, $dbtype, $schema, $tablespace, $dbuser ) {
	
	$error									= 0;
	$tMessage								= "";
	$query									= "SET client_encoding = '$charset'";
	$result									= db_query_install( $query, $dbh );
	$query									= "SET standard_conforming_strings = off";
	$result									= db_query_install( $query, $dbh );
	$query									= "SET check_function_bodies = false";
	$result									= db_query_install( $query, $dbh );
	$query									= "SET client_min_messages = warning";
	$result									= db_query_install( $query, $dbh );
	$query									= "SET escape_string_warning = off";
	$result									= db_query_install( $query, $dbh );
	if( $schema != "" ) {
		$query								= "SET search_path = '$schema'";
	} else {
		$query								= "SET search_path = ";
	}
	$result									= db_query_install( $query, $dbh );
	$query									= "SET default_tablespace = '$tablespace'";
	$result									= db_query_install( $query, $dbh );
	$query									= "SET default_with_oids = false;";
	$result									= db_query_install( $query, $dbh );
	
	// Table help
	$query									= "CREATE TABLE help (id bigint NOT NULL, 
												    topic character varying(255) NOT NULL,
												    headline_en character varying(255) NOT NULL,
												    headline_de character varying(255) NOT NULL,
												    helptext_de text NOT NULL,
												    helptext_en text NOT NULL
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.help OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE help IS 'Table of help texts';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE help_id_seq
    												START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.help_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE help_id_seq OWNED BY help.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE help ALTER COLUMN id SET DEFAULT nextval('help_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY help ADD CONSTRAINT help_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX help_topic_idx ON help USING btree (topic);";
	$result									= db_query_install( $query, $dbh );
	
	// Table log
	$query									= "CREATE TABLE log (
												    id bigint NOT NULL,
												    \"logtimestamp\" character varying(14) NOT NULL,
												    username character varying(255) NOT NULL,
												    ipaddress character varying(15) NOT NULL,
												    logmessage text NOT NULL
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.log OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE log IS 'Table of log messages';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE log_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );												    
	$query									= "ALTER TABLE $schema.log_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE log_id_seq OWNED BY log.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE log ALTER COLUMN id SET DEFAULT nextval('log_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );	
	$query									= "ALTER TABLE ONLY log ADD CONSTRAINT log_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX log_timestamp_idx ON log USING btree (\"logtimestamp\");";
	$result									= db_query_install( $query, $dbh );
	
	// Table preferences
	$query									= "CREATE TABLE preferences (
												    id bigint NOT NULL,
												    user_id integer NOT NULL,
												    page_size integer NOT NULL,
												    user_sort_fields character varying(255) NOT NULL,
												    user_sort_order character varying(255) NOT NULL,
												    created character varying(14) NOT NULL  DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT ''
												);";
	$result									= db_query_install( $query, $dbh );												
	$query									= "ALTER TABLE $schema.preferences OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE preferences IS 'Table of user preferences';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE preferences_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );										
	$query									= "ALTER TABLE $schema.preferences_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE preferences_id_seq OWNED BY preferences.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE preferences ALTER COLUMN id SET DEFAULT nextval('preferences_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY preferences ADD CONSTRAINT preferences_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX preferences_user_id_idx ON preferences USING btree (user_id);";
	$result									= db_query_install( $query, $dbh );	
	
	// Table rights
	$query									= "CREATE TABLE rights (
												    id bigint NOT NULL,
												    right_name character varying(255) NOT NULL,
												    description_en character varying(255) NOT NULL,
												    description_de character varying(255) NOT NULL,
												    allowed_action character varying DEFAULT 'none'::character varying NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT rights_allowed_action_check CHECK (((allowed_action)::text = ANY ((ARRAY['none'::character varying, 'read'::character varying, 'edit'::character varying, 'delete'::character varying])::text[])))
												);";							   
	$result									= db_query_install( $query, $dbh ); 
	$query									= "ALTER TABLE $schema.rights OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE rights IS 'Table of rights to grant to users';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE rights_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.rights_id_seq OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE rights_id_seq OWNED BY rights.id;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE rights ALTER COLUMN id SET DEFAULT nextval('rights_id_seq'::regclass);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY rights ADD CONSTRAINT rights_pkey PRIMARY KEY (id);";							   
	$result									= db_query_install( $query, $dbh );
	
	// Table workinfo
	$query									= "CREATE TABLE workinfo (
												    id bigint NOT NULL,
												    \"usertimestamp\" timestamp without time zone DEFAULT now() NOT NULL,
												    action character varying(255) NOT NULL,
												    status character varying(255) NOT NULL,
												    type character varying(255) NOT NULL
												);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.workinfo OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE workinfo IS 'table of workinfos';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE workinfo_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.workinfo_id_seq OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE workinfo_id_seq OWNED BY workinfo.id;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE workinfo ALTER COLUMN id SET DEFAULT nextval('workinfo_id_seq'::regclass);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY workinfo ADD CONSTRAINT workinfo_pkey PRIMARY KEY (id);";							   
	$result									= db_query_install( $query, $dbh );
	
	// Table sessions
	$query									= "CREATE TABLE sessions (
												    session_id character varying(255) NOT NULL,
												    session_expires integer DEFAULT 0 NOT NULL,
												    session_data text,
												    CONSTRAINT sessions_session_expires_check CHECK ((session_expires >= 0))
												);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.sessions OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY sessions ADD CONSTRAINT sessions_pkey PRIMARY KEY (session_id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX sessions_session_expires_idx ON sessions USING btree (session_expires);";		
	$result									= db_query_install( $query, $dbh );
	
	// Table svngroups
	$query									= "CREATE TABLE svngroups (
												    id bigint NOT NULL,
												    groupname character varying(255) NOT NULL,
												    description character varying(255) NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT ''
												);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svngroups OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svngroups IS 'Table of svn user groups';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svngroups_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svngroups_id_seq OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svngroups_id_seq OWNED BY svngroups.id;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svngroups ALTER COLUMN id SET DEFAULT nextval('svngroups_id_seq'::regclass);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svngroups ADD CONSTRAINT svngroups_pkey PRIMARY KEY (id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svngroups_groupname_idx ON svngroups USING btree (groupname);";							   
	$result									= db_query_install( $query, $dbh );
	
	// Table svnprojects
	$query									= "CREATE TABLE svnprojects (
												    id bigint NOT NULL,
												    repo_id integer NOT NULL,
												    svnmodule character varying(255) NOT NULL,
												    modulepath character varying(255) NOT NULL,
												    description character varying(255) DEFAULT '',
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT svnprojects_repo_id_check CHECK ((repo_id >= 0))
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnprojects OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svnprojects IS 'Table of svn modules';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svnprojects_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnprojects_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svnprojects_id_seq OWNED BY svnprojects.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svnprojects ALTER COLUMN id SET DEFAULT nextval('svnprojects_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnprojects ADD CONSTRAINT svnprojects_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnprojects_deleted_idx ON svnprojects USING btree (deleted);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnprojects_repo_id_idx ON svnprojects USING btree (repo_id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svnusers
	$query									= "CREATE TABLE svnusers (
												    id bigint NOT NULL,
												    userid character varying(255) NOT NULL,
												    name character varying(255) NOT NULL,
												    givenname character varying(255) NOT NULL,
												    password character varying(255) DEFAULT ''::character varying NOT NULL,
												    passwordexpires smallint DEFAULT 1::smallint NOT NULL,
												    locked smallint DEFAULT 0::smallint NOT NULL,
												    emailaddress character varying(255) DEFAULT ''::character varying NOT NULL,
												    admin character varying(1) DEFAULT 'n'::character varying NOT NULL,
												    user_mode character varying(10) NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    password_modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    superadmin smallint DEFAULT 0::smallint NOT NULL,
												    securityquestion character varying(255) DEFAULT ''::character varying,
												    securityanswer character varying(255) DEFAULT ''::character varying
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnusers OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svnusers IS 'Table of all known users';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svnusers_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnusers_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svnusers_id_seq OWNED BY svnusers.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svnusers ALTER COLUMN id SET DEFAULT nextval('svnusers_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnusers ADD CONSTRAINT svnusers_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnusers ADD CONSTRAINT svnusers_userid_key UNIQUE (userid, deleted);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnusers_deleted_idx ON svnusers USING btree (deleted);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnusers_locked_idx ON svnusers USING btree (locked);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnusers_passwordexpires_idx ON svnusers USING btree (passwordexpires);";
	$result									= db_query_install( $query, $dbh );
	
	
	// Table svn_access_rights				   
	$query									= "CREATE TABLE svn_access_rights (
												    id bigint NOT NULL,
												    project_id integer,
												    user_id integer,
												    group_id integer,
												    path text NOT NULL,
												    valid_from character varying(14) NOT NULL DEFAULT '00000000000000',
												    valid_until character varying(14) NOT NULL DEFAULT '99999999999999',
												    access_right character varying DEFAULT 'none'::character varying NOT NULL,
												    recursive character varying DEFAULT 'yes'::character varying NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT svn_access_rights_access_right_check CHECK (((access_right)::text = ANY ((ARRAY['none'::character varying, 'read'::character varying, 'write'::character varying])::text[]))),
												    CONSTRAINT svn_access_rights_recursive_check CHECK (((recursive)::text = ANY ((ARRAY['yes'::character varying, 'no'::character varying])::text[])))
												);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_access_rights OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svn_access_rights IS 'Table of user or group access rights';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON COLUMN svn_access_rights.valid_from IS 'JHJJMMTT';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON COLUMN svn_access_rights.valid_until IS 'JHJJMMTT';";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svn_access_rights_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_access_rights_id_seq OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svn_access_rights_id_seq OWNED BY svn_access_rights.id;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svn_access_rights ALTER COLUMN id SET DEFAULT nextval('svn_access_rights_id_seq'::regclass);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_access_rights ADD CONSTRAINT svn_access_rights_pkey PRIMARY KEY (id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_access_rights_deleted_idx ON svn_access_rights USING btree (deleted);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_access_rights_group_id_idx ON svn_access_rights USING btree (group_id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_access_rights_path_idx ON svn_access_rights USING btree (path);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_access_rights_project_id_idx ON svn_access_rights USING btree (project_id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_access_rights_user_id_idx ON svn_access_rights USING btree (user_id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_access_rights ADD CONSTRAINT svn_access_rights_group_id_fkey FOREIGN KEY (group_id) REFERENCES svngroups(id) ON UPDATE RESTRICT ON DELETE CASCADE;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_access_rights ADD CONSTRAINT svn_access_rights_project_id_fkey FOREIGN KEY (project_id) REFERENCES svnprojects(id) ON UPDATE RESTRICT ON DELETE CASCADE;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_access_rights ADD CONSTRAINT svn_access_rights_user_id_fkey FOREIGN KEY (user_id) REFERENCES svnusers(id) ON UPDATE RESTRICT ON DELETE CASCADE;";							   
	$result									= db_query_install( $query, $dbh );
	
	// Table svn_groups_responsible
	$query									= "CREATE TABLE svn_groups_responsible (
												    id bigint NOT NULL,
												    user_id integer NOT NULL,
												    group_id integer NOT NULL,
												    allowed character varying DEFAULT 'none'::character varying NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT svn_groups_responsible_allowed_check CHECK (((allowed)::text = ANY ((ARRAY['none'::character varying, 'read'::character varying, 'edit'::character varying, 'delete'::character varying])::text[]))),
												    CONSTRAINT svn_groups_responsible_group_id_check CHECK ((group_id >= 0)),
												    CONSTRAINT svn_groups_responsible_user_id_check CHECK ((user_id >= 0))
												);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_groups_responsible OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svn_groups_responsible_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_groups_responsible_id_seq OWNER TO $dbuser;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svn_groups_responsible_id_seq OWNED BY svn_groups_responsible.id;";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svn_groups_responsible ALTER COLUMN id SET DEFAULT nextval('svn_groups_responsible_id_seq'::regclass);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_groups_responsible ADD CONSTRAINT svn_groups_responsible_pkey PRIMARY KEY (id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_groups_responsible_1_idx ON svn_groups_responsible USING btree (user_id, group_id);";							   
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_groups_responsible_deleted_idx ON svn_groups_responsible USING btree (deleted);";							   
	$result									= db_query_install( $query, $dbh );
	
	// Table svn_projects_mailinglists
	$query									= "CREATE TABLE svn_projects_mailinglists (
												    id bigint NOT NULL,
												    project_id integer NOT NULL,
												    mailinglisten_id integer NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT svn_projects_mailinglists_mailinglisten_id_check CHECK ((mailinglisten_id >= 0)),
												    CONSTRAINT svn_projects_mailinglists_project_id_check CHECK ((project_id >= 0))
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_projects_mailinglists OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svn_projects_mailinglists IS 'Table of modules and mailinglist relations';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svn_projects_mailinglists_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_projects_mailinglists_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svn_projects_mailinglists_id_seq OWNED BY svn_projects_mailinglists.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svn_projects_mailinglists ALTER COLUMN id SET DEFAULT nextval('svn_projects_mailinglists_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_projects_mailinglists ADD CONSTRAINT svn_projects_mailinglists_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_projects_mailinglists_1_idx ON svn_projects_mailinglists USING btree (project_id, mailinglisten_id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_projects_mailinglists_mailinglisten_id_idx ON svn_projects_mailinglists USING btree (mailinglisten_id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svn_projects_responsible
	$query									= "CREATE TABLE svn_projects_responsible (
												    id bigint NOT NULL,
												    project_id integer NOT NULL,
												    user_id integer NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT ''
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_projects_responsible OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svn_projects_responsible IS 'Table of project responsible users';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svn_projects_responsible_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_projects_responsible_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svn_projects_responsible_id_seq OWNED BY svn_projects_responsible.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svn_projects_responsible ALTER COLUMN id SET DEFAULT nextval('svn_projects_responsible_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_projects_responsible ADD CONSTRAINT svn_projects_responsible_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_projects_responsible_deleted_idx ON svn_projects_responsible USING btree (deleted);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_projects_responsible_project_id_idx ON svn_projects_responsible USING btree (project_id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svn_users_groups
	$query									= "CREATE TABLE svn_users_groups (
												    id bigint NOT NULL,
												    user_id integer NOT NULL,
												    group_id integer NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT svn_users_groups_group_id_check CHECK ((group_id >= 0)),
												    CONSTRAINT svn_users_groups_user_id_check CHECK ((user_id >= 0))
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_users_groups OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svn_users_groups IS 'Table of user group relations';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svn_users_groups_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svn_users_groups_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svn_users_groups_id_seq OWNED BY svn_users_groups.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svn_users_groups ALTER COLUMN id SET DEFAULT nextval('svn_users_groups_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svn_users_groups ADD CONSTRAINT svn_users_groups_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_users_groups_deleted_idx ON svn_users_groups USING btree (deleted);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_users_groups_group_id_idx ON svn_users_groups USING btree (group_id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svn_users_groups_user_id_idx ON svn_users_groups USING btree (user_id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svnmailinglists
	$query									= "CREATE TABLE svnmailinglists (
												    id bigint NOT NULL,
												    mailinglist character varying(255) NOT NULL,
												    emailaddress character varying(255) NOT NULL,
												    description text NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT ''
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnmailinglists OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svnmailinglists IS 'Table of available svn mailing lists';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svnmailinglists_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnmailinglists_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svnmailinglists_id_seq OWNED BY svnmailinglists.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svnmailinglists ALTER COLUMN id SET DEFAULT nextval('svnmailinglists_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnmailinglists ADD CONSTRAINT svnmailinglists_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svnpasswordreset
	$query									= "CREATE TABLE svnpasswordreset (
												    id bigint NOT NULL,
												    unixtime integer NOT NULL,
												    username character varying(255) NOT NULL,
												    token character varying(255) NOT NULL,
												    idstr character varying(255) NOT NULL
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnpasswordreset OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svnpasswordreset_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnpasswordreset_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svnpasswordreset_id_seq OWNED BY svnpasswordreset.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svnpasswordreset ALTER COLUMN id SET DEFAULT nextval('svnpasswordreset_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnpasswordreset ADD CONSTRAINT svnpasswordreset_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	
	// Table svnrepos
	$query									= "CREATE TABLE svnrepos (
												    id bigint NOT NULL,
												    reponame character varying(255) NOT NULL,
												    repopath character varying(255) NOT NULL,
												    repouser character varying(255) NOT NULL,
												    repopassword character varying(255) NOT NULL,
												    different_auth_files smallint DEFAULT 0::smallint NOT NULL,
												    auth_user_file character varying(255) NOT NULL,
												    svn_access_file character varying(255) NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT ''
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnrepos OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE svnrepos IS 'Table of svn repositories';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE svnrepos_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.svnrepos_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE svnrepos_id_seq OWNED BY svnrepos.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE svnrepos ALTER COLUMN id SET DEFAULT nextval('svnrepos_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY svnrepos ADD CONSTRAINT svnrepos_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX svnrepos_deleted_idx ON svnrepos USING btree (deleted);";
	$result									= db_query_install( $query, $dbh );
	
	// Table users_rights
	$query									= "CREATE TABLE users_rights (
												    id bigint NOT NULL,
												    user_id integer NOT NULL,
												    right_id integer NOT NULL,
												    allowed character varying DEFAULT 'none'::character varying NOT NULL,
												    created character varying(14) NOT NULL DEFAULT '00000000000000',
												    created_user character varying(255) DEFAULT '',
												    modified character varying(14) NOT NULL DEFAULT '00000000000000',
												    modified_user character varying(255) DEFAULT '',
												    deleted character varying(14) NOT NULL DEFAULT '00000000000000',
												    deleted_user character varying(255) DEFAULT '',
												    CONSTRAINT users_rights_allowed_check CHECK (((allowed)::text = ANY ((ARRAY['none'::character varying, 'read'::character varying, 'add'::character varying, 'edit'::character varying, 'delete'::character varying])::text[])))
												);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.users_rights OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "COMMENT ON TABLE users_rights IS 'Table of granted user rights';";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE SEQUENCE users_rights_id_seq
												    START WITH 1
												    INCREMENT BY 1
												    NO MAXVALUE
												    NO MINVALUE
												    CACHE 1;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE $schema.users_rights_id_seq OWNER TO $dbuser;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER SEQUENCE users_rights_id_seq OWNED BY users_rights.id;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE users_rights ALTER COLUMN id SET DEFAULT nextval('users_rights_id_seq'::regclass);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY users_rights ADD CONSTRAINT users_rights_pkey PRIMARY KEY (id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX users_rights_right_id_idx ON users_rights USING btree (right_id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "CREATE INDEX users_rights_user_id_idx ON users_rights USING btree (user_id);";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY users_rights ADD CONSTRAINT users_rights_right_id_fkey FOREIGN KEY (right_id) REFERENCES rights(id) ON UPDATE RESTRICT ON DELETE CASCADE;";
	$result									= db_query_install( $query, $dbh );
	$query									= "ALTER TABLE ONLY users_rights ADD CONSTRAINT users_rights_user_id_fkey FOREIGN KEY (user_id) REFERENCES svnusers(id) ON UPDATE RESTRICT ON DELETE CASCADE;";
	$result									= db_query_install( $query, $dbh );
	
	
}


function createOracleDatabaseTables( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase, $schema, $tDatabaseTablespace, $tDatabaseUser ) {

	$error									= 0;
	$tMessage								= "";
	
	$query									= "CREATE SEQUENCE $schema.HELP_SEQ MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"LOG_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"PREFERENCES_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"RIGHTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVN_ACCESS_RIGHTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVN_GROUPS_RESPONSIBLE_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVN_PROJECTS_MAILINGLISTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVN_PROJECTS_RESPONSIBLE_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVN_USERS_GROUPS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNGROUPS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNMAILINGLISTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNPASSWORDRESET_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNPROJECTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNREPOS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"SVNUSERS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"USERS_RIGHTS_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE SEQUENCE $schema.\"WORKINFO_SEQ\" MINVALUE 1 MAXVALUE 999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.HELP
												  (
												    \"ID\"          NUMBER(*,0) NOT NULL ENABLE,
												    \"TOPIC\"       VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"HEADLINE_EN\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"HEADLINE_DE\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"HELPTEXT_DE\" CLOB NOT NULL ENABLE,
												    \"HELPTEXT_EN\" CLOB NOT NULL ENABLE,
												    CONSTRAINT \"HELP_PK\" PRIMARY KEY (\"ID\") ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.HELP IS 'Table of help texts'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.HELP_TOPIC_IDX ON $schema.HELP
												    (
												      \"TOPIC\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.HELP_TRG BEFORE
												  INSERT ON $schema.HELP FOR EACH ROW BEGIN IF :NEW.ID IS NULL THEN
												  SELECT HELP_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.HELP_TRG ENABLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.LOG
												  (
												    \"ID\" NUMBER(*,0) NOT NULL ENABLE,
												    \"LOGTIMESTAMP\" VARCHAR2(14 BYTE) NOT NULL ENABLE,
												    \"USERNAME\"  VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"IPADDRESS\" VARCHAR2(15 BYTE) NOT NULL ENABLE,
												    \"LOGMESSAGE\" CLOB NOT NULL ENABLE,
												    CONSTRAINT LOG_PK PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.LOG IS 'Table of log messages'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.LOG_TIMESTAMP_IDX ON $schema.LOG
												    (
												      \"LOGTIMESTAMP\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.LOG_TRG BEFORE
												  INSERT ON $schema.LOG FOR EACH ROW BEGIN
												  SELECT LOG_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.LOG_TRG ENABLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.\"PREFERENCES\"
												  (
												    \"ID\"               NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_ID\"          NUMBER(*,0) NOT NULL ENABLE,
												    \"PAGE_SIZE\"        NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_SORT_FIELDS\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"USER_SORT_ORDER\"  VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"CREATED\"          VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"     VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"         VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\"    VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"          VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"     VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"PREFERENCES_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"PREFERENCES\" IS 'Table of user preferences'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"PREFERENCES_USER_ID_IDX\" ON $schema.\"PREFERENCES\"
												    (
												      \"USER_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"PREFERENCES_TRG\" BEFORE
												  INSERT ON $schema.PREFERENCES FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN
												  SELECT PREFERENCES_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"PREFERENCES_TRG\" ENABLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.\"WORKINFO\"
												  (
												    \"ID\" NUMBER(*,0) NOT NULL ENABLE,
												    \"USERTIMESTAMP\" TIMESTAMP (6) DEFAULT CURRENT_TIMESTAMP NOT NULL ENABLE,
												    \"ACTION\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"STATUS\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"TYPE\"   VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    CONSTRAINT \"WORKINFO_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"WORKINFO\" IS 'Table of workinfos'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"WORKINFO_TRG\" BEFORE
												  INSERT ON $schema.WORKINFO FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT WORKINFO_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"WORKINFO_TRG\" ENABLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.\"RIGHTS\"
												  (
												    \"ID\"             NUMBER(*,0) NOT NULL ENABLE,
												    \"RIGHT_NAME\"     VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"DESCRIPTION_EN\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"DESCRIPTION_DE\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"ALLOWED_ACTION\" VARCHAR2(255 BYTE) DEFAULT 'none' NOT NULL ENABLE,
												    \"CREATED\"        VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"   VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\"  VARCHAR2(155 BYTE) DEFAULT '',
												    \"DELETED\"        VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"   VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"RIGHTS_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"RIGHTS_ALLOWED_ACTION_CHECK\" CHECK (ALLOWED_ACTION = 'none'
												  OR ALLOWED_ACTION                                                = 'read'
												  OR ALLOWED_ACTION                                                = 'edit'
												  OR ALLOWED_ACTION                                                = 'delete') ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"RIGHTS\" IS 'Table of rights to grant to users'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"RIGHTS_TRG\" BEFORE
												  INSERT ON $schema.RIGHTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT RIGHTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"RIGHTS_TRG\" ENABLE";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE TABLE $schema.\"SESSIONS\"
												  (
												    \"SESSION_ID\"      VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"SESSION_EXPIRES\" NUMBER(*,0) DEFAULT 0 NOT NULL ENABLE,
												    \"SESSION_DATA\" CLOB,
												    CONSTRAINT \"SESSIONS_SESSION_EXPIRES_CHECK\" CHECK (SESSION_EXPIRES >= 0) ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SESSIONS\" IS 'Table of session information'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SESSIONS_SESSION_EXPIRES_IDX\" ON $schema.\"SESSIONS\"
												    (
												      \"SESSION_EXPIRES\"
												    )";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVNGROUPS\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"GROUPNAME\"     VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"DESCRIPTION\"   VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVNGROUPS_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVNGROUPS\" IS 'Table of svn user groups'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNGROUPS_GROUPNAME_IDX\" ON $schema.\"SVNGROUPS\"
												    (
												      \"GROUPNAME\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNGROUPS_TRG\" BEFORE
												  INSERT ON $schema.SVNGROUPS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNGROUPS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNGROUPS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVNMAILINGLISTS\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"MAILINGLIST\"   VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"EMAILADDRESS\"  VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"DESCRIPTION\"   VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVNMAILINGLISTS_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVNMAILINGLISTS\" IS 'Table of available svn mailing lists'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNMAILINGLISTS_TRG\" BEFORE
												  INSERT ON $schema.SVNMAILINGLISTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNMAILINGLISTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNMAILINGLISTS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVNPASSWORDRESET\"
												  (
												    \"ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"UNIXTIME\" NUMBER(*,0) NOT NULL ENABLE,
												    \"USERNAME\" VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"TOKEN\"    VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"IDSTR\"    VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    CONSTRAINT \"SVNPASSWORDRESET_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
  	$result									= db_query_install( $query, $dbh );
  	
	$query									= "COMMENT ON TABLE $schema.\"SVNPASSWORDRESET\" IS 'Table with password reset information'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNPASSWORDRESET_TRG\" BEFORE
												  INSERT ON $schema.SVNPASSWORDRESET FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNPASSWORDRESET_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNPASSWORDRESET_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVNREPOS\"
												  (
												    \"ID\"                   NUMBER(*,0) NOT NULL ENABLE,
												    \"REPONAME\"             VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"REPOPATH\"             VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"REPOUSER\"             VARCHAR2(255 BYTE) DEFAULT '',
												    \"REPOPASSWORD\"         VARCHAR2(255 BYTE) DEFAULT '',
												    \"DIFFERENT_AUTH_FILES\" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
												    \"AUTH_USER_FILE\"       VARCHAR2(255 BYTE) DEFAULT '',
												    \"SVN_ACCESS_FILE\"      VARCHAR2(255 BYTE) DEFAULT '',
												    \"CREATED\"              VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"         VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"             VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\"        VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"              VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"         VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVNREPOS_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVNREPOS\" IS 'Table of svn repositories'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNREPOS_DELETED_IDX\" ON $schema.\"SVNREPOS\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNREPOS_TRG\" BEFORE
												  INSERT ON $schema.SVNREPOS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNREPOS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNREPOS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVNPROJECTS\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"REPO_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"SVNMODULE\"     VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"MODULEPATH\"    VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"DESCRIPTION\"   VARCHAR2(255 BYTE) DEFAULT '',
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVNPROJECTS_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"SVNPROJECTS_REPO_ID_CHECK\" CHECK (REPO_ID >= 0) ENABLE,
												    CONSTRAINT \"SVNPROJECTS_REPO_ID_FK\" FOREIGN KEY (\"REPO_ID\") REFERENCES $schema.\"SVNREPOS\" (\"ID\") ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVNPROJECTS\" IS 'Table of svn modules'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNPROJECTS_DELETED_IDX\" ON $schema.\"SVNPROJECTS\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNPROJECTS_REPO_ID_IDX\" ON $schema.\"SVNPROJECTS\"
												    (
												      \"REPO_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNPROJECTS_TRG\" BEFORE
												  INSERT ON $schema.SVNPROJECTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNPROJECTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNPROJECTS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.SVNUSERS
												  (
												    \"ID\"                NUMBER(*,0) NOT NULL ENABLE,
												    \"USERID\"            VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"NAME\"              VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"GIVENNAME\"         VARCHAR2(255 BYTE) NOT NULL ENABLE,
												    \"PASSWORD\"          VARCHAR2(255 BYTE) DEFAULT '',
												    \"PASSWORDEXPIRES\"   NUMBER(1,0) DEFAULT 1 NOT NULL ENABLE,
												    \"LOCKED\"            NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
												    \"EMAILADDRESS\"      VARCHAR2(255 BYTE) DEFAULT '',
												    \"ADMIN\"             VARCHAR2(1 BYTE) DEFAULT 'n' NOT NULL ENABLE,
												    \"USER_MODE\"         VARCHAR2(10 BYTE) NOT NULL ENABLE,
												    \"CREATED\"           VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"      VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"          VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\"     VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"           VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"      VARCHAR2(255 BYTE) DEFAULT '',
												    \"PASSWORD_MODIFIED\" VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"SUPERADMIN\"        NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
												    \"SECURITYQUESTION\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"SECURITYANSWER\"    VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT SVNUSERS_PK PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.SVNUSERS IS 'Table of all known users'";
	$result									= db_query_install( $query, $dbh );

	$query									= "CREATE INDEX $schema.\"SVNUSERS_DELETED_IDX\" ON $schema.\"SVNUSERS\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNUSERS_LOCKED_IDX\" ON $schema.\"SVNUSERS\"
												    (
												      \"LOCKED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNUSERS_PASSWORDEXPIRES_IDX\" ON $schema.\"SVNUSERS\"
												    (
												      \"PASSWORDEXPIRES\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVNUSERS_TRG\" BEFORE
												  INSERT ON $schema.SVNUSERS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVNUSERS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVNUSERS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVN_ACCESS_RIGHTS\"
												  (
												    \"ID\"         NUMBER(*,0) NOT NULL ENABLE,
												    \"PROJECT_ID\" NUMBER(*,0),
												    \"USER_ID\"    NUMBER(*,0),
												    \"GROUP_ID\"   NUMBER(*,0),
												    \"PATH\" VARCHAR2(4000) NOT NULL ENABLE,
												    \"VALID_FROM\"    VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"VALID_UNTIL\"   VARCHAR2(14 BYTE) DEFAULT '99999999999999' NOT NULL ENABLE,
												    \"ACCESS_RIGHT\"  VARCHAR2(255 BYTE) DEFAULT 'none' NOT NULL ENABLE,
												    \"RECURSIVE\"     VARCHAR2(255 BYTE) DEFAULT 'yes' NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVN_ACCESS_RIGHTS_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"SVN_ACCESS_RECURSIVE_CHECK\" CHECK (RECURSIVE        = 'yes'
												  OR RECURSIVE                                                      = 'no') ENABLE,
												    CONSTRAINT \"SVN_ACCESS_RIGHTS_ACCESS_CHECK\" CHECK (ACCESS_RIGHT = 'none'
												  OR ACCESS_RIGHT                                                   = 'read'
												  OR ACCESS_RIGHT                                                   = 'write') ENABLE,
												    CONSTRAINT \"SVN_ACCESS_RIGHTS_SVNGROU_FK1\" FOREIGN KEY (\"GROUP_ID\") REFERENCES $schema.\"SVNGROUPS\" (\"ID\") ON
												  DELETE CASCADE ENABLE,
												    CONSTRAINT \"SVN_ACCESS_RIGHTS_SVNPROJ_FK1\" FOREIGN KEY (\"PROJECT_ID\") REFERENCES $schema.\"SVNPROJECTS\" (\"ID\") ON
												  DELETE CASCADE ENABLE,
												    CONSTRAINT \"SVN_ACCESS_RIGHTS_SVNUSER_FK1\" FOREIGN KEY (\"USER_ID\") REFERENCES $schema.\"SVNUSERS\" (\"ID\") ON
												  DELETE CASCADE ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVN_ACCESS_RIGHTS\" IS 'Table of user or group access rights'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVNACCESSRIGHTSPROJECTID_IDX\" ON $schema.\"SVN_ACCESS_RIGHTS\"
												    (
												      \"PROJECT_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_ACCESS_RIGHTS_DELETED_IDX\" ON $schema.\"SVN_ACCESS_RIGHTS\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_ACCESS_RIGHTS_GROUP_ID_IDX\" ON $schema.\"SVN_ACCESS_RIGHTS\"
												    (
												      \"GROUP_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_ACCESS_RIGHTS_USER_ID_IDX\" ON $schema.\"SVN_ACCESS_RIGHTS\"
												    (
												      \"USER_ID\"
												    )";
    $result									= db_query_install( $query, $dbh );
    
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVN_ACCESS_RIGHTS_TRG\" BEFORE
												  INSERT ON $schema.SVN_ACCESS_RIGHTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVN_ACCESS_RIGHTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVN_ACCESS_RIGHTS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVN_GROUPS_RESPONSIBLE\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"GROUP_ID\"      NUMBER(*,0) NOT NULL ENABLE,
												    \"ALLOWED\"       VARCHAR2(255 BYTE) DEFAULT 'none' NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVN_GROUPS_RESPONSIBLE_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"ALLOWED_CHECK\" CHECK (ALLOWED    = 'none'
												  OR ALLOWED                                     = 'read'
												  OR ALLOWED                                     = 'edit'
												  OR ALLOWED                                     = 'delete') ENABLE,
												    CONSTRAINT \"GROUP_ID_CHECK\" CHECK (GROUP_ID >= 0) ENABLE,
												    CONSTRAINT \"USER_ID_CHECK\" CHECK (USER_ID   >= 0) ENABLE,
												    CONSTRAINT \"SVN_GROUPS_RESPONSIBLE_SV_FK1\" FOREIGN KEY (\"USER_ID\") REFERENCES $schema.\"SVNUSERS\" (\"ID\") ON
												  DELETE CASCADE ENABLE,
												    CONSTRAINT \"SVN_GROUPS_RESPONSIBLE_SV_FK2\" FOREIGN KEY (\"GROUP_ID\") REFERENCES $schema.\"SVNGROUPS\" (\"ID\") ON
												  DELETE CASCADE ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVN_GROUPS_RESPONSIBLE\" IS 'Table of group responsible people'";
  	$result									= db_query_install( $query, $dbh );
  	
	$query									= "CREATE INDEX $schema.\"DELETED_IDX\" ON $schema.\"SVN_GROUPS_RESPONSIBLE\"
												    (
												      \"DELETED\"
												    )";
    $result									= db_query_install( $query, $dbh );
    
	$query									= "CREATE INDEX $schema.\"SVN_GROUPS_RESPONSIBLE_1_IDX\" ON $schema.\"SVN_GROUPS_RESPONSIBLE\"
												    (
												      \"USER_ID\",
												      \"GROUP_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVN_GROUPS_RESPONSIBLE_TRG\" BEFORE
												  INSERT ON $schema.SVN_GROUPS_RESPONSIBLE FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVN_GROUPS_RESPONSIBLE_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVN_GROUPS_RESPONSIBLE_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVN_PROJECTS_MAILINGLISTS\"
												  (
												    \"ID\"               NUMBER(*,0) NOT NULL ENABLE,
												    \"PROJECT_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"MAILINGLISTEN_ID\" NUMBER(*,0) NOT NULL ENABLE,
												    \"CREATED\"          VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"     VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"         VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\"    VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"          VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETD_USER\"      VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVN_PROJECTS_MAILINGLISTS_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"SVN_PROJECTS_MAILINGLISTS_FK1\" FOREIGN KEY (\"PROJECT_ID\") REFERENCES $schema.\"SVNPROJECTS\" (\"ID\") ON
												  DELETE CASCADE ENABLE,
												    CONSTRAINT \"SVN_PROJECTS_MAILINGLISTS_FK2\" FOREIGN KEY (\"MAILINGLISTEN_ID\") REFERENCES $schema.\"SVNMAILINGLISTS\" (\"ID\") ON
												  DELETE CASCADE ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVN_PROJECTS_MAILINGLISTS\" IS 'Table of modules and mailinglist relations'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"MAILINGLISTEN_ID_IDX\" ON $schema.\"SVN_PROJECTS_MAILINGLISTS\"
												    (
												      \"MAILINGLISTEN_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"MAILINGLISTS_1_IDX\" ON $schema.\"SVN_PROJECTS_MAILINGLISTS\"
												    (
												      \"PROJECT_ID\",
												      \"MAILINGLISTEN_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVN_PROJECTS_MAILINGLISTS_TRG\" BEFORE
												  INSERT ON $schema.SVN_PROJECTS_MAILINGLISTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVN_PROJECTS_MAILINGLISTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVN_PROJECTS_MAILINGLISTS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVN_PROJECTS_RESPONSIBLE\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"PROJECT_ID\"    NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVN_PROJECTS_RESPONSIBLE_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVN_PROJECTS_RESPONSIBLE\" IS 'Table of project responsible users'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"PRJ_RESP_DELETED_IDX\" ON $schema.\"SVN_PROJECTS_RESPONSIBLE\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"PRJ_RESP_PROJECT_ID_IDX\" ON $schema.\"SVN_PROJECTS_RESPONSIBLE\"
												    (
												      \"PROJECT_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVN_PROJECTS_RESPONSIBLE_TRG\" BEFORE
												  INSERT ON $schema.SVN_PROJECTS_RESPONSIBLE FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVN_PROJECTS_RESPONSIBLE_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVN_PROJECTS_RESPONSIBLE_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"SVN_USERS_GROUPS\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"GROUP_ID\"      NUMBER(*,0) NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"SVN_USERS_GROUPS_PK\" PRIMARY KEY (\"ID\")  ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"SVN_USERS_GROUPS\" IS 'Table of user group relations'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_USERS_GROUPS_DELETED_IDX\" ON $schema.\"SVN_USERS_GROUPS\"
												    (
												      \"DELETED\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_USERS_GROUPS_GROUP_ID_IDX\" ON $schema.\"SVN_USERS_GROUPS\"
												    (
												      \"GROUP_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"SVN_USERS_GROUPS_USER_ID_IDX\" ON $schema.\"SVN_USERS_GROUPS\"
												    (
												      \"USER_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"SVN_USERS_GROUPS_TRG\" BEFORE
												  INSERT ON $schema.SVN_USERS_GROUPS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT SVN_USERS_GROUPS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"SVN_USERS_GROUPS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
    $query									= "CREATE TABLE $schema.\"USERS_RIGHTS\"
												  (
												    \"ID\"            NUMBER(*,0) NOT NULL ENABLE,
												    \"USER_ID\"       NUMBER(*,0) NOT NULL ENABLE,
												    \"RIGHT_ID\"      NUMBER(*,0) NOT NULL ENABLE,
												    \"ALLOWED\"       VARCHAR2(255 BYTE) DEFAULT 'none' NOT NULL ENABLE,
												    \"CREATED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"CREATED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    \"MODIFIED\"      VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"MODIFIED_USER\" VARCHAR2(255 BYTE) DEFAULT '',
												    \"DELETED\"       VARCHAR2(14 BYTE) DEFAULT '00000000000000' NOT NULL ENABLE,
												    \"DELETED_USER\"  VARCHAR2(255 BYTE) DEFAULT '',
												    CONSTRAINT \"USERS_RIGHTS_PK\" PRIMARY KEY (\"ID\")  ENABLE,
												    CONSTRAINT \"USERS_RIGHTS_ALLOWED_CHECK\" CHECK (ALLOWED = 'none'
												  OR ALLOWED                                               = 'read'
												  OR ALLOWED                                               = 'add'
												  OR ALLOWED                                               = 'edit'
												  OR ALLOWED                                               = 'delete') ENABLE,
												    CONSTRAINT \"USERS_RIGHTS_RIGHT_ID_FKEY\" FOREIGN KEY (\"RIGHT_ID\") REFERENCES $schema.\"RIGHTS\" (\"ID\") ON
												  DELETE CASCADE ENABLE,
												    CONSTRAINT \"USERS_RIGHTS_USER_ID_FKEY\" FOREIGN KEY (\"USER_ID\") REFERENCES $schema.\"SVNUSERS\" (\"ID\") ON
												  DELETE CASCADE ENABLE
												  )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "COMMENT ON TABLE $schema.\"USERS_RIGHTS\" IS 'Table of granted user rights'";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"USERS_RIGHTS_RIGHT_ID_IDX\" ON $schema.\"USERS_RIGHTS\"
												    (
												      \"RIGHT_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE INDEX $schema.\"USERS_RIGHTS_USER_ID_IDX\" ON $schema.\"USERS_RIGHTS\"
												    (
												      \"USER_ID\"
												    )";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "CREATE OR REPLACE TRIGGER $schema.\"USERS_RIGHTS_TRG\" BEFORE
												  INSERT ON $schema.USERS_RIGHTS FOR EACH ROW BEGIN <<COLUMN_SEQUENCES>> BEGIN IF :NEW.ID IS NULL THEN
												  SELECT USERS_RIGHTS_SEQ.NEXTVAL INTO :NEW.ID FROM DUAL;
												END IF;
												END COLUMN_SEQUENCES;
												END;";
	$result									= db_query_install( $query, $dbh );
	
	$query									= "ALTER TRIGGER $schema.\"USERS_RIGHTS_TRG\" ENABLE";
    $result									= db_query_install( $query, $dbh );
    
	$ret									= array();
	
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( $error." - ". $tMessage );
	
	return $ret;	
}


function createMySQLDatabaseTables( $dbh, $charset, $collation ) {
	
	$error									= 0;
	$tMessage								= "";
	
	$query									= "CREATE TABLE IF NOT EXISTS `log` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`logtimestamp` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`username` varchar(255) NOT NULL,
  													`ipaddress` varchar(15) NOT NULL,
  													`logmessage` longtext NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_timestamp` (`logtimestamp`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of log messages';";
	$result									= db_query_install( $query, $dbh );
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `preferences` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`user_id` int(10) NOT NULL,
  													`page_size` int(4) NOT NULL,
  													`user_sort_fields` varchar(255) NOT NULL,
  													`user_sort_order` varchar(255) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_userid` (`user_id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of user preferences';";
		$result								= db_query_install( $query, $dbh );
		
	}

	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `rights` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`right_name` varchar(255) NOT NULL,
  													`description_en` varchar(255) NOT NULL,
  													`description_de` varchar(255) NOT NULL,
  													`allowed_action` enum('none','read','edit','delete') NOT NULL default 'none',
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of rights to grant to users';";
		$result								= db_query_install( $query, $dbh );
		
	}

	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `sessions` (
  													`session_id` varchar(255) NOT NULL,
  													`session_expires` int(10) unsigned NOT NULL default '0',
  													`session_data` text,
  													PRIMARY KEY  (`session_id`),
  													KEY `idx_expires` (`session_expires`)
												) ENGINE=MyISAM DEFAULT CHARSET=$charset COLLATE=$collation;";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svn_access_rights` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`project_id` int(10) NOT NULL,
  													`user_id` int(10) NOT NULL,
  													`group_id` int(10) NOT NULL,
  													`path` longtext NOT NULL,
  													`valid_from` varchar(14) NOT NULL COMMENT 'JHJJMMTT',
  													`valid_until` varchar(14) NOT NULL COMMENT 'JHJJMMTT',
  													`access_right` enum('none','read','write') NOT NULL default 'none',
  													`recursive` enum('yes','no') NOT NULL default 'yes',
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_projectid` (`project_id`),
  													KEY `idx_userid` (`user_id`),
  													KEY `idx_groupid` (`group_id`),
  													KEY `idx_path` (`path`(512)),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of user or group access rights';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svn_projects_mailinglists` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`project_id` int(10) unsigned NOT NULL,
  													`mailinglisten_id` int(10) unsigned NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `moduleid` (`project_id`,`mailinglisten_id`),
  													KEY `mailinglistenid` (`mailinglisten_id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of modules and mailinglist relations';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svn_projects_responsible` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`project_id` int(10) NOT NULL,
  													`user_id` int(10) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_projectid` (`project_id`),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of project responsible users';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svn_users_groups` (
  													`id` int(10) NOT NULL auto_increment,
  													`user_id` int(10) unsigned NOT NULL,
  													`group_id` int(10) unsigned NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_groupid` (`group_id`),
  													KEY `idx_userid` (`user_id`),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of user group relations';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svngroups` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`groupname` varchar(255) NOT NULL,
  													`description` varchar(255) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `groupname` (`groupname`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of svn user groups';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svnmailinglists` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`mailinglist` varchar(255) NOT NULL,
  													`emailaddress` varchar(255) NOT NULL,
  													`description` mediumtext NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of available svn mailing lists';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svnprojects` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`repo_id` int(10) unsigned NOT NULL,
  													`svnmodule` varchar(255) NOT NULL,
  													`modulepath` varchar(255) NOT NULL,
  													`description` varchar(255) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,	
  													PRIMARY KEY  (`id`),
  													KEY `idx_repoid` (`repo_id`),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of svn modules';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svnrepos` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`reponame` varchar(255) NOT NULL,
  													`repopath` varchar(255) NOT NULL,
  													`repouser` varchar(255) NOT NULL,
  													`repopassword` varchar(255) NOT NULL,
  													`different_auth_files` tinyint(1) NOT NULL DEFAULT '0',
  													`auth_user_file` varchar(255) NOT NULL,
  													`svn_access_file` varchar(255) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of svn repositories';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svnusers` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`userid` varchar(255) NOT NULL,
  													`name` varchar(255) NOT NULL,
  													`givenname` varchar(255) NOT NULL,
  													`password` varchar(255) NOT NULL default '',
  													`passwordexpires` tinyint(1) NOT NULL default '1',
  													`locked` tinyint(1) NOT NULL default '0',
  													`emailaddress` varchar(255) NOT NULL default '',
  													`admin` char(1) NOT NULL default 'n',
  													`user_mode` varchar(10) NOT NULL,
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													`password_modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`superadmin` tinyint(1) NOT NULL default '0',
  													`securityquestion` varchar(255) default '',
  													`securityanswer` varchar(255) default '',
  													PRIMARY KEY  (`id`),
  													UNIQUE KEY `idx_userid` (`userid`,`deleted`),
  													KEY `idx_mode` (`locked`),
  													KEY `idx_passwordexpires` (`passwordexpires`),
  													KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of all known users';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `workinfo` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`usertimestamp` timestamp NOT NULL default CURRENT_TIMESTAMP,
  													`action` varchar(255) NOT NULL,
  													`status` varchar(255) NOT NULL,
  													`type` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='table of workinfo';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `help` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`topic` varchar(255) NOT NULL,
  													`headline_en` varchar(255) NOT NULL,
  													`headline_de` varchar(255) NOT NULL,
  													`helptext_de` longtext NOT NULL,
  													`helptext_en` longtext NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_topic` (`topic`),
  													FULLTEXT KEY `helptext_de` (`helptext_de`),
  													FULLTEXT KEY `helptext_en` (`helptext_en`)
												) ENGINE=MyISAM  DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of help texts';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `users_rights` (
  													`id` int(10) unsigned NOT NULL auto_increment,
  													`user_id` int(10) NOT NULL,
  													`right_id` int(10) NOT NULL,
  													`allowed` enum('none','read','add','edit','delete') NOT NULL default 'none',
  													`created` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`created_user` varchar(255) NOT NULL,
  													`modified` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`modified_user` varchar(255) NOT NULL,
  													`deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
  													`deleted_user` varchar(255) NOT NULL,
  													PRIMARY KEY  (`id`),
  													KEY `idx_user_id` (`user_id`),
  													KEY `idx_right_id` (`right_id`)
												) ENGINE=InnoDB DEFAULT CHARSET=$charset COLLATE=$collation COMMENT='Table of granted user rights';";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE `svn_groups_responsible` (
												  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
												  `user_id` int(10) unsigned NOT NULL,
												  `group_id` int(10) unsigned NOT NULL,
												  `allowed` enum('none','read','edit','delete') NOT NULL DEFAULT 'none',
												  `created` varchar(14) NOT NULL DEFAULT '00000000000000',
												  `created_user` varchar(255) NOT NULL,
												  `modified` varchar(14) NOT NULL DEFAULT '00000000000000',
												  `modified_user` varchar(255) NOT NULL,
												  `deleted` varchar(14) NOT NULL DEFAULT '00000000000000',
												  `deleted_user` varchar(255) NOT NULL,
												  PRIMARY KEY (`id`),
												  KEY `idx_projectid_userid_groupid` (`user_id`,`group_id`),
												  KEY `idx_deleted` (`deleted`)
												) ENGINE=InnoDB  DEFAULT CHARSET=$charset COLLATE=$collation;";
		$result								= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		
		$query								= "CREATE TABLE IF NOT EXISTS `svnpasswordreset` (
  												  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
												  `unixtime` int(11) NOT NULL,
												  `username` varchar(255) NOT NULL,
												  `token` varchar(255) NOT NULL,
												  `idstr` varchar(255) NOT NULL,
												  PRIMARY KEY (`id`)
												) ENGINE=InnoDB  DEFAULT CHARSET=$charset;";
		$result								= db_query_install( $query, $dbh );
		
	}
		
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( $error." - ". $tMessage );
	
	return $ret;
	
}

function loadDbData( $dbh, $charset, $collation, $databasetype ) {
	
	db_ta( 'BEGIN', $dbh );
		
	$error								= 0;
	$tMessage							= "";
	$dbnow								= db_now();
	$query								= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('User admin', 'Administer users', 'Benutzer verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
	$result								= db_query_install( $query, $dbh );
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Group admin', 'Administer groups', 'Gruppen verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
			
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Project admin', 'Administer projects', 'Projecte verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Repository admin', 'Administer repositories', 'Repositories verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {			
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Access rights admin', 'Administer repository access rights', 'Repository Zugriffsrechte verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Create files', 'Create access files', 'Zugriffs-Kontroll-Dateien generieren', 'edit', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		if( mysql_errno() != 0 ) {
			$error						= 1;
			$tMessage					= sprintf( _("Error inserting data into rights table: %s" ), mysql_error() );
		}
		
	}
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Reports', 'Show reports', 'Berichte ansehen', 'read', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		db_ta( 'COMMIT', $dbh );
	} else {
		db_ta( 'ROLLBACK', $dbh );
	}
		
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( $error." - ". $tMessage );
	
	return $ret;
}

function loadPostgresDbData( $dbh, $charset, $collation, $databasetype, $schema ) {
	
	if( $schema != "" ) {
		$query							= "SET search_path = '$schema'";
	} else {
		$query							= "SET search_path = ";
	}
	$result								= db_query_install( $query, $dbh );
	
	db_ta( 'BEGIN', $dbh );
		
	$error								= 0;
	$tMessage							= "";
	$dbnow								= db_now();
	$query								= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('User admin', 'Administer users', 'Benutzer verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
	$result								= db_query_install( $query, $dbh );
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Group admin', 'Administer groups', 'Gruppen verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
			
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Project admin', 'Administer projects', 'Projecte verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Repository admin', 'Administer repositories', 'Repositories verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {			
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Access rights admin', 'Administer repository access rights', 'Repository Zugriffsrechte verwalten', 'delete', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Create files', 'Create access files', 'Zugriffs-Kontroll-Dateien generieren', 'edit', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		if( mysql_errno() != 0 ) {
			$error						= 1;
			$tMessage					= sprintf( _("Error inserting data into rights table: %s" ), mysql_error() );
		}
		
	}
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Reports', 'Show reports', 'Berichte ansehen', 'read', '$dbnow', 'install', '00000000000000', '', '00000000000000', '')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		db_ta( 'COMMIT', $dbh );
	} else {
		db_ta( 'ROLLBACK', $dbh );
	}
		
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( $error." - ". $tMessage );
	
	return $ret;
}

function loadOracleDbData( $dbh, $charset, $collation, $databasetype, $schema ) {
	
	db_ta( 'BEGIN', $dbh );
		
	$error								= 0;
	$tMessage							= "";
	$dbnow								= db_now();
	$query								= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('User admin', 'Administer users', 'Benutzer verwalten', 'delete', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
	$result								= db_query_install( $query, $dbh );
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Group admin', 'Administer groups', 'Gruppen verwalten', 'delete', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
		$result							= db_query_install( $query, $dbh );
			
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Project admin', 'Administer projects', 'Projecte verwalten', 'delete', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Repository admin', 'Administer repositories', 'Repositories verwalten', 'delete', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {			
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Access rights admin', 'Administer repository access rights', 'Repository Zugriffsrechte verwalten', 'delete', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ' )";
		$result							= db_query_install( $query, $dbh );
		
	}	
	if( $error == 0 ) {
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Create files', 'Create access files', 'Zugriffs-Kontroll-Dateien generieren', 'edit', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
		$result							= db_query_install( $query, $dbh );
		if( mysql_errno() != 0 ) {
			$error						= 1;
			$tMessage					= sprintf( _("Error inserting data into rights table: %s" ), mysql_error() );
		}
		
	}
		
	if( $error == 0 ) {
	
		$query							= "INSERT INTO $schema.rights (right_name, description_en, description_de, allowed_action, created, created_user, modified, modified_user, deleted, deleted_user) " .
										  "VALUES ('Reports', 'Show reports', 'Berichte ansehen', 'read', '$dbnow', 'install', '00000000000000', ' ', '00000000000000', ' ')";
		$result							= db_query_install( $query, $dbh );
		
	}
	
	if( $error == 0 ) {
		db_ta( 'COMMIT', $dbh );
	} else {
		db_ta( 'ROLLBACK', $dbh );
	}
		
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( $error." - ". $tMessage );
	
	return $ret;
}

function createAdmin( $userid, $password, $givenname, $name, $emailaddress, $databasetype, $dbh, $schema ) {
	
	db_ta( 'BEGIN', $dbh );
	
	$error									= 0;
	$tMessage								= "";
	$pwcrypt								= $dbh->qstr( pacrypt( $password ), get_magic_quotes_gpc() );
	$dbnow									= db_now();
	if( $databasetype == "oci8" ) {
		$query								= "INSERT INTO $schema.svnusers (userid, name, givenname, password, emailaddress, user_mode, admin, created, created_user, password_modified, superadmin) " .
											  "VALUES ('$userid', '$name', '$givenname', $pwcrypt, '$emailaddress', 'write', 'y', '$dbnow', 'install', '$dbnow', 1)";
	} else {
		$query								= "INSERT INTO svnusers (userid, name, givenname, password, emailaddress, user_mode, admin, created, created_user, password_modified, superadmin) " .
											  "VALUES ('$userid', '$name', '$givenname', $pwcrypt, '$emailaddress', 'write', 'y', '$dbnow', 'install', '$dbnow', 1)";
	}
	$result									= db_query_install( $query, $dbh );
	$uid									= db_get_last_insert_id( 'svnusers', 'id', $dbh );
	db_ta( 'COMMIT', $dbh );
	#error_log( "uid read: $uid" );
		
	$query									= "SELECT id, allowed_action " .
											  "  FROM rights " .
											  " WHERE deleted = '00000000000000'";
	#error_log( $query );
	$result									= db_query_install( $query, $dbh );
	#error_log( "rows = ".$result['rows'] );
	
	while( ($error == 0) and ($row = db_assoc( $result['result'] )) ) {
		
		$allowed							= $row['allowed_action'];
		$id									= $row['id'];
		$dbnow								= db_now();
		if( $databasetype == "oci8" ) {
			$query							= "INSERT INTO $schema.users_rights (user_id, right_id, allowed, created, created_user) " .
											  "VALUES ($uid, $id, '$allowed', '$dbnow', 'install')";
		} else {
			$query							= "INSERT INTO users_rights (user_id, right_id, allowed, created, created_user) " .
											  "VALUES ($uid, $id, '$allowed', '$dbnow', 'install')";
		}
		#error_log( $query );
		$resultinsert						= db_query_install( $query, $dbh );
		
		if( mysql_errno() != 0 ) {
			
			$error							= 1;
			$tMessage						= sprintf( _("Error inserting user access right for admin: %s" ), mysql_error() );
			
		}			
		
	}
	
	if( $error == 0 ) {
		db_ta( 'COMMIT', $dbh );
	} else {
		db_ta( 'ROLLBACK', $dbh );
	}
	
	$ret									= array();
	$ret['error']							= $error;
	$ret['errormsg']						= $tMessage;
	
	#error_log( "createAdmin: ".$error." - ". $tMessage );
	
	return $ret;
	
}

initialize_i18n();
 
if ($_SERVER['REQUEST_METHOD'] == "GET") {
   
   	$CONF									= array();
	$CONF['database_type']					= "mysql";
	$CONF['database_innodb']                = 'YES';
	$CONF['copyright']						= '(C) 2008 Thomas Krieger (tom(at)svn-access-manager(dot)org)';
	
    # common locations where to find grep and svn under linux/unix
   	$svnpath								= array('/usr/local/bin/svn', '/usr/bin/svn', '/bin/svn');
   	$svnadminpath							= array('/usr/local/bin/svnadmin', '/usr/bin/svnadmin', '/bin/svnadmin');
   	$greppath								= array('/usr/local/bin/grep', '/usr/bin/grep', '/bin/grep');
   	$apachepath								= array('/etc/init.d/httpd', '/etc/init.d/apache2', '/etc/init.d/apache');
   	
   	$tCreateDatabaseTablesYes				= "checked";
   	$tCreateDatabaseTablesNo				= "";
   	$tDropDatabaseTablesYes					= "checked";
   	$tDropDatabaseTablesNo					= "";
   	$tDatabaseMySQL							= "checked";
   	$tDatabasePostgreSQL					= "";
   	$tDatabaseOracle						= "";
   	$tUseSvnAccessFileYes					= "";
	$tUseSvnAccessFileNo					= "checked";
	$tUseAuthUserFileYes					= "";
	$tUseAuthUserFileNo						= "checked";
	$tLoggingYes							= "checked";
	$tLoggingNo								= "";
	$tAccessControlLevelDirs				= "checked";
	$tAccessControlLevelFiles				= "";
   	$tPageSize								= "30";
   	$tJavaScriptYes							= "checked";
   	$tJavaScriptNo							= "";
   	$tMinAdminPwSize						= 14;
   	$tMinUserPwSize							= 8;
   	$tSessionInDatabaseYes					= "checked";
   	$tSessionInDatabaseNo					= "";
   	$tMd5Yes								= "checked";
   	$tMd5No									= "";
   	$tViewvcConfigYes						= "";
   	$tViewvcConfigNo						= "checked";
   	$tGrepCommand							= "";
   	$tSvnCommand							= "";
   	$tSvnadminCommand						= "";
   	$tViewvcRealm							= "ViewVC Access Control";
   	$tViewvcAlias							= "/viewvc";
   	$tViewvcApacheReload					= "";
   	$tPerRepoFilesYes						= "";
   	$tPerRepoFilesNo						= "checked";
   	$tDatabaseCharset						= "latin1";
   	$tDatabaseCollation						= "latin1_german1_ci";
   	$tDatabaseSchema						= "";
   	$tDatabaseTablespace					= "";
   	$tWebsiteCharset						= "iso8859-15";
   	$tLpwMailSender							= "";
   	$tLpwLinkValid							= "";
   	$tErrors								= array();
   	
   	for( $i = 0; $i < count($svnpath); $i++ ) {
   		if( file_exists( $svnpath[$i] ) ) {
   			if( $tSvnCommand == "" ) {
   				$tSvnCommand				= $svnpath[$i];
   			}
   		}
   	}
   	
   	for( $i = 0; $i < count($svnadminpath); $i++ ) {
   		if( file_exists( $svnadminpath[$i] ) ) {
   			if( $tSvnadminCommand == "" ) {
   				$tSvnadminCommand				= $svnadminpath[$i];
   			}
   		}
   	}
   	
   	for( $i=0; $i < count($greppath ); $i++ ) {
   		if( file_exists( $greppath[$i] ) ) {
   			if( $tGrepCommand == "" ) {
   				$tGrepCommand				= $greppath[$i];
   			}
   		}
   	}
   
   	for( $i=0; $i < count($apachepath); $i++ ) {
   		if( file_exists($apachepath[$i] ) ) {
   			if( $tViewvcApacheReload == "" ) {
   				$tViewvcApacheReload 		= "sudo ".$apachepath[$i]." graceful";
   			}
   		}
   	}
   	
   	include ("../templates/install.tpl");
   
}

if ($_SERVER['REQUEST_METHOD'] == "POST") {

	$tResult								= array();
	$tErrors								= array();
	$CONF									= array();
	$CONF['database_type']					= "mysql";
	$CONF['database_innodb']                = 'YES';
	$CONF['copyright']						= '(C) 2008 Thomas Krieger (tom(at)svn-access-manager(dot)org)';
	
	$tCreateDatabaseTables					= isset( $_POST['fCreateDatabaseTables'] ) 	? ( $_POST['fCreateDatabaseTables'] )	: "";
	$tDropDatabaseTables					= isset( $_POST['fDropDatabaseTables'] ) 	? ( $_POST['fDropDatabaseTables'] )		: "";
	$tDatabase								= isset( $_POST['fDatabase'] )				? ( $_POST['fDatabase'] )				: "";
	$tDatabaseHost							= isset( $_POST['fDatabaseHost'] )			? ( $_POST['fDatabaseHost'] )			: "";
	$tDatabaseUser							= isset( $_POST['fDatabaseUser'] )			? ( $_POST['fDatabaseUser'] )			: "";
	$tDatabasePassword						= isset( $_POST['fDatabasePassword'] )		? ( $_POST['fDatabasePassword'] )		: "";
	$tDatabaseName							= isset( $_POST['fDatabaseName'] )			? ( $_POST['fDatabaseName'] )			: "";
	$tDatabaseSchema						= isset( $_POST['fDatabaseSchema'] )		? ( $_POST['fDatabaseSchema'] )			: "";
	$tDatabaseTablespace					= isset( $_POST['fDatabaseTablespace'] )	? ( $_POST['fDatabaseTablespace'] )		: "";
	$tSessionInDatabase						= isset( $_POST['fSessionInDatabase'])		? ( $_POST['fSessionInDatabase'] )		: "";
	$tDatabaseCharset						= isset( $_POST['fDatabaseCharset'] )		? ( $_POST['fDatabaseCharset'] )		: "";
	$tDatabaseCollation						= isset( $_POST['fDatabaseCollation'] )		? ( $_POST['fDatabaseCollation'] )		: "";
	$tWebsiteCharset						= isset( $_POST['fWebsiteCharset'] )		? ( $_POST['fWebsiteCharset'] )			: "";
	$tLpwMailSender							= isset( $_POST['fLpwMailSender'] )			? ( $_POST['fLpwMailSender'] )			: "";
	$tLpwLinkValid							= isset( $_POST['fLpwLinkValid'] ) 			? ( $_POST['fLpwLinkValid'] )			: "";
	$tUsername								= isset( $_POST['fUsername'] ) 				? ( $_POST['fUsername'] )				: "";
	$tPassword								= isset( $_POST['fPassword'] )				? ( $_POST['fPassword'] )				: "";
	$tPassword2								= isset( $_POST['fPassword2'] )				? ( $_POST['fPassword2'] )				: "";
	$tGivenname								= isset( $_POST['fGivenname'] ) 			? ( $_POST['fGivenname'] )				: "";
	$tName									= isset( $_POST['fName'] )					? ( $_POST['fName'] )					: "";
	$tUseSvnAccessFile						= isset( $_POST['fUseSvnAccessFile'] )		? ( $_POST['fUseSvnAccessFile'] )		: "";
	$tSvnAccessFile							= isset( $_POST['fSvnAccessFile'] )			? ( $_POST['fSvnAccessFile'] )			: "";
	$tAccessControlLevel					= isset( $_POST['fAccessControlLevel'] )	? ( $_POST['fAccessControlLevel'] )		: "";
	$tUseAuthUserFile						= isset( $_POST['fUseAuthUserFile'] )		? ( $_POST['fUseAuthUserFile'] )		: "";
	$tAuthUserFile							= isset( $_POST['fAuthUserFile'] )			? ( $_POST['fAuthUserFile'] )			: "";
	$tSvnCommand							= isset( $_POST['fSvnCommand'] )			? ( $_POST['fSvnCommand'] )				: "";
	$tSvnadminCommand						= isset( $_POST['fSvnadminCommand'] )		? ( $_POST['fSvnadminCommand'] )		: "";
	$tGrepCommand							= isset( $_POST['fGrepCommand'] )			? ( $_POST['fGrepCommand'] )			: "";
	$tLogging								= isset( $_POST['fLogging'] )				? ( $_POST['fLogging'] )				: "";
	$tJavaScript							= isset( $_POST['fJavaScript'] )			? ( $_POST['fJavaScript'] )				: "";
	$tPageSize								= isset( $_POST['fPageSize'] )				? ( $_POST['fPageSize'] )				: 30;
	$tMinAdminPwSize						= isset( $_POST['fMinAdminPwSize'] )		? ( $_POST['fMinAdminPwSize'] )			: 14;
	$tMinUserPwSize							= isset( $_POST['fMinUserPwSize'] 	)		? ( $_POST['fMinUserPwSize'] )			: 8;
	$tAdminEmail							= isset( $_POST['fAdminEmail'] )			? ( $_POST['fAdminEmail'] )				: "";
	$tUseMd5								= isset( $_POST['fUseMd5'] )				? ( $_POST['fUseMd5'] ) 				: "";
	$tViewvcConfig							= isset( $_POST['fViewvcConfig'] )			? ( $_POST['fViewvcConfig'] )			: "";
	$tViewvcConfigDir						= isset( $_POST['fViewvcConfigDir'] ) 		? ( $_POST['fViewvcConfigDir'] )		: "";
	$tViewvcAlias							= isset( $_POST['fViewvcAlias'] )			? ( $_POST['fViewvcAlias'] )			: "";
	$tViewvcApacheReload					= isset( $_POST['fViewvcApacheReload'] )	? ( $_POST['fViewvcApacheReload'] )		: "";
	$tViewvcRealm							= isset( $_POST['fViewvcRealm'] )			? ( $_POST['fViewvcRealm'] )			: ""; 
	$tPerRepoFiles							= isset( $_POST['fPerRepoFiles'] )			? ( $_POST['fPerRepoFiles'] )			: "";
	
	$tMessage								= "";
	$error									= 0;
	
	if ( file_exists ( realpath ( "./config/config.inc.php" ) ) ) {
		
		$configfile							= realpath ( "./config/config.inc.php" );
		
	} elseif( file_exists ( realpath ( "../config/config.inc.php" ) ) ) {
		
		$configfile							= realpath ( "../config/config.inc.php" );
		
	} else {
		
		$configfile							= "../config/config.inc.php";
		
	}
	
	$configpath								= dirname( $configfile );
	$confignew								= $configpath."/config.inc.php.new";
	$configtmpl								= $configpath."/config.inc.php.tpl";
	
	
	if( $tJavaScript == "YES" ) {
		$tJavaScriptYes						= "checked";
		$tJavaScriptNo						= "";
	} else {
		$tJavaScriptYes						= "";
		$tJavaScriptNo						= "checked";
	}
	
	if( $tLogging == "YES" ) {
		$tLoggingYes						= "checked";
		$tLoggingNo							= "";
	} else {
		$tLoggingYes						= "";
		$tLoggingNo							= "checked";
	}
	
	if( $tUseAuthUserFile == "YES" ) {
		$tUseAuthUserFileYes				= "checked";
		$tUseAuthUSerFileNo					= "";	
	} else {
		$tUseAuthUserFileYes				= "";
		$tUseAuthUserFileNo					= "checked";
	}
	
	if( $tUseSvnAccessFile == "YES" ) {
		$tUseSvnAccessFileYes				= "checked";
		$tUseSvnAccessFileNo				= "";
	} else {
		$tUseSvnAccessFileYes				= "";
		$tUseSvnAccessFileNo				= "checked";
	}
	
	if( $tAccessControlLevel == "dirs" ) {
		$tAccessControlLevelDirs			= "checked";
		$tAccessControlLevelFiles			= "";
	} else {
		$tAccessControlLevelDirs			= "";
		$tAccessControlLevelFiles			= "checked";
	}
	
	if( $tPerRepoFiles == "YES" ) {
		$tPerRepoFilesYes					= "checked";
		$tPerRepoFilesNo					= "";
	} else {
		$tPerRepoFilesYes					= "";
		$tPerRepoFilesNo					= "checked";
	}
	
	if( $tCreateDatabaseTables == "YES" ) {
		$tCreateDatabaseTablesYes			= "checked";
		$tCreateDatabaseTablesNo			= "";
	} else {
		$tCreateDatabaseTablesYes			= "";
		$tCreateDatabaseTablesNo			= "checked";
	}
	
	if( $tDropDatabaseTables == "YES" ) {
		$tDropDatabaseTablesYes				= "checked";
		$tDropDatabaseTablesNo				= "";
	} else {
		$tDropDatabaseTablesYes				= "";
		$tDropDatabaseTablesNo				= "checked";
	}
	
	if( $tDatabase == "mysql" ) {
		$tDatabaseMySQL						= "checked";
		$tDatabasePostgres					= "";
		$tDatabaseOracle					= "";
	} elseif( $tDatabase == "postgres8" ) {
		$tDatabaseMySQL						= "";
		$tDatabasePostgreSQL				= "checked";
		$tDatabaseOracle					= "";
	} elseif( $tDatabase == "oci8" ) {
		$tDatabaseMySQL						= "";
		$tDatabasePostgres					= "";
		$tDatabaseOracle					= "checked";
	} else {
		$tDatabaseMySQL						= "";
		$tDatabasePostgreSQL				= "";
	}
	
	if( $tSessionInDatabase == "YES" ) {
		$tSessionInDatabaseYes				= "checked";
		$tSessionInDatabaseNo				= "";
	} else {
		$tSessionInDatabaseYes				= "";
		$tSessionInDatabaseNo				= "checked";
	}
	
	if( $tUseMd5 == "md5" ) {
		$tMd5Yes							= "checked";
		$tMd5No								= "";
		$CONF['pwcrypt']					= "md5";
	} else {
		$tMd5Yes							= "";
		$tMd5No								= "checked";
		$CONF['pwcrypt']					= "crypt";
	}
	
	if( $tViewvcConfig == "YES" ) {
		$tViewvcConfigYes					= "checked";
		$tViewvcConfigNo					= "";
	} else {
		$tViewvcConfigYes					= "";
		$tViewvcConfigNo					= "checked";
	}
	
	if( $error == 0 ) {
			
		if( $tDatabaseHost == "" ) {
			
			$tErrors[]					= _("Database host is missing!");
			$error						= 1;
			
		}
		
		if( $tDatabaseUser == "" ) {
			
			$tErrors[]					= _("Database user is missing!");
			$error						= 1;
			
		} 
		
		if( $tDatabaseName == "" ) {
			
			$tErrors[]					= _("Database name is missing!" );
			$error						= 1;
			
		} 
		
		if( $tDatabaseCharset == "" ) {
			
			$tErrors[]					= _("Database charset is missing!" );
			$error						= 1;
			
		} 
		
		if( $tDatabaseCollation == "" ) {
			
			$tErrors[]					= _("Database collation is missing!" );
			$error						= 1;
			
		}
		
		if( $tWebsiteCharset == "" ) {
			
			$tErrors[]						= _("Website charset is missing!");
			$error							= 1;
			
		}
		
		if( $tLpwMailSender == "" ) {
			
			$tErrors[]						= _("Lost password mail sender address is missing!");
			$error							= 1;
			
		} elseif( ! check_email( $tLpwMailSender ) ) {
			
			$tErrors[]						= sprintf( _("Lost password mail sender address %s is not a valid email address!" ), $tLpwMailSender );
			$error							= 1;
			
		}
		
		if( $tLpwLinkValid == "" ) {
			
			$tErrors[]						= _("Lost password days link valid missing!");
			$error							= 1;
			
		} elseif( ! is_numeric( $tLpwLinkValid) ) {
			
			$tErrors[]						= _("Lost password days link valid must be numeric!" );
			$error							= 1;
			
		}
		
		if( $tUsername == "" ) {
			
			$tErrors[]						= _("Administrator username is missing!" );
			$error							= 1;
			
		} elseif( ($tPassword == "") or ($tPassword2 == "") ) {
			
			$tErrors[]						= _("Administrator password is missing!" );
			$error							= 1;
			
		} elseif( $tPassword != $tPassword2 ) {
			
			$tErrors[]						= _("Administrator passwords do not match!" );
			$error							= 1;
			
		} elseif( checkPasswordPolicy( $tPassword, 'y' ) == 0 ) {
			
			$tErrors[]						= _("Administrator password is not strong enough!" );
			$error							= 1;
			
		} elseif( $tName == "" ) {
			
			$tErrors[]						= _("Administrator name is missing!" );
			$error							= 1;
			
		} elseif( $tAdminEmail == "" ) {
			
			$tErrors[]						= _("Administrator email address is missing!" );
			$error							= 1;
			
		} elseif( ! check_email($tAdminEmail) ) {
			
			$tErrors[]						= sprintf( _("Administrator email address %s is not a valid email address!"), $tAdminEmail );
			$error							= 1;
			
		}
		
		if( $tUseSvnAccessFile == "YES" ) {
			
			if( $tSvnAccessFile == "" ) {
				
				$tErrors[]					= _( "SVN Access File is missing!" );
				$error						= 1;
				
			}
		}
		
		if( $tUseSvnAccessFile == "YES" ) {
			
			if( $tAuthUserFile == "" ) {
				
				$tErrors[]					= _("Auth user file is missing!" );
				$error						= 1;
				
			}
		}
		
		if( $tViewvcConfig == "YES" ) {
		
			if( $tViewvcConfigDir == "" ) {
				
				$tErrors[]					= _("ViewVC configuration directory is missing!");
				$error						= 1;
				
			} elseif( $tViewvcAlias == "" ) {
				
				$tErrors[]					= _("ViewVC webserver alias is missing!");
				$error						= 1;
				
			} elseif( $tViewvcRealm == "" ) {
				
				$tErrors[]					= _("ViewVC realm is missing!" );
				$error						= 1;
				
			}
		}
		
		if( $tSvnCommand == "" ) {
			
			$tErrors[]						= _("SVN command is missing!" );
			$error							= 1;
			
		} elseif( $tSvnadminCommand == "" ) { 
		
			$tErrors[]						= _("Svnadmin command missing!" );
			$error							= 1;
			
		} elseif( $tGrepCommand == "" ) {
			
			$tErrors[]						= _("Grep command is missinbg!" );
			$error							= 1;
			
		} elseif( $tPageSize == "" ) {
			
			$tErrors[]						= _("Page size is missing!" );
			$error							= 1;
			
		} elseif( ! is_numeric($tPageSize) ) {
			
			$tErrors[]						= _("Page size is not numeric!" );
			$error							= 1;
			
		} elseif( ! is_numeric( $tMinAdminPwSize) ) {
			
			$tErrors[]						= _("Minimal administrator password length is not numeric!" );
			$error							= 1;
			
		} elseif( ! is_numeric( $tMinUserPwSize ) ) {
			
			$tErrors[]						= _("Minimal user password length is not numeric!" );
			$error							= 1;
			
		}
		
	}
	
	if( $error == 0 ) {
			
		if( $fh_in = @fopen( $configtmpl, "r" ) ) {
			
			$viewvcconf					= $tViewvcConfigDir."/viewvc-apache.conf";
			$viewvcgroups				= $tViewvcConfigDir."/viewvc-groups";
			$content 					= fread ( $fh_in, filesize ($configtmpl));
			@fclose( $fh_in );
			
			$cmd 						= "$tSvnadminCommand help create";
			exec( $cmd, $output, $retcode );
			if( $retcode == 0 ) {
				
				$treffer 				= preg_grep( '/\-\-pre\-(.*)\-compatible/', $output );
				
				if( count( $treffer ) > 0 ) { 
					
					foreach( $treffer as $entry ) {
		
					        $entry 		= explode( ":", $entry);
					        $entry 		= $entry[0];
					        $entry 		= preg_replace( '/^\s+/', '', $entry );
					        $entry 		= preg_replace( '/\s+$/', '', $entry );
					
					}
		
					$preCompatible		= $entry;
					
				} else {
					$preCompatible		= "--pre-1.4-compatible";
				}
				
			} else {
				$preCompatible			= "--pre-1.4-compatible";
			}
			
			$content					= str_replace( '###DBTYPE###', $tDatabase, $content );
			$content 					= str_replace( '###DBHOST###', $tDatabaseHost, $content );
			$content					= str_replace( '###DBUSER###', $tDatabaseUser, $content );
			$content					= str_replace( '###DBPASS###', $tDatabasePassword, $content );
			$content					= str_replace( '###DBNAME###', $tDatabaseName, $content );
			$content					= str_replace( '###DBSCHEMA###', $tDatabaseSchema, $content );
			$content					= str_replace( '###DBTABLESPACE###', $tDatabaseTablespace, $content );
			$content					= str_replace( '###DBCHARSET###', $tDatabaseCharset, $content );
			$content					= str_replace( '###DBCOLLATION###', $tDatabaseCollation, $content );
			$content					= str_replace( '###USELOGGING###', $tLogging, $content );
			$content					= str_replace( '###PAGESIZE###', $tPageSize, $content );
			$content					= str_replace( '###SVNCMD###', $tSvnCommand, $content );
			$content					= str_replace( '###GREPCMD###', $tGrepCommand, $content );
			$content					= str_replace( '###USEJS###', $tJavaScript, $content );
			$content					= str_replace( '###SVNACCESSFILE###', $tSvnAccessFile, $content );
			$content					= str_replace( '###ACCESSCONTROLLEVEL###', $tAccessControlLevel, $content );
			$content					= str_replace( '###SVNAUTHFILE###', $tAuthUserFile, $content );
			$content					= str_replace( '###CREATEACCESSFILE###', $tUseSvnAccessFile, $content );
			$content					= str_replace( '###CREATEAUTHFILE###', $tUseAuthUserFile, $content );
			$content					= str_replace( '###ADMINEMAIL###', $tAdminEmail, $content );
			$content					= str_replace( '###MINPWADMIN###', $tMinAdminPwSize, $content );
			$content					= str_replace( '###MINPWUSER###', $tMinUserPwSize, $content );
			$content					= str_replace( '###SESSIONINDB###', $tSessionInDatabase, $content );
			$content					= str_replace( '###PWCRYPT###', $tUseMd5, $content );
			$content					= str_replace( '###CREATEVIEWVCCONF###', $tViewvcConfig, $content );
			$content					= str_replace( '###VIEWVCCONF###', $viewvcconf, $content );
			$content					= str_replace( '###VIEWVCGROUPS###', $viewvcgroups, $content );
			$content					= str_replace( '###VIEWVCLOCATION###', $tViewvcAlias, $content );
			$content					= str_replace( '###VIEWVCAPACHERELOAD###', $tViewvcApacheReload, $content );
			$content					= str_replace( '###VIEWVCREALM###', $tViewvcRealm, $content );
			$content					= str_replace( '###SEPERATEFILESPERREPO###', $tPerRepoFiles, $content );
			$content					= str_replace( '###SVNADMINCMD###', $tSvnadminCommand, $content );
			$content					= str_replace( '###WEBSITECHARSET###', $tWebsiteCharset, $content );
			$content					= str_replace( '###LOSTPWSENDER###', $tLpwMailSender, $content );
			$content					= str_replace( '###LOSTPWMAXERROR###', 3, $content );
			$content					= str_replace( '###LOSTPWLINKVALID###', $tLpwLinkValid, $content );
			$content					= str_replace( '###PRECOMPATIBLE###', $preCompatible, $content );
			
		} else {
			
			$tErrors[] 					= _("can't open config template for reading!");
			$error						= 1;
			
		}
			
	}
	
	if( $error == 0 ) {
		
		if( $fh_out = @fopen($confignew, "w" ) ) {
			
			if( ! @fwrite( $fh_out, $content ) ) {
				
				$tErrors[]				= _("Can't write new config.inc.php file!" );
				$error					= 1;
				
			} 
			
		} else {
			
			$tErrors[] 					= _("can't open config.inc.php for writing. Please make sure the config directory is writeable for the webserver user!" );
			$error						= 1;
		}
		
	}
	
	if( $error == 0 ) {
		
		if( @copy( $confignew, $configfile) ) {
			
			if( ! @unlink( $confignew ) ) {
				
				if( determineOs() == "windows" ) {
					$error				= 0;
				} else {
					$error				= 1;
					$tErrors[]			= _("Error deleting temporary config file");
				}
				
			} else {
				
				$tResult[]				= _("config.inc.php successfully created");
				
			}
			
		} else {
			
			$error						= 1;
			$tErrors[]					= _("Error copying temporary config file!");
			
		}
	}
	
	if( $error == 0 ) {
		
		$CONF['database_host'] 			= $tDatabaseHost;
		$CONF['database_user'] 			= $tDatabaseUser;
		$CONF['database_password'] 		= $tDatabasePassword;
		$CONF['database_name'] 			= $tDatabaseName;
		$CONF['database_schema']		= $tDatabaseSchema;
		$CONF['database_tablespace']	= $tDatabaseTablespace;

		if( $tCreateDatabaseTables == "YES" ) {
			
			$dbh						= db_connect_install($tDatabaseHost, $tDatabaseUser, $tDatabasePassword, $tDatabaseName, $tDatabaseCharset, $tDatabaseCollation, $tDatabase);
			
			if( $tDropDatabaseTables == "YES" ) {
		
				if( strtoupper($tDatabase) == "MYSQL" ) {
					$ret				= dropMySQLDatabaseTables( $dbh );
				} elseif( strtoupper($tDatabase) == "POSTGRES8") {
					$ret				= dropPostgresDatabaseTables( $dbh );
				} elseif( strtoupper($tDatabase) == "OCI8" ) {
					$ret				= dropOracleDatabaseTables( $dbh, $tDatabaseSchema );
				}
				if( $ret['error'] != 0 ) {
				
					$tErrors[]			= $ret['errormsg'];
					$error				= 1;
				
				} else {
					
					$tResult[]			= _("Database tables successfully dropped");
				}
				
			} else {
					
				$tResult[]				= _("No database tables dropped");
					 
			}
			
			if( $error == 0 ) {
				
				if( strtoupper($tDatabase) == "MYSQL" ) {
					$ret				= createMySQLDatabaseTables( $dbh, $tDatabaseCharset, $tDatabaseCollation );
				} elseif( strtoupper($tDatabase) == "POSTGRES8") {
					$ret				= createDatabaseTables( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase, $tDatabaseSchema, $tDatabaseTablespace, $tDatabaseUser );
				} elseif( strtoupper($tDatabase) == "OCI8" ) {
					$ret				= createOracleDatabaseTables( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase, $tDatabaseSchema, $tDatabaseTablespace, $tDatabaseUser );
				}
				if( $ret['error'] != 0 ) {
				
					$tErrors[]			= $ret['errormsg'];
				
				} else {
					
					$tResult[]			= _("Database tables successfully created");			
					
				}
			
			}
			
			if( $error == 0 ) {
				
				if( strtoupper($tDatabase) == "MYSQL" ) {
					$ret				= loadDbData( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase );
				} elseif( strtoupper($tDatabase) == "POSTGRES8" ) {
					$ret				= loadPostgresDbData( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase, $tDatabaseSchema );
				} elseif( strtoupper($tDatabase) == "OCI8" ) {
					$ret				= loadOracleDbData( $dbh, $tDatabaseCharset, $tDatabaseCollation, $tDatabase, $tDatabaseSchema );
				}
				
				if( $ret['error'] != 0 ) {
				
					$tErrors[]			= $ret['errormsg'];
				
				} else {
					
					$tResult[]			= _("Database tables successfully created");			
					
				}
			}
			
			if( $error == 0 ) {
				
				$ret					= createAdmin( $tUsername, $tPassword, $tGivenname, $tName, $tAdminEmail, $tDatabase, $dbh, $tDatabaseSchema );
				if( $ret['error'] != 0 ) {
				
					$tErrors[]			= $ret['errormsg'];
				
				} else {
					
					$tResult[]			= _("Admin account successfully created");			
					
				}
			}
			
			db_disconnect( $dbh );
			
		} else {
			
			$tResult[]					= _("No database tables created");
		}
		
	}
	
	if( $error == 0 ) {
		
		include ("../templates/installresult.tpl");
		
	} else {
	
		include ("../templates/install.tpl");
		
	}	
}

?>
Return current item: Svn-access-manager