* @version $Id$ * @license GPL * @package WebDAVAdmin * * Copyright (c) 2007 Jan Dittberner * * This file is part of WebDAVAdmin. * * 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. */ if (!isset($_SERVER['DavAdminConfDir'])) { header('HTTP/1.0 500 Internal Server Error'); header('Status: 500 Internal Server Error'); header('Content-Type: text/plain;charset=utf8'); print("The Server is not configured correctly. " . "Please tell your Administrator to set the " . "DavAdminConfDir environment variable."); exit(); } /** Include configuration information. */ require_once($_SERVER['DavAdminConfDir'] . '/config.inc.php'); /** DAV administrator group name. */ define(ADMIN_GROUP, 'davadmin'); /** Include the Smarty template engine. */ require_once("smarty/libs/Smarty.class.php"); /** Global Smarty template engine instance. */ $smarty = new Smarty(); $smarty->compile_dir = $davconfig['compile_dir']; /** Handle invalid requests to the application. */ function invalidCall() { header("Content-Type: text/plain; charset=UTF-8"); print("Ungültiger Aufruf!"); die(); } /** Handle errors with an XML message. */ function errorAsXml($errormsg) { header("Content-Type: text/xml; charset=UTF-8"); $GLOBALS['smarty']->assign("errormsg", $errormsg); $GLOBALS['smarty']->display("error.xml"); die(); } /** Handle errors with an HTML error page. */ function errorAsHtml($errormsg) { header("Content-Type: text/html; charset=UTF-8"); $GLOBALS['smarty']->assign("errormsg", $errormsg); $GLOBALS['smarty']->display("error.html"); die(); } function getFullPath($dirname) { return $GLOBALS['davconfig']['dav.dir'] . DIRECTORY_SEPARATOR . $dirname; } // check configuration $errmsgs = array(); if (!isset($davconfig['digest.file'])) { array_push($errmsgs, 'digest.file not defined'); } elseif (!is_readable($davconfig['digest.file']) || !is_writable($davconfig['digest.file'])) { array_push($errmsgs, 'The specified digest file is not readable and writable.'); } if (!isset($davconfig['group.file'])) { array_push($errmsgs, 'group.file not defined'); } elseif (!is_readable($davconfig['group.file']) || !is_writable($davconfig['group.file'])) { array_push($errmsgs, 'The specified group file is not readable and writable.'); } if (!isset($davconfig['namemap.file'])) { array_push($errmsgs, 'namemap.file not defined'); } elseif (!is_readable($davconfig['namemap.file']) || !is_writable($davconfig['namemap.file'])) { array_push($errmsgs, 'The specified name mapping file is not readable and writable.'); } if (!isset($davconfig['dav.dir'])) { array_push($errmsgs, 'dav.dir not defined'); } elseif (!is_dir($davconfig['dav.dir']) || !is_readable($davconfig['dav.dir']) || !is_writable($davconfig['dav.dir'])) { array_push($errmsgs, 'The specified DAV directory is no directory or not accessable.'); } if (!empty($errmsgs)) { errorAsHtml(implode("
", $errmsgs)); } $namemap = json_decode(readfile($davconfig['namemap.file']), true); if ($namemap === NULL) { $namemap = array(); } ?>