davadmin/admin/common.inc.php
Jan Dittberner 5cffb1dd17 fixes #11
* the config file handling code has been moved to a separate file which is shared between normal and AJAX code
 * the config file existence is checked and a well formatted error message is sent if it doesn't exist
2007-12-01 20:30:41 +00:00

124 lines
4 KiB
PHP

<?php
/**
* Common code for DAVAdmin.
*
* @author Jan Dittberner <jan@dittberner.info>
* @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.
*/
/** Include the code shared between normal pages and AJAX. */
require_once("shared.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,
sprintf(_("%s is not defined."), "digest.file"));
} 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,
sprintf(_("%s is not defined."), "group.file"));
} 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,
sprintf(_("%s is not defined."), "namemap.file"));
} 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,
sprintf(_("%s is not defined."), "dav.dir"));
} 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,
sprintf(_("%s is not defined."), "dav.realm"));
}
if (empty($davconfig['dav.uri'])) {
array_push($errmsgs,
sprintf(_("%s is not defined."), "dav.uri"));
}
if (!empty($errmsgs)) {
errorAsHtml(implode("<br />", $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");
?>