functions.inc 64.99 KiB
<?php
/*
  This code is part of FusionDirectory (http://www.fusiondirectory.org/)
  Copyright (C) 2003-2010  Cajus Pollmeier
  Copyright (C) 2011-2018  FusionDirectory
  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 St, Fifth Floor, Boston, MA 02110-1301, USA.
/*!
 * \file functions.inc
 *  Common functions and named definitions.
/* Define common locations and variables */
require_once ('variables.inc');
/* Include required files */
require_once (CACHE_DIR.'/'.CLASS_CACHE);
require_once ('functions_debug.inc');
require_once ('accept-to-gettext.inc');
/* Define constants for debugging */
define ('DEBUG_TRACE',    1); /*! Debug level for tracing of common actions (save, check, etc.) */
define ('DEBUG_LDAP',     2); /*! Debug level for LDAP queries */
define ('DEBUG_DB',       4); /*! Debug level for database operations */
define ('DEBUG_SHELL',    8); /*! Debug level for shell commands */
define ('DEBUG_POST',     16); /*! Debug level for POST content */
define ('DEBUG_SESSION',  32); /*! Debug level for SESSION content */
define ('DEBUG_CONFIG',   64); /*! Debug level for CONFIG information */
define ('DEBUG_ACL',      128); /*! Debug level for ACL infos */
define ('DEBUG_SI',       256); /*! Debug level for communication with Argonaut */
define ('DEBUG_MAIL',     512); /*! Debug level for all about mail (mailAccounts, imap, sieve etc.) */
define ('DEBUG_FAI',      1024); /* FAI (incomplete) */
/* Define shadow states */
define ('POSIX_ACCOUNT_EXPIRED', 1);
define ('POSIX_WARN_ABOUT_EXPIRATION', 2);
define ('POSIX_FORCE_PASSWORD_CHANGE', 4);
define ('POSIX_DISALLOW_PASSWORD_CHANGE', 8);
/* Rewrite german 'umlauts' and spanish 'accents'
   to get better results */
$REWRITE = [ "ä" => "ae",
    "ö" => "oe",
    "ü" => "ue",
    "Ä" => "Ae",
    "Ö" => "Oe",
    "Ü" => "Ue",
    "ß" => "ss",
    "á" => "a",
    "é" => "e",
    "í" => "i",
    "ó" => "o",
    "ú" => "u",
    "Á" => "A",
    "É" => "E",
    "Í" => "I",