1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257
|
<?php
/*
* Gallery - a web based photo album viewer and editor
* Copyright (C) 2000-2006 Bharat Mediratta
*
* 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., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA.
*
* $Id: write.inc 13338 2006-03-27 15:32:14Z jenst $
*/
?>
<?php
/**
* @package setup
*/
?>
<?php
/*
** We assume setup/init.php was loaded !
*/
require_once(GALLERY_BASE . '/classes/User.php');
require_once(GALLERY_BASE . '/classes/gallery/User.php');
require_once(GALLERY_BASE . '/classes/NobodyUser.php');
require_once(GALLERY_BASE . '/classes/LoggedInUser.php');
require_once(GALLERY_BASE . '/classes/EverybodyUser.php');
$start_string = "# BEGIN Gallery section";
$end_string = "# END Gallery section. Add User changes below this line";
$outfile = GALLERY_CONFDIR . '/config.php';
@copy("gpl.txt", $outfile);
if ($fd = @fs_fopen($outfile, "a")) {
fwrite($fd, $gallery->session->configData);
fclose($fd);
} else {
fail($outfile);
return;
}
/**
* Process the .htaccess file if present.
*/
if(fs_is_writable(GALLERY_CONFDIR . '/.htaccess')) {
/* Read the .htaccess file */
$htaccess = file(GALLERY_CONFDIR . '/.htaccess');
$htaccess_save = array();
$old_htaccess = true;
$skipping = false;
foreach ($htaccess as $line) {
if ($skipping && trim($line) == $end_string) {
$skipping = false;
} else if ($skipping) {
continue;
} else if (trim($line) == $start_string) {
$skipping = true;
$old_htaccess = false;
} else {
$htaccess_save[]=$line;
}
}
if ($old_htaccess) {
$htaccess_save=array();
}
/*
* Begin the .htaccess file
*/
$outfile = GALLERY_CONFDIR . '/.htaccess';
if ($fd = @fs_fopen($outfile, "w")) {
fwrite($fd, "$start_string\n");
fwrite($fd, "# (Automatically generated. Do not edit this section)\n");
fwrite($fd, "# Note: still under development, so format may change.\n");
fwrite($fd, "# If you edit this file, make a backup before runnng the Config. Wizard.\n\n");
fclose($fd);
}
/*
* Write the php_value lines, if they're permissable in the user's
* environment..
*/
if (isset($GALLERY_PHP_VALUE_OK)) {
$htaccess = file("php_value.template");
if ($fd = @fs_fopen($outfile, "a")) {
foreach ($htaccess as $line) {
if (!ereg('^#', $line)) {
eval("\$line = \"$line\";");
fwrite($fd, $line);
}
}
fclose($fd);
}
}
/*
* Write the mod_rewrite lines, if that mod is available.
*/
if ($GALLERY_REWRITE_OK) {
$htaccess = file("mod_rewrite.template");
if ($fd = @fs_fopen($outfile, "a")) {
foreach ($htaccess as $line) {
// If the gallery is in the root directory, then we need to
// make sure the .htaccess doesn't end up with "RewriteBase \/".
if ($GALLERY_URL === '\\' && ereg('RewriteBase', $line)) {
continue;
}
if (!ereg('^#', $line)) {
eval("\$line = \"$line\";");
fwrite($fd, $line);
}
}
fclose($fd);
}
}
/*
* End the .htaccess file gallery section
*/
if ($fd = @fs_fopen($outfile, "a")) {
fwrite($fd, "$end_string\n");
fclose($fd);
}
/*
* Write the preserved data back to the .htaccess file
*/
if ($fd = @fs_fopen($outfile, "a")) {
foreach ($htaccess_save as $line) {
fwrite($fd, $line);
}
fclose($fd);
}
}
/*
* Don't require UserDB before we've written and included config.php or it will
* have a cow when it tries to verify that the $gallery->app->userDir exists.
*/
include(GALLERY_BASE . '/config.php');
include_once(GALLERY_BASE . '/classes/UserDB.php');
include_once(GALLERY_BASE . '/classes/gallery/UserDB.php');
$userDB = new Gallery_UserDB();
$userDB->version = $gallery->user_version;
$admin = $userDB->getOrCreateUser("admin");
if (strlen($gallery->session->configForm->editPassword[2]) > 0) {
$message = sprintf(_("The password for user %s was changed."), '<b>admin</b>');
$admin->setPassword($gallery->session->configForm->editPassword[2]);
if (!$admin->isAdmin()) {
$message = sprintf(_("An account called %s has been created for you with the password you specified."),"<b>admin</b>");
$admin->setIsAdmin(true);
if (!$admin->getFullName()) {
$admin->setFullName("Administrator");
}
if (!$admin->getEmail() && isset($adminEmail)) {
$admin->setEmail($adminEmail);
}
$admin->setCanCreateAlbums(true);
}
$admin->save();
}
?>
<title><?php echo _("Success!") ?></title>
<center>
<div style="width:60%; text-align:center">
<div class="header"><?php echo _("Your configuration has been successfully saved!") ?></div>
<?php
if (getOS() != OS_WINDOWS) {
if (!empty($message))
$message .= "<br><br>";
else
$message = "";
$message .= _("We highly suggest that you run '/usr/share/gallery/secure.sh' for increased security.");
}
// Inform the user that their gallery is not secure until they remove the 'resetadmin' file
if (fs_file_exists(GALLERY_SETUPDIR . "/resetadmin")) {
if (!empty($message)) $message .= "<br><br>";
$message .= '<span class="attention">'
. _("Note")
. ':<br>'
. sprintf(_("You must remove the '%s' file from the setup directory to make your Gallery configuration secure"), "resetadmin")
. '</span>' ;
}
if (isset($message)) {
echo '<p class="sitedesc">';
echo "\n\t$message";
echo "\n</p>";
}
?>
</div>
<p style="width:80%; text-align:center">
<?php
echo _("You can reconfigure Gallery at any time by re-running this configuration wizard.");
echo '<br>';
echo _("It will save your data so you won't have to enter it all again!");
echo '<br>';
echo '<span class="emphasis">';
echo sprintf(_("Please subscribe to the %s mailing list. This is a very low volume mailing list that will keep you abreast of important changes in %s. This is where we announce new versions, important bug fixes and any security issues and their resolution."),
'<a href="http://gallery.sourceforge.net/lists.php" class="namedurl">gallery-announce</a>',
Gallery());
?>
</span>
<p>
<font size=+2><a href="../albums.php"><?php echo _("Enter the Gallery") ?></a></font>
<p><img src="../images/gallery-tag.png"></p>
</div>
</body>
</html>
<?php
// Clear the session config data
unset($gallery->session->configForm);
unset($gallery->session->configData);
function fail($file) {
?>
<title><?php echo _("Failure") ?>!</title>
<font size="+2"><?php printf(_("Unable to write to %s."), $file )?></font>
<p>
<font color="red">
<?php printf (_("You are missing either %s or %s."), "<i>config.php</i>", "<i>.htaccess</i>") ?>
</font>
<p>
<input type="hidden" name="back_page" value="confirm">
<input type="submit" name="go_back" disabled="disabled" value="<- <?php echo _("Review Settings") ?>">
<?php
return;
}
?>
|