diff options
Diffstat (limited to 'includes/install_packages.php')
| -rwxr-xr-x[-rw-r--r--] | includes/install_packages.php | 256 |
1 files changed, 123 insertions, 133 deletions
diff --git a/includes/install_packages.php b/includes/install_packages.php index e8e63c7..052c29d 100644..100755 --- a/includes/install_packages.php +++ b/includes/install_packages.php @@ -1,4 +1,9 @@ <?php + +use Bitweaver\BitDb; +use Bitweaver\Users\BitPermUser; +use Bitweaver\Users\RolePermUser; + /** * @version $Header$ * @package install @@ -25,7 +30,7 @@ $gBitSmarty->assign( 'next_step', $step ); // pass all package data to template $schema = $gBitInstaller->mPackages; ksort( $schema ); -$gBitSmarty->assignByRef( 'schema', $schema ); +$gBitSmarty->assign( 'schema', $schema ); // confirm that we have all the admin data in the session before proceeding if( !empty( $_REQUEST['packages'] ) && in_array( 'users', $_REQUEST['packages'] ) && ( empty( $_SESSION['login'] ) || empty( $_SESSION['password'] ) || empty( $_SESSION['email'] ) ) ) { @@ -38,7 +43,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { header( 'Location: '.INSTALL_PKG_URL.'install.php?step='.( $step + 1 ) ); } elseif( !empty( $_REQUEST['packages'] ) && is_array( $_REQUEST['packages'] ) && !empty( $_REQUEST['method'] ) && !empty( $_REQUEST['submit_packages'] ) ) { // shorthand for the actions we are supposed to perform during an unistall or re-install - $removeActions = !empty( $_REQUEST['remove_actions'] ) ? $_REQUEST['remove_actions'] : array(); + $removeActions = !empty( $_REQUEST['remove_actions'] ) ? $_REQUEST['remove_actions'] : []; // Override reinstall/uninstall flag if ( $_REQUEST['submit_packages'] == 'Install Packages' ) $_REQUEST['method'] = 'install'; @@ -70,7 +75,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { } // by now $method should be populated with something - if( $gBitInstallDb->Connect( $gBitDbHost, $gBitDbUser, $gBitDbPassword, $gBitDbName ) && !empty( $method ) ) { + if( $gBitInstallDb->Connect( $gBitDbHost, $gBitDbUser, $gBitDbPassword, $gBitDbType != 'pdo' ? $gBitDbName : NULL ) && !empty( $method ) ) { if ( $_SESSION['first_install'] && $gBitDbType == 'firebird' ) { // Leave commented for present, new installations on Firebird should use FB2.1.x and above which have an internal function library // $result = $gBitInstallDb->Execute( "DECLARE EXTERNAL FUNCTION LOWER CSTRING(80) RETURNS CSTRING(80) FREE_IT ENTRY_POINT 'IB_UDF_lower' MODULE_NAME 'ib_udf'" ); @@ -79,7 +84,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { $tablePrefix = $gBitInstaller->getTablePrefix(); - $dict = NewDataDictionary( $gBitInstallDb ); + $dict = NewDataDictionary( $gBitInstallDb, 'firebird' ); if( !$gBitInstaller->mDb->getCaseSensitivity() ) { // set nameQuote to blank @@ -109,7 +114,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { } } - $sqlArray = array(); + $sqlArray = []; //error_reporting( E_ALL ); // packages are sorted alphabetically. but we really need a /etc/rc.d/rc.3 style loading precidence! @@ -118,14 +123,14 @@ if( !empty( $_REQUEST['cancel'] ) ) { sort( $_REQUEST['packages'] ); // Need to unquote constraints. but this need replacing with a datadict function - require_once( KERNEL_PKG_CLASS_PATH.'BitDbBase.php'); + $gBitKernelDb = new BitDb(); $gBitKernelDb->mType = $gBitDbType; // ---------------------- 1. ---------------------- // let's generate all the tables's $gBitInstallDb->StartTrans(); - $uninstalledPackages = array(); + $uninstalledPackages = []; // get a list of packages to install maintained gScanOrder from mPackages foreach( array_keys( $gBitInstaller->mPackages ) as $p ) { if( in_array( $p, $_REQUEST['packages'] ) ) { @@ -136,16 +141,16 @@ if( !empty( $_REQUEST['cancel'] ) ) { $maxLoop = count( $uninstalledPackages ) * count( $uninstalledPackages ); $i = 0; - $installedPackages = array(); + $installedPackages = []; foreach( array_keys( $gBitInstaller->mPackages ) as $key ) { - if( !empty( $gBitInstaller->mPackages[$package]['installed'] ) ) { + if( !empty( $gBitInstaller->mPackages[$key]['installed'] ) ) { array_push( $installedPackages, $package ); } } do { $package = array_shift( $uninstalledPackages ); - $dependentPackages = (!empty( $gBitInstaller->mPackages[$package]['info']['dependencies'] ) ? explode( ',', $gBitInstaller->mPackages[$package]['info']['dependencies'] ) : array()); + $dependentPackages = (!empty( $gBitInstaller->mPackages[$package]['info']['dependencies'] ) ? explode( ',', $gBitInstaller->mPackages[$package]['info']['dependencies'] ) : []); $dependentsInstalled = array_intersect( $dependentPackages, $installedPackages ); $dependentsUninstalled = array_intersect( $dependentPackages, $uninstalledPackages ); if( !empty( $dependentPackages ) && (count( $dependentsUninstalled ) + count( $dependentsInstalled )) != count( $dependentPackages ) ) { @@ -156,37 +161,32 @@ if( !empty( $_REQUEST['cancel'] ) ) { unset( $build ); // work out what we're going to do with this package if ( $method == 'install' && $_SESSION['first_install'] ) { - $build = array( 'NEW' ); + $build = [ 'NEW' ]; } elseif( $method == "install" && empty( $gBitInstaller->mPackages[$package]['installed'] )) { - $build = array( 'NEW' ); + $build = [ 'NEW' ]; } elseif( $method == "reinstall" && !empty( $gBitInstaller->mPackages[$package]['installed'] ) && in_array( 'tables', $removeActions )) { // only set $build if we want to reset the tables - this allows us to reset a package to it's starting values without deleting any content - $build = array( 'REPLACE' ); + $build = [ 'REPLACE' ]; } elseif( $method == "uninstall" && !empty( $gBitInstaller->mPackages[$package]['installed'] ) && in_array( 'tables', $removeActions )) { - $build = array( 'DROP' ); + $build = [ 'DROP' ]; } // If we use MySql and not DROP anything // set correct storage engine to use if( isset( $_SESSION['use_innodb'] ) && isset( $build ) && $build['0'] != 'DROP' ){ - if( $_SESSION['use_innodb'] == TRUE) { - $build = array_merge($build, array('MYSQL' => 'ENGINE=INNODB')); - } else { - $build = array_merge($build, array('MYSQL' => 'ENGINE=MYISAM')); - } + $build = ( $_SESSION['use_innodb'] == true ) ? [ ...$build, 'MYSQL' => 'ENGINE=INNODB' ] : [ ...$build, 'MYSQL' => 'ENGINE=MYISAM' ]; } // Install tables - $build is empty when we don't pick tables, when un / reinstalling packages - if( !empty( $gBitInstaller->mPackages[$package]['tables'] ) && is_array( $gBitInstaller->mPackages[$package]['tables'] ) && !empty( $build )) { - foreach( array_keys( $gBitInstaller->mPackages[$package]['tables'] ) as $tableName ) { - $completeTableName = $tablePrefix.$tableName; + if (!empty( $gBitInstaller->mPackages[$package]['tables'] ) && is_array( $gBitInstaller->mPackages[$package]['tables'] ) && !empty( $build )) { + foreach ( array_keys( $gBitInstaller->mPackages[$package]['tables'] ) as $tableName ) { + $completeTableName = $tablePrefix . $tableName; // in case prefix has backticks for schema $sql = $dict->CreateTableSQL( $completeTableName, $gBitInstaller->mPackages[$package]['tables'][$tableName], $build ); - // Uncomment this line to see the create sql - for( $sqlIdx = 0; $sqlIdx < count( $sql ); $sqlIdx++ ) { + for ( $sqlIdx = 0; $sqlIdx < count( $sql ); $sqlIdx++ ) { $gBitKernelDb->convertQuery( $sql[$sqlIdx] ); } - if( $sql && $dict->ExecuteSQLArray( $sql ) <= 1) { - $errors[] = 'Failed to create table '.$completeTableName; - $failedcommands[] = implode(" ", $sql); + if ($sql && $dict->ExecuteSQLArray( $sql ) <= 1) { + $errors[] = 'Failed to create table ' . $completeTableName; + $failedcommands[] = implode( " ", $sql ); } } } @@ -197,26 +197,25 @@ if( !empty( $_REQUEST['cancel'] ) ) { } $i++; - } while( !empty( $uninstalledPackages ) && $i < $maxLoop ); + } while ( !empty( $uninstalledPackages ) && $i < $maxLoop ); - if( $i > $maxLoop ) { + if ($i > $maxLoop) { $errors[] = 'Infinite loop detected'; } - // ---------------------- 2. ---------------------- // install additional constraints - foreach( array_keys( $gBitInstaller->mPackages ) as $package ) { - if( in_array( $package, $_REQUEST['packages'] ) && ($method == 'install' || $method == 'reinstall' ) - && !empty( $gBitInstaller->mPackages[$package]['constraints'] ) && is_array( $gBitInstaller->mPackages[$package]['constraints'] ) ) { - foreach( array_keys($gBitInstaller->mPackages[$package]['constraints']) as $tableName ) { - $completeTableName = $tablePrefix.$tableName; - foreach( array_keys($gBitInstaller->mPackages[$package]['constraints'][$tableName]) as $constraintName ) { - $sql = 'ALTER TABLE `'.$completeTableName.'` ADD CONSTRAINT `'.$constraintName.'` '.$gBitInstaller->mPackages[$package]['constraints'][$tableName][$constraintName]; - $gBitKernelDb->convertQuery($sql); + foreach ( array_keys( $gBitInstaller->mPackages ) as $package ) { + if (in_array( $package, $_REQUEST['packages'] ) && ( $method == 'install' || $method == 'reinstall' ) + && !empty( $gBitInstaller->mPackages[$package]['constraints'] ) && is_array( $gBitInstaller->mPackages[$package]['constraints'] )) { + foreach ( array_keys( $gBitInstaller->mPackages[$package]['constraints'] ) as $tableName ) { + $completeTableName = $tablePrefix . $tableName; + foreach ( array_keys( $gBitInstaller->mPackages[$package]['constraints'][$tableName] ) as $constraintName ) { + $sql = 'ALTER TABLE `' . $completeTableName . '` ADD CONSTRAINT `' . $constraintName . '` ' . $gBitInstaller->mPackages[$package]['constraints'][$tableName][$constraintName]; + $gBitKernelDb->convertQuery( $sql ); $ret = $gBitInstallDb->Execute( $sql ); - if ( $ret === false ) { - $errors[] = 'Failed to add constraint '.$constraintName.' to table '.$completeTableName; + if ($ret === false) { + $errors[] = 'Failed to add constraint ' . $constraintName . ' to table ' . $completeTableName; $failedcommands[] = $sql; } } @@ -224,66 +223,60 @@ if( !empty( $_REQUEST['cancel'] ) ) { } } - - // ---------------------- 3. ---------------------- // let's generate all the indexes, and sequences - foreach( array_keys( $gBitInstaller->mPackages ) as $package ) { - if( in_array( $package, $_REQUEST['packages'] ) ) { + foreach ( array_keys( $gBitInstaller->mPackages ) as $package ) { + if (in_array( $package, $_REQUEST['packages'] )) { // set prefix $schemaQuote = strrpos( BIT_DB_PREFIX, '`' ); - $sequencePrefix = ( $schemaQuote ? substr( BIT_DB_PREFIX, $schemaQuote + 1 ) : BIT_DB_PREFIX ); + $sequencePrefix = ( $schemaQuote ? substr( BIT_DB_PREFIX, $schemaQuote + 1 ) : BIT_DB_PREFIX ); - if( $method == 'install' || ( $method == 'reinstall' && in_array( 'tables', $removeActions ))) { + if ($method == 'install' || ( $method == 'reinstall' && in_array( 'tables', $removeActions ) )) { // Install Indexes - if( isset( $gBitInstaller->mPackages[$package]['indexes'] ) && is_array( $gBitInstaller->mPackages[$package]['indexes'] ) ) { - foreach( array_keys( $gBitInstaller->mPackages[$package]['indexes'] ) as $tableIdx ) { - $completeTableName = $sequencePrefix.$gBitInstaller->mPackages[$package]['indexes'][$tableIdx]['table']; + if (isset( $gBitInstaller->mPackages[$package]['indexes'] ) && is_array( $gBitInstaller->mPackages[$package]['indexes'] )) { + foreach ( array_keys( $gBitInstaller->mPackages[$package]['indexes'] ) as $tableIdx ) { + $completeTableName = $sequencePrefix . $gBitInstaller->mPackages[$package]['indexes'][$tableIdx]['table']; $sql = $dict->CreateIndexSQL( $tableIdx, $completeTableName, $gBitInstaller->mPackages[$package]['indexes'][$tableIdx]['cols'], $gBitInstaller->mPackages[$package]['indexes'][$tableIdx]['opts'] ); - if( $sql && $dict->ExecuteSQLArray( $sql ) <= 1) { - $errors[] = 'Failed to create index '.$tableIdx." on ".$completeTableName; - $failedcommands[] = implode(" ", $sql); + if ($sql && $dict->ExecuteSQLArray( $sql ) <= 1) { + $errors[] = 'Failed to create index ' . $tableIdx . " on " . $completeTableName; + $failedcommands[] = implode( " ", $sql ); } } } - if( $method == 'reinstall' && in_array( 'tables', $removeActions )) { - if( isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] ) ) { - foreach( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { - $sql = $gBitInstallDb->DropSequence( $sequencePrefix.$sequenceIdx ); + if ($method == 'reinstall' && in_array( 'tables', $removeActions )) { + if (isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] )) { + foreach ( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { + $sql = $gBitInstallDb->DropSequence( $sequencePrefix . $sequenceIdx ); if (!$sql) { - $errors[] = 'Failed to drop sequence '.$sequencePrefix.$sequenceIdx; - $failedcommands[] = "DROP SEQUENCE ".$sequencePrefix.$sequenceIdx; + $errors[] = 'Failed to drop sequence ' . $sequencePrefix . $sequenceIdx; + $failedcommands[] = "DROP SEQUENCE " . $sequencePrefix . $sequenceIdx; } } } } - if( isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] ) ) { + if (isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] )) { // If we use InnoDB for MySql we need this to get sequence tables created correctly. - if( isset( $_SESSION['use_innodb'] ) ) { - if( $_SESSION['use_innodb'] == TRUE ) { - $gBitInstallDb->_genSeqSQL = "create table %s (id int not null) ENGINE=INNODB"; - } else { - $gBitInstallDb->_genSeqSQL = "create table %s (id int not null) ENGINE=MYISAM"; - } + if (isset( $_SESSION['use_innodb'] )) { + $gBitInstallDb->_genSeqSQL = ( $_SESSION['use_innodb'] == true ) ? "create table %s (id int not null) ENGINE=INNODB" : "create table %s (id int not null) ENGINE=MYISAM"; } - foreach( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { - $sql = $gBitInstallDb->CreateSequence( $sequencePrefix.$sequenceIdx, $gBitInstaller->mPackages[$package]['sequences'][$sequenceIdx]['start'] ); + foreach ( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { + $sql = $gBitInstallDb->CreateSequence( $sequencePrefix . $sequenceIdx, $gBitInstaller->mPackages[$package]['sequences'][$sequenceIdx]['start'] ); if (!$sql) { - $errors[] = 'Failed to create sequence '.$sequencePrefix.$sequenceIdx; - $failedcommands[] = "CREATE SEQUENCE ".$sequencePrefix.$sequenceIdx." START ".$gBitInstaller->mPackages[$package]['sequences'][$sequenceIdx]['start']; + $errors[] = "Failed to create sequence $sequencePrefix$sequenceIdx"; + $failedcommands[] = "CREATE SEQUENCE " . $sequencePrefix . $sequenceIdx . " START " . $gBitInstaller->mPackages[$package]['sequences'][$sequenceIdx]['start']; } } } } elseif( $method == 'uninstall' && in_array( 'tables', $removeActions )) { - if( isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] ) ) { - foreach( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { - $sql = $gBitInstallDb->DropSequence( $sequencePrefix.$sequenceIdx ); + if (isset( $gBitInstaller->mPackages[$package]['sequences'] ) && is_array( $gBitInstaller->mPackages[$package]['sequences'] )) { + foreach ( array_keys( $gBitInstaller->mPackages[$package]['sequences'] ) as $sequenceIdx ) { + $sql = $gBitInstallDb->DropSequence( $sequencePrefix . $sequenceIdx ); if (!$sql) { - $errors[] = 'Failed to drop sequence '.$sequencePrefix.$sequenceIdx; - $failedcommands[] = "DROP SEQUENCE ".$sequencePrefix.$sequenceIdx; + $errors[] = 'Failed to drop sequence ' . $sequencePrefix . $sequenceIdx; + $failedcommands[] = "DROP SEQUENCE " . $sequencePrefix . $sequenceIdx; } } } @@ -295,31 +288,25 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitInstaller->mPrefs = ''; $gBitInstaller->loadConfig(); - - // ---------------------- 4. ---------------------- // manipulate the data in kernel_config $gBitInstaller->mDb->StartTrans(); - foreach( array_keys( $gBitInstaller->mPackages ) as $package ) { - if( in_array( $package, $_REQUEST['packages'] ) ) { + foreach ( array_keys( $gBitInstaller->mPackages ) as $package ) { + if (in_array( $package, $_REQUEST['packages'] )) { // remove all the requested settings - this is a bit tricky and might require some more testing // Remove settings if requested - if( in_array( 'settings', $removeActions ) ) { + if (in_array( 'settings', $removeActions )) { // get a list of permissions used by this package - $query = "SELECT `perm_name` FROM `".$tablePrefix."users_permissions` WHERE `package`=?"; - $perms = $gBitInstaller->mDb->getCol( $query, array( $package )); + $query = "SELECT `perm_name` FROM `" . $tablePrefix . "users_permissions` WHERE `package`=?"; + $perms = $gBitInstaller->mDb->getCol( $query, [ $package ] ); // we deal with liberty_content_permissions below - if ( defined( 'ROLE_MODEL' ) ) { - $tables = array( 'users_role_permissions', 'users_permissions' ); - } else { - $tables = array( 'users_group_permissions', 'users_permissions' ); - } - foreach( $tables as $table ) { - foreach( $perms as $perm ) { + $tables = ( defined( 'ROLE_MODEL' ) ) ? [ 'users_role_permissions', 'users_permissions' ] : [ 'users_group_permissions', 'users_permissions' ]; + foreach ( $tables as $table ) { + foreach ( $perms as $perm ) { $delete = " - DELETE FROM `".$tablePrefix.$table."` + DELETE FROM `" . $tablePrefix.$table."` WHERE `perm_name`=?"; - $ret = $gBitInstaller->mDb->query( $delete, array( $perm ) ); + $ret = $gBitInstaller->mDb->query( $delete, [ $perm ] ); if (!$ret) { $errors[] = "Error deleting permission ". $perm; $failedcommands[] = $delete." ".$perm; @@ -328,12 +315,12 @@ if( !empty( $_REQUEST['cancel'] ) ) { } // list of tables where we store package specific settings - $tables = array( 'kernel_config' ); + $tables = [ 'kernel_config' ]; foreach( $tables as $table ) { $delete = " DELETE FROM `".$tablePrefix.$table."` WHERE `package`=? OR `config_name` LIKE ?"; - $ret = $gBitInstaller->mDb->query( $delete, array( $package, $package."%" )); + $ret = $gBitInstaller->mDb->query( $delete, [ $package, "$package%" ]); if (!$ret) { $errors[] = "Error deleting confgis for package ". $package; $failedcommands[] = $delete." ".$package; @@ -349,35 +336,35 @@ if( !empty( $_REQUEST['cancel'] ) ) { if( $contentType['handler_package'] == $package ) { // first we get a list of content_ids which we can use to scan various tables without content_type_guid column for data $query = "SELECT `content_id` FROM `".$tablePrefix."liberty_content` WHERE `content_type_guid`=?"; - $rmContentIds = $gBitInstaller->mDb->getCol( $query, array( $contentType['content_type_guid'] )); + $rmContentIds = $gBitInstaller->mDb->getCol( $query, [ $contentType['content_type_guid'] ]); // list of core tables where bitweaver might store relevant data // firstly, we delete using the content ids // order is important due to the constraints set in the schema - $tables = array( + $tables = [ 'liberty_aliases' => 'content_id', 'liberty_structures' => 'content_id', 'liberty_content_hits' => 'content_id', 'liberty_content_history' => 'content_id', 'liberty_content_prefs' => 'content_id', 'liberty_content_links' => 'to_content_id', - 'liberty_content_links' => 'from_content_id', + 'liberty_content_from_links' => 'from_content_id', 'liberty_process_queue' => 'content_id', 'liberty_content_permissions' => 'content_id', - 'users_favorites_map' => 'favorite_content_id' + 'users_favorites_map' => 'favorite_content_id', // This table needs to be fixed to use content_id instead of page_id //'liberty_copyrights' => 'content_id', // liberty comments are tricky. should we remove comments linked to the content being deleted? // makes sense to me but only if boards are not installed - xing //'liberty_comments' => 'root_id', - ); + ]; foreach( $rmContentIds as $contentId ) { foreach( $tables as $table => $column ) { $delete = " DELETE FROM `".$tablePrefix.$table."` WHERE `$column`=?"; - $ret = $gBitInstaller->mDb->query( $delete, array( $contentId )); + $ret = $gBitInstaller->mDb->query( $delete, [ $contentId ]); if (!$ret) { $errors[] = "Error deleting from ". $tablePrefxi.$table; $failedcommands[] = $delete." ".$contentId; @@ -393,15 +380,15 @@ if( !empty( $_REQUEST['cancel'] ) ) { // secondly, we delete using the content type guid // order is important due to the constraints set in the schema - $tables = array( + $tables = [ 'liberty_content', - 'liberty_content_types' - ); + 'liberty_content_types', + ]; foreach( $tables as $table ) { $delete = " DELETE FROM `".$tablePrefix.$table."` WHERE `content_type_guid`=?"; - $ret = $gBitInstaller->mDb->query( $delete, array( $contentType['content_type_guid'] )); + $ret = $gBitInstaller->mDb->query( $delete, [ $contentType['content_type_guid'] ]); if (!$ret) { $errors[] = "Error deleting content type"; $failedcommands[] = $delete." ".$contentType['content_type_guid']; @@ -439,7 +426,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitInstaller->loadConfig(); - $gBitInstaller->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."kernel_config` WHERE `package`=?", array( $package ) ); + $gBitInstaller->mDb->query( "DELETE FROM `".BIT_DB_PREFIX."kernel_config` WHERE `package`=?", [ $package ] ); // ---------------------- 5. ---------------------- // run the defaults through afterwards so we can be sure all tables needed have been created foreach( array_keys( $gBitInstaller->mPackages ) as $package ) { @@ -477,9 +464,9 @@ if( !empty( $_REQUEST['cancel'] ) ) { // register all content types for installed packages foreach( $gBitInstaller->mContentClasses as $package => $classes ){ if ( $gBitInstaller->isPackageInstalled( $package ) ){ - foreach ( $classes as $objectClass=>$classFile ){ - require_once( $classFile ); - $tempObject = new $objectClass(); + foreach ( $classes as $key => $objectClass ) { + $class = "\\Bitweaver\\".ucfirst($package)."\\$key"; + $tempObject = new $class(); } } } @@ -510,14 +497,15 @@ if( !empty( $_REQUEST['cancel'] ) ) { // Installing users has some special things to take care of here and needs a separate check. if( in_array( 'users', $_REQUEST['packages'] ) ) { // Creating 'root' user has id=1. phpBB starts with user_id=2, so this is a hack to keep things in sync - $storeHash = array( + $storeHash = [ 'real_name' => 'Root', 'login' => 'root', 'password' => $_SESSION['password'], 'email' => 'root@localhost', - 'pass_due' => FALSE, - 'user_id' => ROOT_USER_ID - ); + 'pass_due' => false, + 'registration_ip' => $_SERVER['REMOTE_ADDR'], + 'user_id' => ROOT_USER_ID, + ]; // now let's set up some default data. Group_id's are hardcoded in users/schema_inc defaults if ( defined( 'ROLE_MODEL' ) ) { $rootUser = new RolePermUser(); @@ -525,8 +513,8 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitUser->mDb->query( "INSERT INTO `".BIT_DB_PREFIX."users_roles` (`user_id`, `role_id`, `role_name`,`role_desc`) VALUES ( ".ROOT_USER_ID.", 1, 'Administrators','Site operators')" ); $rootUser->addUserToRole( ROOT_USER_ID, 1 ); } else { - vd( 'Errors in root user store:'.PHP_EOL ); - vd( $rootUser->mErrors ); + \Bitweaver\vd( 'Errors in root user store:'.PHP_EOL ); + \Bitweaver\vd( $rootUser->mErrors ); } $gBitSystem->storeConfig( 'user_class', 'RolePermUser', USERS_PKG_NAME ); $gBitUser->mDb->query( "INSERT INTO `".BIT_DB_PREFIX."users_roles` (`user_id`, `role_id`, `role_name`,`role_desc`) VALUES ( ".ROOT_USER_ID.", ".ANONYMOUS_TEAM_ID.", 'Anonymous','Public users not logged')" ); @@ -539,8 +527,8 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitUser->mDb->query( "INSERT INTO `".BIT_DB_PREFIX."users_groups` (`user_id`, `group_id`, `group_name`,`group_desc`) VALUES ( ".ROOT_USER_ID.", 1, 'Administrators','Site operators')" ); $rootUser->addUserToGroup( ROOT_USER_ID, 1 ); } else { - vd( 'Errors in root user store:'.PHP_EOL ); - vd( $rootUser->mErrors ); + \Bitweaver\vd( 'Errors in root user store:'.PHP_EOL ); + \Bitweaver\vd( $rootUser->mErrors ); } $gBitUser->mDb->query( "INSERT INTO `".BIT_DB_PREFIX."users_groups` (`user_id`, `group_id`, `group_name`,`group_desc`) VALUES ( ".ROOT_USER_ID.", ".ANONYMOUS_GROUP_ID.", 'Anonymous','Public users not logged')" ); $gBitUser->mDb->query( "INSERT INTO `".BIT_DB_PREFIX."users_groups` (`user_id`, `group_id`, `group_name`,`group_desc`) VALUES ( ".ROOT_USER_ID.", 2, 'Managers','Site Managers')" ); @@ -553,15 +541,16 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitUser->assignLevelPermissions( 1, 'admin' ); // Create 'Anonymous' user has id= -1 just like phpBB - $storeHash = array( - 'real_name' => 'Guest', - 'login' => 'guest', - 'password' => $_SESSION['password'], - 'email' => 'guest@localhost', - 'pass_due' => FALSE, - 'user_id' => ANONYMOUS_USER_ID, - 'default_role_id' => ANONYMOUS_TEAM_ID - ); + $storeHash = [ + 'real_name' => 'Guest', + 'login' => 'guest', + 'password' => $_SESSION['password'], + 'email' => 'guest@localhost', + 'pass_due' => false, + 'registration_ip' => $_SERVER['REMOTE_ADDR'], + 'user_id' => ANONYMOUS_USER_ID, + 'default_role_id' => ANONYMOUS_TEAM_ID, + ]; if ( defined( 'ROLE_MODEL' ) ) { $anonUser = new RolePermUser(); if( $anonUser->store( $storeHash ) ) { @@ -581,13 +570,15 @@ if( !empty( $_REQUEST['cancel'] ) ) { } // Create 'Admin' user has id= 2 - $storeHash = array( + $storeHash = [ 'real_name' => $_SESSION['real_name'], 'login' => $_SESSION['login'], 'password' => $_SESSION['password'], 'email' => $_SESSION['email'], - 'pass_due' => FALSE - ); + 'registration_ip' => $_SERVER['REMOTE_ADDR'], + 'user_id' => 2, + 'pass_due' => false, + ]; if ( defined( 'ROLE_MODEL' ) ) { $adminUser = new RolePermUser(); if( $adminUser->store( $storeHash ) ) { @@ -596,7 +587,7 @@ if( !empty( $_REQUEST['cancel'] ) ) { // set admin role as default $adminUser->storeUserDefaultRole( $adminUser->mUserId, 1 ); } else { - vd( $adminUser->mErrors ); die; + \Bitweaver\vd( $adminUser->mErrors ); die; } } else { $adminUser = new BitPermUser(); @@ -606,15 +597,15 @@ if( !empty( $_REQUEST['cancel'] ) ) { // set admin group as default $adminUser->storeUserDefaultGroup( $adminUser->mUserId, 1 ); } else { - vd( $adminUser->mErrors ); die; + \Bitweaver\vd( $adminUser->mErrors ); die; } } // kill admin info in $_SESSION -// unset( $_SESSION['real_name'] ); -// unset( $_SESSION['login'] ); -// unset( $_SESSION['password'] ); -// unset( $_SESSION['email'] ); + unset( $_SESSION['real_name'] ); + unset( $_SESSION['login'] ); + unset( $_SESSION['password'] ); + unset( $_SESSION['email'] ); } } @@ -648,4 +639,3 @@ if( !empty( $_REQUEST['cancel'] ) ) { $gBitSmarty->assign( 'next_step', $step + 1 ); $app = '_done'; } -?> |
