Пример #1
0
// Look for the action in the "fixed" drivers : AjxpClient, Auth & Conf
$ajxpDriver = new AJXP_ClientDriver(ConfService::getRepository());
$ajxpDriver->applyIfExistsAndExit($action, array_merge($_GET, $_POST), $_FILES);
$authDriver = ConfService::getAuthDriverImpl();
$authDriver->applyIfExistsAndExit($action, array_merge($_GET, $_POST), $_FILES);
$confDriver = ConfService::getConfStorageImpl();
$confDriver->applyIfExistsAndExit($action, array_merge($_GET, $_POST), $_FILES);
// TRYING TO GET A DRIVER WHEN NO USER IS LOGGED
if (AuthService::usersEnabled() && AuthService::getLoggedUser() == null && !ALLOW_GUEST_BROWSING) {
    AJXP_XMLWriter::header();
    AJXP_XMLWriter::requireAuth(true);
    AJXP_XMLWriter::close();
    exit(1);
}
// INIT DRIVER
$Driver = ConfService::getRepositoryDriver();
if ($Driver == null || !is_a($Driver, "AbstractDriver")) {
    AJXP_XMLWriter::header();
    if (is_a($Driver, "AJXP_Exception")) {
        AJXP_XMLWriter::sendMessage(null, "Cannot initialize driver : " . $Driver->getMessage());
    } else {
        AJXP_XMLWriter::sendMessage(null, "Cannot find driver!");
    }
    AJXP_XMLWriter::close();
    exit(1);
}
if ($Driver->hasAction($action)) {
    // CHECK RIGHTS
    if (AuthService::usersEnabled()) {
        $loggedUser = AuthService::getLoggedUser();
        if ($Driver->actionNeedsRight($action, "r") && ($loggedUser == null || !$loggedUser->canRead(ConfService::getCurrentRootDirIndex() . ""))) {