X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=include%2Ffunctions.inc;h=ec1d945f9d081d7dddb91b0f38672d7e0eeb4ee5;hb=343367db13017701f67f4d3ed11eae1fbc25dfa2;hp=cc724f8a62807467cc5b295ac272ba36fa7dbcac;hpb=99804a3a530a241361cd8c07050ff470a6517299;p=gosa.git diff --git a/include/functions.inc b/include/functions.inc index cc724f8a6..ec1d945f9 100644 --- a/include/functions.inc +++ b/include/functions.inc @@ -18,9 +18,24 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* Configuration file location */ -define ("CONFIG_DIR", "/etc/gosa"); -define ("CONFIG_FILE", "gosa.conf"); +/* Allow setting the config patih in the apache configuration + e.g. SetEnv CONFIG_FILE /etc/path + */ +if(!isset($_SERVER['CONFIG_DIR'])){ + define ("CONFIG_DIR", "/etc/gosa"); +}else{ + define ("CONFIG_DIR",$_SERVER['CONFIG_DIR']); +} + +/* Allow setting the config file in the apache configuration + e.g. SetEnv CONFIG_FILE gosa.conf.2.5 + */ +if(!isset($_SERVER['CONFIG_FILE'])){ + define ("CONFIG_FILE", "gosa.conf"); +}else{ + define ("CONFIG_FILE",$_SERVER['CONFIG_FILE']); +} + define ("CONFIG_TEMPLATE_DIR", "../contrib/"); define ("HELP_BASEDIR", "/var/www/doc/"); @@ -153,17 +168,19 @@ function get_browser_language() /* Try to use users primary language */ global $config; $ui= get_userinfo(); - if ($ui != NULL){ + if (isset($ui) && $ui !== NULL){ if ($ui->language != ""){ return ($ui->language.".UTF-8"); } } - /* Try to use users primary language */ - if ($ui != NULL){ - if ($ui->language != ""){ - return ($ui->language.".UTF-8"); + /* Check for global language settings in gosa.conf */ + if(isset($config->data['MAIN']['LANG']) && !empty($config->data['MAIN']['LANG'])) { + $lang = $config->data['MAIN']['LANG']; + if(!preg_match("/utf/i",$lang)){ + $lang .= ".UTF-8"; } + return($lang); } /* Load supported languages */ @@ -314,7 +331,7 @@ function ldap_login_user ($username, $password) /* Check if mail address is also a valid auth name */ $auth_mail = FALSE; - if(isset($config->current['AUTH_MAIL']) && preg_match("/true/",$config->current['AUTH_MAIL'])){ + if(isset($config->current['AUTH_MAIL']) && preg_match("/^true$/i",$config->current['AUTH_MAIL'])){ $auth_mail = TRUE; } @@ -344,7 +361,7 @@ function ldap_login_user ($username, $password) /* LDAP schema is not case sensitive. Perform additional check. */ $attrs= $ldap->fetch(); if($auth_mail){ - if ($attrs['uid'][0] != $username && $attrs['mail'][0] != $username){ + if ($attrs['uid'][0] != $username && strcasecmp($attrs['mail'][0], $username) != 0){ return(NULL); } }else{ @@ -2062,34 +2079,33 @@ function progressbar($percentage,$width=100,$height=15,$showvalue=false) $progress = (int)(($percentage /100)*$width); - /* Abort printing out percentage, if divs are to small */ - - /* If theres a better solution for this, use it... */ - $str = " -
- -
+ $str = "\n
"; -
"; + $str.= "\n
"; - if(($height >10)&&($showvalue)){ - $str.= " - ".$percentage."% - "; - } + if(($height >10)&&($showvalue)){ + $str.= "\n "; + $str.= "\n ".$percentage."% "; + $str.= "\n "; + } - $str.= "
"; + $str.= "\n
"; + $str.= "\n
"; + $str.= "\n
"; + $str.= "\n
"; - return($str); + return($str); } @@ -2309,7 +2325,7 @@ function get_base_from_hook($dn, $attrib) $command= $config->current['BASE_HOOK']; if ($command != ""){ - $command.= " '$dn' $attrib"; + $command.= " '".@LDAP::fix($dn)."' $attrib"; if (check_command($command)){ @DEBUG (DEBUG_SHELL, __LINE__, __FUNCTION__, __FILE__, $command, "Execute"); exec($command, $output); @@ -2478,48 +2494,6 @@ function get_base_from_hook($dn, $attrib) } -function prepare4mailbody($string) -{ - $string = html_entity_decode($string); - - $from = array( - "/%/", - "/ /", - "/\n/", - "/\r/", - "/!/", - "/#/", - "/\*/", - "/\//", - "//", - "/\?/", - "/\&/", - "/\(/", - "/\)/", - "/\"/"); - - $to = array( - "%25", - "%20", - "%0A", - "%0D", - "%21", - "%23", - "%2A", - "%2F", - "%3C", - "%3E", - "%3F", - "%38", - "%28", - "%29", - "%22"); - - $string = preg_replace($from,$to,$string); - - return($string); -} function mac2company($mac) @@ -2644,6 +2618,62 @@ function is_in_network($network, $netmask, $address) } +/* Add a given objectClass to an attrs entry */ +function add_objectClass($classes, &$attrs) +{ + if (is_array($classes)){ + $list= $classes; + } else { + $list= array($classes); + } + + foreach ($list as $class){ + $attrs['objectClass'][]= $class; + } +} + + +/* Removes a given objectClass from the attrs entry */ +function remove_objectClass($classes, &$attrs) +{ + if (isset($attrs['objectClass'])){ + /* Array? */ + if (is_array($classes)){ + $list= $classes; + } else { + $list= array($classes); + } + + $tmp= array(); + foreach ($attrs['objectClass'] as $oc) { + foreach ($list as $class){ + if ($oc != $class){ + $tmp[]= $oc; + } + } + } + $attrs['objectClass']= $tmp; + } +} + + +function cred_encrypt($input, $password) { + + $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); + $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM); + + return bin2hex(mcrypt_encrypt(MCRYPT_RIJNDAEL_128, $password, $input, MCRYPT_MODE_ECB, $iv)); +} + + +function cred_decrypt($input,$password) { + $size = mcrypt_get_iv_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC); + $iv = mcrypt_create_iv($size, MCRYPT_DEV_RANDOM); + + return mcrypt_decrypt(MCRYPT_RIJNDAEL_128, $password, pack("H*", $input), MCRYPT_MODE_ECB, $iv); +} + + /* Returns contents of the given POST variable and check magic quotes settings */ function get_post($name) {