[Openupload-svn-update] SF.net SVN: openupload:[162] trunk/www/setup.inc.php
Status: Beta
Brought to you by:
tsdogs
|
From: <ts...@us...> - 2008-11-20 18:33:13
|
Revision: 162
http://openupload.svn.sourceforge.net/openupload/?rev=162&view=rev
Author: tsdogs
Date: 2008-11-20 18:33:02 +0000 (Thu, 20 Nov 2008)
Log Message:
-----------
it ain't perfect but pgsql support is now on.
Reworked the whole SQL syntax to be more usable by the database functions.
ACL should now correspond to the documentation
Modified Paths:
--------------
trunk/www/setup.inc.php
Modified: trunk/www/setup.inc.php
===================================================================
--- trunk/www/setup.inc.php 2008-11-20 15:09:40 UTC (rev 161)
+++ trunk/www/setup.inc.php 2008-11-20 18:33:02 UTC (rev 162)
@@ -49,6 +49,7 @@
);
/* DATABASE INITIALIZATION QUERY */
+
$MYSQL_QUERY = array (
'dropdb' => 'DROP DATABASE IF EXISTS `%1`',
'createdb' => 'CREATE DATABASE `%1`',
@@ -56,162 +57,236 @@
'createuser' => '',
'grant' => 'GRANT ALL PRIVILEGES ON %2.* TO "%1"@"localhost" IDENTIFIED BY "%3"',
'droptable' => 'DROP TABLE IF EXISTS `%1%2`',
- 'structure' => array (
- 'acl' => 'CREATE TABLE `%1acl` (
- `id` int(11) NOT NULL auto_increment,
- `module` varchar(100) NOT NULL,
- `action` varchar(100) NOT NULL,
- `group_name` varchar(50) NOT NULL,
- `access` varchar(10) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- 'banned' => 'CREATE TABLE `%1banned` (
- `id` int(11) NOT NULL auto_increment,
- `ip` varchar(50) NOT NULL,
- `access` varchar(50) NOT NULL,
- `priority` int(11) NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- 'files' => 'CREATE TABLE `%1files` (
- `id` varchar(100) NOT NULL,
- `name` varchar(200) NOT NULL,
- `mime` varchar(200) NOT NULL,
- `description` tinytext NOT NULL,
- `size` int(12) NOT NULL,
- `remove` varchar(100) NOT NULL,
- `user_login` varchar(100) NOT NULL,
- `ip` varchar(40) NOT NULL,
- `upload_date` datetime NOT NULL,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1',
- 'file_options' => 'CREATE TABLE `%1file_options` (
- `id` bigint(20) NOT NULL auto_increment,
- `file_id` varchar(100) NOT NULL,
- `module` varchar(50) NOT NULL,
- `name` varchar(50) NOT NULL,
- `value` varchar(200) NOT NULL,
- PRIMARY KEY (`id`),
- KEY `file_id` (`file_id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- 'groups' => 'CREATE TABLE `%1groups` (
- `name` varchar(50) NOT NULL,
- `description` varchar(250) default NULL,
- PRIMARY KEY (`name`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1',
- 'langs' => 'CREATE TABLE `%1langs` (
- `id` varchar(10) NOT NULL,
- `name` varchar(100) NOT NULL,
- `locale` varchar(10) NOT NULL,
- `browser` varchar(200) default NULL,
- `charset` varchar(50) NOT NULL,
- `active` tinyint(1) NOT NULL default \'1\',
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1',
- 'plugin_acl' => 'CREATE TABLE `%1plugin_acl` (
- `id` int(11) NOT NULL auto_increment,
- `group_name` varchar(50) NOT NULL,
- `plugin` varchar(100) NOT NULL,
- `access` varchar(10) NOT NULL,
- PRIMARY KEY (`id`),
- UNIQUE KEY `group_name` (`group_name`,`plugin`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- 'plugin_options' => 'CREATE TABLE `%1plugin_options` (
- `id` int(11) NOT NULL auto_increment,
- `plugin` varchar(100) NOT NULL,
- `group_name` varchar(100) NOT NULL,
- `name` varchar(100) NOT NULL,
- `value` text,
- PRIMARY KEY (`id`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- 'users' => 'CREATE TABLE `%1users` (
- `id` int(10) unsigned NOT NULL auto_increment,
- `login` varchar(100) NOT NULL,
- `password` varchar(100) NOT NULL,
- `name` varchar(200) NOT NULL,
- `group_name` varchar(50) NOT NULL default \'registered\',
- `email` varchar(250) NOT NULL,
- `lang` varchar(10) NOT NULL default \'en\',
- `reg_date` datetime NOT NULL,
- `regid` varchar(50) NOT NULL default \'\',
- `active` tinyint(3) unsigned NOT NULL default \'1\',
- PRIMARY KEY (`id`),
- UNIQUE KEY `login` (`login`)
- ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=0',
- ),
- 'base' => array (
- "INSERT INTO `%0banned` (`id`, `ip`, `access`, `priority`) VALUES(1, '127.0.0.1', 'allow', 1)",
- "INSERT INTO `%0banned` (`id`, `ip`, `access`, `priority`) VALUES(2, '0.0.0.0/0', 'allow', 9999999)",
- "INSERT INTO `%0groups` (`name`, `description`) VALUES('%3', 'Administrators group')",
- "INSERT INTO `%0groups` (`name`, `description`) VALUES('%4', 'Registered Users')",
- "INSERT INTO `%0groups` (`name`, `description`) VALUES('%5', 'Unregistered users')",
- "INSERT INTO `%0langs` (`id`, `name`, `locale`, `browser`, `charset`, `active`) VALUES('en', 'English', 'en_EN', '[en];[en-EN]', 'iso-8559-1', 1)",
- "INSERT INTO `%0langs` (`id`, `name`, `locale`, `browser`, `charset`, `active`) VALUES('it', 'Italiano', 'it_IT.utf8', '[it];[it-IT]', 'utf8', 1)",
- "INSERT INTO `%0langs` (`id`, `name`, `locale`, `browser`, `charset`, `active`) VALUES('fr', 'Français', 'fr_FR.utf8', '[fr];[fr-FR]', 'utf8', 1)",
- "INSERT INTO `%0users` (`id`, `login`, `password`, `name`, `group_name`, `email`, `lang`, `reg_date`, `regid`, `active`) VALUES(1, '%1', '%2', 'Administrator', '%3', '%6', 'en', now(), '', 1)",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(1, '*', '*', '%3', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(2, 'admin', '*', '%3', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(3, 'admin', '*', '*', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(4, 'auth', 'login', '%5', 'allow')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(1, '%3', 'password', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(2, '%3', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(3, '%3', 'email', 'enable')",
- "INSERT INTO `%0plugin_options` (`id`, `plugin`, `group_name`, `name`, `value`) VALUES (1, 'mimetypes', '%5', 'message', 'Pdf, JPEG')",
- "INSERT INTO `%0plugin_options` (`id`, `plugin`, `group_name`, `name`, `value`) VALUES (2, 'mimetypes', '%5', 'allowed', 'application/pdf
-image/jpeg')",
- ),
- 'mode_1' => array (
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(5, 'auth', 'register', '*', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(6, 'auth', '*', '%5', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(7, 'auth', '*', '*', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(8, 'files', '*', '%5', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(9, 'files', '*', '*', 'allow')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(4, '%4', 'password', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(5, '%4', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(6, '%4', 'email', 'enable')",
- ),
- 'mode_2' => array (
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(5, 'auth', 'register', '*', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(6, 'auth', '*', '%5', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(7, 'auth', '*', '*', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(8, 'files', 'd', '%5', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(9, 'files', 'g', '%5', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(10, 'files', '*', '%5', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(11, 'files', '*', '*', 'allow')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(4, '%4', 'password', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(5, '%4', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(6, '%4', 'email', 'enable')",
- ),
- 'mode_3' => array (
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(5, 'auth', 'register', '%5', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(6, 'auth', '*', '%5', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(7, 'auth', 'register', '*', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(8, 'auth', '*', '*', 'allow')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(9, 'files', '*', '*', 'allow')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(4, '%4', 'password', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(5, '%4', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(6, '%4', 'email', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(7, '%5', 'mimetypes', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(8, '%5', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(9, '%5', 'password', 'enable')",
-),
- 'mode_4' => array (
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(5, 'auth', '*', '*', 'deny')",
- "INSERT INTO `%0acl` (`id`, `module`, `action`, `group_name`, `access`) VALUES(6, 'files', '*', '*', 'allow')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(4, '%5', 'password', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(5, '%5', 'captcha', 'enable')",
- "INSERT INTO `%0plugin_acl` (`id`, `group_name`, `plugin`, `access`) VALUES(6, '%5', 'email', 'enable')",
- ),
);
+
$PGSQL_QUERY = array (
'dropdb' => 'DROP DATABASE "%1"',
'createdb' => 'CREATE DATABASE "%1"',
'dropuser' => '',
'createuser' => '',
'grant' => '',
- 'droptable' => 'DROP TABLE IF EXISTS `%2`',
+ 'droptable' => 'DROP TABLE IF EXISTS %1%2',
);
+$DB_STRUCTURE = array (
+ 'acl' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 11, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'module' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'action' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'group_name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'access' => array ( 'type' => 'char', 'size' => 10, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array ('id'), ),
+ ),
+ ),
+ 'banned' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 11, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'ip' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'access' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'priority' => array ( 'type' => 'int', 'size' => 11, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array ('id'), ),
+ ),
+ ),
+ 'files' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'name' => array ( 'type' => 'char', 'size' => 200, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'description' => array ( 'type' => 'text', 'size' => 0, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'size' => array ( 'type' => 'int', 'size' => 12, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'remove' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'user_login' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'ip' => array ( 'type' => 'char', 'size' => 40, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'upload_date' => array ( 'type' => 'datetime', 'size' => 0, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array ('id'), ),
+ ),
+ ),
+ 'file_options' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 20, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'file_id' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'module' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'value' => array ( 'type' => 'char', 'size' => 200, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'user_login' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'ip' => array ( 'type' => 'char', 'size' => 40, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'upload_date' => array ( 'type' => 'datetime', 'size' => 0, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array ('id'), ),
+ 'file_id' => array ( 'primary' => false, 'unique' => 'false', 'fields' => array('file_id') ),
+ ),
+ ),
+ 'groups' => array (
+ 'fields' => array (
+ 'name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'description' => array ( 'type' => 'char', 'size' => 250, 'extra' => '', 'null' => '', ),
+ ),
+ 'keys' => array (
+ 'name' => array ( 'primary' => true, 'fields' => array('name'), ),
+ ),
+ ),
+ 'langs' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'char', 'size' => 10, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'name' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'locale' => array ( 'type' => 'char', 'size' => 10, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'browser' => array ( 'type' => 'char', 'size' => 200, 'extra' => '', 'null' => '', ),
+ 'charset' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => '', ),
+ 'active' => array ( 'type' => 'int', 'size' => 1, 'extra' => '', 'null' => '', 'default' => '1'),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array('id'), ),
+ ),
+ ),
+ 'plugin_acl' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 10, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'group_name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'plugin' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'access' => array ( 'type' => 'char', 'size' => 10, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array('id'), ),
+ ),
+ ),
+ 'plugin_options' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 10, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'plugin' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'group_name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'name' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'value' => array ( 'type' => 'text', 'size' => 0, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array('id'), ),
+ ),
+ ),
+ 'users' => array (
+ 'fields' => array (
+ 'id' => array ( 'type' => 'int', 'size' => 10, 'extra' => 'auto_increment', 'null' => 'NOT NULL', ),
+ 'login' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'password' => array ( 'type' => 'char', 'size' => 100, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'name' => array ( 'type' => 'char', 'size' => 200, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'group_name' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', 'default' => 'registered'),
+ 'email' => array ( 'type' => 'char', 'size' => 250, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'lang' => array ( 'type' => 'char', 'size' => 10, 'extra' => '', 'null' => 'NOT NULL', 'default' => 'en'),
+ 'reg_date' => array ( 'type' => 'datetime', 'size' => 0, 'extra' => '', 'null' => 'NOT NULL', ),
+ 'regid' => array ( 'type' => 'char', 'size' => 50, 'extra' => '', 'null' => 'NOT NULL', 'default' => ''),
+ 'active' => array ( 'type' => 'int', 'size' => 1, 'extra' => '', 'null' => 'NOT NULL', ),
+ ),
+ 'keys' => array (
+ 'id' => array ( 'primary' => true, 'fields' => array('id'), ),
+ 'login' => array ( 'primary' => false, 'unique' => true, 'fields' => array('id'), ),
+ ),
+ ),
+);
+
+$DB_DATA = array (
+ 'base' => array (
+ 'acl' => array (
+ array('id' => 1, 'module' => '*', 'action' => '*', 'group_name' => '%3', 'access' => 'allow' ),
+ array('id' => 2, 'module' => 'admin', 'action' => '*', 'group_name' => '%3', 'access' => 'allow' ),
+ array('id' => 3, 'module' => 'admin', 'action' => '*', 'group_name' => '*', 'access' => 'deny' ),
+ array('id' => 4, 'module' => 'auth', 'action' => 'login', 'group_name' => '%5', 'access' => 'allow' ),
+ ),
+ 'groups' => array (
+ array ('name' => '%3' ,'description' => 'Administrators group' ),
+ array ('name' => '%4' ,'description' => 'Registered Users' ),
+ array ('name' => '%5' ,'description' => 'Unregistered users' ),
+ ),
+ 'banned' => array (
+ array ( 'id' => 1, 'ip' => '127.0.0.1', 'access' => 'allow', 'priority' => 1),
+ array ( 'id' => 2, 'ip' => '0.0.0.0/0', 'access' => 'allow', 'priority' => 9999999),
+ ),
+ 'langs' => array (
+ array ('id' => 'en', 'name' => 'English', 'locale' => 'en_EN', 'browser' => '[en];[en-EN]', 'charset' => 'utf8', 'active' => 1),
+ array ('id' => 'it', 'name' => 'Italiano', 'locale' => 'it_IT.utf8', 'browser' => '[it];[it-IT]', 'charset' => 'utf8', 'active' => 1),
+ array ('id' => 'fr', 'name' => 'Français', 'locale' => 'fr_FR.utf8', 'browser' => '[fr];[fr-FR]', 'charset' => 'utf8', 'active' => 1),
+ ),
+ 'users' => array (
+ array ( 'id' => 1, 'login' => '%1', 'password' => '%2', 'name' => 'Administrator', 'group_name' => '%3', 'email' => '%6',
+ 'lang' => 'en', 'reg_date' => '', 'regid' => '', 'active' => 1 ),
+ ),
+ 'plugin_acl' => array (
+ array ( 'id' => '1', 'group_name' => '%3', 'plugin' => 'password', 'access' => 'enable'),
+ array ( 'id' => '2', 'group_name' => '%3', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => '3', 'group_name' => '%3', 'plugin' => 'email', 'access' => 'enable'),
+ ),
+ 'plugin_options' => array (
+ array ( 'id' => '1', 'plugin' => 'mimetypes', 'group_name' => '%5', 'name' => 'message', 'value' => 'Pdf, Jpeg'),
+ array ( 'id' => '2', 'plugin' => 'mimetypes', 'group_name' => '%5', 'name' => 'allowed', 'value' => 'application/pdf'."\n".'image/jpeg'),
+ ),
+ ),
+ 'mode_1' => array (
+ 'acl' => array (
+ array('id' => 5, 'module' => 'auth', 'action' => 'register', 'group_name' => '*', 'access' => 'deny' ),
+ array('id' => 6, 'module' => 'auth', 'action' => '*', 'group_name' => '%5', 'access' => 'deny' ),
+ array('id' => 7, 'module' => 'auth', 'action' => '*', 'group_name' => '*', 'access' => 'allow' ),
+ array('id' => 8, 'module' => 'files', 'action' => 'd', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 9, 'module' => 'files', 'action' => 'g', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 10, 'module' => 'files', 'action' => '*', 'group_name' => '%5', 'access' => 'deny' ),
+ array('id' => 11, 'module' => 'files', 'action' => '*', 'group_name' => '*', 'access' => 'allow' ),
+ ),
+ 'plugin_acl' => array (
+ array ( 'id' => 4, 'group_name' => '%4', 'plugin' => 'password', 'access' => 'enable'),
+ array ( 'id' => 5, 'group_name' => '%4', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => 6, 'group_name' => '%4', 'plugin' => 'email', 'access' => 'enable'),
+ ),
+ ),
+ 'mode_2' => array (
+ 'acl' => array (
+ array('id' => 5, 'module' => 'auth', 'action' => 'register', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 6, 'module' => 'auth', 'action' => '*', 'group_name' => '%5', 'access' => 'deny' ),
+ array('id' => 7, 'module' => 'auth', 'action' => '*', 'group_name' => '*', 'access' => 'allow' ),
+ array('id' => 8, 'module' => 'files', 'action' => 'd', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 9, 'module' => 'files', 'action' => 'g', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 10, 'module' => 'files', 'action' => '*', 'group_name' => '%5', 'access' => 'deny' ),
+ array('id' => 11, 'module' => 'files', 'action' => '*', 'group_name' => '*', 'access' => 'allow' ),
+ ),
+ 'plugin_acl' => array (
+ array ( 'id' => 4, 'group_name' => '%4', 'plugin' => 'password', 'access' => 'enable'),
+ array ( 'id' => 5, 'group_name' => '%4', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => 6, 'group_name' => '%4', 'plugin' => 'email', 'access' => 'enable'),
+ ),
+ ),
+ 'mode_3' => array (
+ 'acl' => array (
+ array('id' => 5, 'module' => 'auth', 'action' => 'register', 'group_name' => '%5', 'access' => 'allow' ),
+ array('id' => 6, 'module' => 'auth', 'action' => '*', 'group_name' => '%5', 'access' => 'deny' ),
+ array('id' => 7, 'module' => 'auth', 'action' => '*', 'group_name' => 'register', 'access' => 'deny' ),
+ array('id' => 8, 'module' => 'auth', 'action' => '*', 'group_name' => '*', 'access' => 'deny' ),
+ array('id' => 9, 'module' => 'files', 'action' => '*', 'group_name' => '*', 'access' => 'deny' ),
+ ),
+ 'plugin_acl' => array (
+ array ( 'id' => 4, 'group_name' => '%4', 'plugin' => 'password', 'access' => 'enable'),
+ array ( 'id' => 5, 'group_name' => '%4', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => 6, 'group_name' => '%4', 'plugin' => 'email', 'access' => 'enable'),
+ array ( 'id' => 7, 'group_name' => '%5', 'plugin' => 'mimetypes', 'access' => 'enable'),
+ array ( 'id' => 8, 'group_name' => '%5', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => 9, 'group_name' => '%5', 'plugin' => 'password', 'access' => 'enable'),
+ ),
+ ),
+ 'mode_4' => array (
+ 'acl' => array (
+ array('id' => 5, 'module' => 'auth', 'action' => '*', 'group_name' => '*', 'access' => 'deny' ),
+ array('id' => 6, 'module' => 'files', 'action' => '*', 'group_name' => '*', 'access' => 'allow' ),
+ ),
+ 'plugin_acl' => array (
+ array ( 'id' => 4, 'group_name' => '%5', 'plugin' => 'password', 'access' => 'enable'),
+ array ( 'id' => 5, 'group_name' => '%5', 'plugin' => 'captcha', 'access' => 'enable'),
+ array ( 'id' => 6, 'group_name' => '%5', 'plugin' => 'email', 'access' => 'enable'),
+ ),
+ ),
+
+);
/* try to guess the appropriate settings from the $_SERVER */
$step = (isset($_GET['step']))?$_GET['step']:1;
$step = (isset($_POST['step']))?$_POST['step']:$step;
@@ -859,12 +934,164 @@
return true;
}
+function dbcreatetable($table,$fields,$keys,$debug=false) {
+ global $CONFIG;
+
+ switch ($CONFIG['database']['type']) {
+ case 'mysql':
+ $query = 'CREATE TABLE `'.$table.'` (';
+ foreach ($fields as $k => $f) {
+ $field = '`'.$k.'`';
+ switch ($f['type']) {
+ case 'char':
+ $field .= ' VARCHAR('.$f['size'].')';
+ break;
+ case 'int':
+ $field .= ' INT('.$f['size'].')';
+ break;
+ case 'text':
+ $field .= ' TEXT';
+ break;
+ case 'datetime':
+ $field .= ' DATETIME';
+ break;
+ case 'date':
+ $field .= ' DATE';
+ break;
+ }
+ $field .= ' '.$f['null'].' '.$f['extra'];
+ $query .= $field.','."\n";
+ }
+ $keylist = '';
+ foreach ($keys as $n => $k) {
+ $key = '';
+ foreach ($k['fields'] as $f) {
+ if ($key!='') $key.=',';
+ $key .= '`'.$f.'`';
+ }
+ if ($k['primary']) {
+ $key = 'PRIMARY KEY ('.$key.')';
+ } else {
+ $key = 'KEY `'.$n.'` ('.$key.')';
+ if ($k['unique']) $key = ' UNIQUE '.$key;
+ }
+ if ($keylist!='') { $keylist .= ','; }
+ $keylist .= $key;
+ }
+ $query .= $keylist;
+ $query .= ')';
+ return dbquery($query,array(),$debug);
+ break;
+ case 'pgsql':
+ $fieldlist = '';
+ foreach ($fields as $k => $f) {
+ $field = $k;
+ switch ($f['type']) {
+ case 'char':
+ $field .= ' character varying('.$f['size'].')';
+ break;
+ case 'int':
+ $field .= ' INTEGER';
+ break;
+ case 'text':
+ $field .= ' TEXT';
+ break;
+ case 'datetime':
+ $field .= ' timestamp without time zone';
+ break;
+ case 'date':
+ $field .= ' DATE';
+ break;
+ }
+ $field .= ' '.$f['null'];
+ if ($fieldlist != '')
+ $fieldlist .= ','."\n";
+ $fieldlist .= $field;
+ }
+ $query = 'CREATE TABLE '.$table.' ('.$fieldlist.')';
+ $res = dbquery($query,array(),$debug);
+ if ($res) { /* add the keys */
+ foreach ($keys as $n => $k) {
+ $key = '';
+ foreach ($k['fields'] as $f) {
+ if ($key!='') $key.=',';
+ $key .= $f;
+ }
+ if ($k['primary']) {
+ $query = 'ALTER TABLE ONLY '.$table.' ADD CONSTRAINT '.$table.'_pkey PRIMARY KEY ('.$key.')';
+ } else {
+ $query = 'CREATE '.($k['unique']?'UNIQUE ':'').'INDEX '.$table.'_'.$n.'_idx ON '.$table.' USING btree ('.$key.')';
+ }
+ $res = dbquery($query,array(),$debug);
+ }
+ }
+ if ($res) {
+ foreach ($fields as $k => $f) {
+ if ($f['extra']=='auto_increment') {
+ $seq = $table.'_'.$k.'_seq';
+ $query = 'CREATE SEQUENCE '.$seq.' INCREMENT BY 1 NO MAXVALUE NO MINVALUE CACHE 1';
+ $res = dbquery($query,array(),$debug);
+ $query = 'ALTER SEQUENCE '.$seq.' OWNED BY '.$table.'.'.$k;
+ $res = dbquery($query,array(),$debug);
+ if ($res) {
+ $query = 'ALTER TABLE '.$table.' ALTER COLUMN '.$k.' SET DEFAULT nextval(\''.$seq.'\'::regclass)';
+ $res = dbquery($query,array(),$debug);
+ }
+ }
+ }
+ }
+ return $res;
+ break;
+ }
+ return false;
+}
+
+
+function dbinsert($table,$data,$params,$debug) {
+ global $CONFIG;
+ global $DB_STRUCTURE;
+
+ switch ($CONFIG['database']['type']) {
+ case 'mysql':
+ $fields = '';
+ $values = '';
+ foreach ($data as $f => $v) {
+ if ($fields != '') $fields .= ',';
+ if ($values != '') $values .= ',';
+ $fields .= '`'.$f.'`';
+ $values .= '"'.mysql_real_escape_string($v).'"';
+ }
+ $query = 'INSERT INTO `%0'.$table.'` ('.$fields.') VALUES ('.$values.')';
+ break;
+ case 'pgsql':
+ $fields = '';
+ $values = '';
+ foreach ($data as $f => $v) {
+ if ($fields != '') $fields .= ',';
+ if ($values != '') $values .= ',';
+ $fields .= $f;
+ if ($DB_STRUCTURE[$table]['fields'][$f]['type']=='int')
+ $values .= $v;
+ else if ($DB_STRUCTURE[$table]['fields'][$f]['type']=='datetime')
+ $values .= 'now()';
+ else
+ $values .= '\''.pg_escape_string($v).'\'';
+ }
+ $query = 'INSERT INTO %0'.$table.' ('.$fields.') VALUES ('.$values.')';
+ break;
+ }
+ return dbquery($query,$params,$debug);
+}
+
+
function createdb($step) {
global $CONFIG;
global $_SESSION;
global $_POST;
global $MYSQL_QUERY;
global $PGSQL_QUERY;
+ global $DB_STRUCTURE;
+ global $DB_DATA;
if (isset($_SESSION['substep']) and !(isset($_POST['restart']))) {
$substep = $_SESSION['substep'];
@@ -947,11 +1174,11 @@
if ($execute) {
if (dbconnect($CONFIG['database']['host'],$CONFIG['database']['user'],$CONFIG['database']['password'],$CONFIG['database']['name'],$debug)) {
$params['%1']=$CONFIG['database']['prefix'];
- foreach ($query['structure'] as $t => $q) {
+ foreach ($DB_STRUCTURE as $t => $q) {
$params['%2']=$t;
if (!dbquery($query['droptable'],$params,$debug))
$error = true;
- if (!dbquery($q,$params,$debug)) {
+ if (!dbcreatetable($CONFIG['database']['prefix'].$t,$q['fields'],$q['keys'],$debug)) {
msg('Table creation FAILED: '.$t,'fail');
$error = true;
} else {
@@ -984,12 +1211,14 @@
$params['%4']=$_SESSION['options']['registered'];
$params['%5']=$_SESSION['options']['unregistered'];
$params['%6']=$CONFIG['site']['webmaster'];
- foreach ($query['base'] as $t => $q) {
- if (!dbquery($q,$params,$debug)) {
- msg('Query failed... n. '.$t,'fail');
- $error = true;
- } else {
- msg('Data insert SUCCESS: '.$t,'ok');
+ foreach ($DB_DATA['base'] as $t => $q) {
+ foreach ($q as $x) {
+ if (!dbinsert($t,$x,$params,$debug)) {
+ msg('Query failed... n. '.$t,'fail');
+ $error = true;
+ } else {
+ msg('Data insert SUCCESS: '.$t,'ok');
+ }
}
}
} else {
@@ -1019,12 +1248,14 @@
$params['%4']=$_SESSION['options']['registered'];
$params['%5']=$_SESSION['options']['unregistered'];
$params['%6']=$CONFIG['site']['webmaster'];
- foreach ($query['mode_'.$mode] as $t => $q) {
- if (!dbquery($q,$params,$debug)) {
- msg('Query failed... n. '.$t,'fail');
- $error = true;
- } else {
- msg('Data insert SUCCESS: '.$t,'ok');
+ foreach ($DB_DATA['mode_'.$mode] as $t => $q) {
+ foreach ($q as $x) {
+ if (!dbinsert($t,$x,$params,$debug)) {
+ msg('Query failed... n. '.$t,'fail');
+ $error = true;
+ } else {
+ msg('Data insert SUCCESS: '.$t,'ok');
+ }
}
}
} else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|