示例#1
0
 private function autoinstall()
 {
     $q = new mysql();
     writelogs("FREEWEB: running autoinstall()", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
     if (!$q->DATABASE_EXISTS($this->database)) {
         writelogs("[{$this->servername}] DATABASE DOES NOT EXISTS Create e new one", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
         $q->CREATE_DATABASE($this->database);
     }
     global $GO_LANGUAGE, $lang, $GO_EVENTS;
     require "{$this->www_dir}/Group-Office.php";
     require_once "{$this->www_dir}/classes/filesystem.class.inc";
     require_once "{$this->www_dir}/install/gotest.php";
     include_once "{$this->www_dir}/classes/base/events.class.inc.php";
     require "{$this->www_dir}/language/languages.inc.php";
     require "{$this->www_dir}/install/sql/updates.inc.php";
     require_once "{$this->www_dir}/classes/base/users.class.inc.php";
     require_once "{$this->www_dir}/classes/base/groups.class.inc.php";
     require $GO_LANGUAGE->get_base_language_file('countries');
     require_once "{$this->www_dir}/classes/base/theme.class.inc.php";
     $GO_THEME = new GO_THEME();
     $db = new db();
     $GO_EVENTS = new GO_EVENTS();
     $GO_CONFIG->save_setting('version', count($updates));
     $GO_LANGUAGE->set_language($GO_CONFIG->language);
     $GO_USERS = new GO_USERS();
     $user['id'] = $GO_USERS->nextid("go_users");
     echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" userid \"{$user['id']}\"\n";
     $GO_GROUPS = new GO_GROUPS();
     $GO_GROUPS->query("DELETE FROM go_db_sequence WHERE seq_name='groups'");
     $GO_GROUPS->query("DELETE FROM go_groups");
     $admin_group_id = $GO_GROUPS->add_group(1, $lang['common']['group_admins']);
     $everyone_group_id = $GO_GROUPS->add_group(1, $lang['common']['group_everyone']);
     $internal_group_id = $GO_GROUPS->add_group(1, $lang['common']['group_internal']);
     $GO_MODULES->load_modules();
     require_once "{$this->www_dir}/install/upgrade.php";
     $fs = new filesystem();
     $module_folders = $fs->get_folders($GO_CONFIG->root_path . 'modules/');
     $available_modules = array();
     foreach ($module_folders as $folder) {
         if (!file_exists($folder['path'] . '/install/noautoinstall')) {
             echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" checking module {$folder['name']}\n";
             $available_modules[] = $folder['name'];
         }
     }
     $priority_modules = array('summary', 'email', 'calendar', 'tasks', 'addressbook', 'files', 'notes', 'projects', 'ldapauth');
     for ($i = 0; $i < count($priority_modules); $i++) {
         if (in_array($priority_modules[$i], $available_modules)) {
             echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" add module \"{$priority_modules[$i]}\" [" . $i . "/" . count($priority_modules) . "]\n";
             $GO_MODULES->add_module($priority_modules[$i]);
         }
     }
     for ($i = 0; $i < count($available_modules); $i++) {
         if (!in_array($available_modules[$i], $priority_modules)) {
             if ($available_modules[$i] == "mailings") {
                 continue;
             }
             /*
             if($available_modules[$i]=="blacklist"){continue;}
             if($available_modules[$i]=="search"){continue;}
             if($available_modules[$i]=="modules"){continue;}
             //if($available_modules[$i]=="users"){continue;}
             //if($available_modules[$i]=="comments"){continue;}
             //if($available_modules[$i]=="sieve"){continue;}
             //if($available_modules[$i]=="bookmarks"){continue;}
             //if($available_modules[$i]=="links"){continue;}
             */
             echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" add module \"{$available_modules[$i]}\" [" . $i . "/" . count($available_modules) . "]\n";
             try {
                 $GO_MODULES->add_module($available_modules[$i]);
             } catch (Exception $e) {
                 echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" failed adding \"{$available_modules[$i]}\" module\n";
             }
         }
     }
     writelogs("Adding LDAPAUTH Module GO_MODULES->add_module('ldapauth')", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
     $GO_MODULES->add_module('ldapauth');
     echo "Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" save_setting upgrade_mtime\n";
     $GO_CONFIG->save_setting('upgrade_mtime', $GO_CONFIG->mtime);
     if ($this->uid != null) {
         $u = new user($this->uid);
         $password = $u->password;
         $mail = $u->mail;
         $uid = $this->uid;
         writelogs("Adding {$this->uid}/{$u->password}/{$mail} Module GO_USERS->add_user", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
     } else {
         $ldap = new clladp();
         $uid = $ldap->ldap_admin;
         $password = $ldap->ldap_password;
         $mail = "*****@*****.**";
     }
     $GO_USERS->nextid('go_users');
     writelogs("Starting......: " . date("H:i:s") . " Apache \"{$this->servername}\" adding \"{$uid}\" language {$GO_LANGUAGE->language} user {$mail}", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
     $user['id'] = 1;
     $user['language'] = $GO_LANGUAGE->language;
     $user['first_name'] = $GO_CONFIG->product_name;
     $user['middle_name'] = '';
     $user['last_name'] = "en";
     $user['username'] = "******";
     $user['password'] = "******";
     $user['email'] = "{$mail}";
     $user['sex'] = 'M';
     $user['enabled'] = '1';
     $user['country'] = $GO_CONFIG->default_country;
     $user['work_country'] = $GO_CONFIG->default_country;
     //$GO_USERS->debug=true;
     $GO_USERS->add_user($user, array(1, 2, 3), array($GO_CONFIG->group_everyone));
     writelogs("Starting......: " . date("H:i:s") . " Apache installtion of group office success", __CLASS__ . '/' . __FUNCTION__, __FILE__, __LINE__);
 }
?>
</td>
<td valign="top">
<h2><?php 
echo $admin_groups;
?>
</h2>
<?php 
echo $admin_groups_user;
?>
:<br /><br />
<?php 
echo '<input type="hidden" value="' . $GO_CONFIG->group_everyone . '" name="user_groups[]" />';
$dropbox = new dropbox();
$GO_GROUPS->get_all_groups();
$groups2 = new GO_GROUPS();
$user_groups = array();
while ($GO_GROUPS->next_record()) {
    if ($GO_GROUPS->f('id') != $GO_CONFIG->group_everyone) {
        if ($groups2->is_in_group($_REQUEST['id'], $GO_GROUPS->f('id'))) {
            $user_groups[] = $GO_GROUPS->f('id');
        }
        $dropbox->add_value($GO_GROUPS->f('id'), $GO_GROUPS->f('name'));
    }
}
$dropbox->print_dropbox('user_groups[]', $user_groups, '', true, 10, 200);
?>
</td>
</tr>
<tr>
<td colspan="2">