* @version $Id$ * @license GPL * @package DAVAdmin * * Copyright (c) 2007 Jan Dittberner * * This file is part of DAVAdmin. * * 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(_("Invalid call!")); 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 is 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 is 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 is 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 is 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($davconfig['dav.realm'])) { array_push($errmsgs, _("dav.realm is not defined.")); } if (empty($davconfig['dav.uri'])) { array_push($errmsgs, _("dav.uri is not defined.")); } if (!empty($errmsgs)) { errorAsHtml(implode("
", $errmsgs)); } function cmp_by_usernames($user1, $user2) { return strcmp($user1['username'], $user2['username']); } $namemapdata = file_get_contents($davconfig['namemap.file']); $namemap = json_decode($namemapdata, true); uasort($namemap, "cmp_by_usernames"); ?>