diff --git a/functions.inc.php b/functions.inc.php index ddc8883d..cf8e7a26 100644 --- a/functions.inc.php +++ b/functions.inc.php @@ -1526,9 +1526,8 @@ function db_connect($ignore_errors = false) { /** * Returns the appropriate boolean value for the database. - * Currently only PostgreSQL and MySQL are supported. * @param boolean $bool (REQUIRED) - * @return String or int as appropriate. + * @return string|int as appropriate for underlying db platform */ function db_get_boolean($bool) { if (! (is_bool($bool) || $bool == '0' || $bool == '1')) { @@ -1992,8 +1991,8 @@ function db_where_clause($condition, $struct, $additional_raw_where = '', $searc $querypart = $field . $operator . "'" . escape_string($value) . "'"; // might need other types adding here. - if (db_pgsql() && in_array($struct[$field]['type'], array('ts', 'num')) && $value === '') { - $querypart = $field . $operator . " NULL"; + if (db_pgsql() && isset($struct[$field]) && in_array($struct[$field]['type'], array('ts', 'num')) && $value === '') { + $querypart = $field . $operator . " NULL"; } } @@ -2138,6 +2137,42 @@ function gen_show_status($show_alias) { } } + // Vacation CHECK + if ( $CONF['show_vacation'] == 'YES' ) { + $stat_result = db_query("SELECT * FROM ". $CONF['database_tables']['vacation'] ." WHERE email = '" . $show_alias . "' AND active = '" . db_get_boolean(true) . "'") ; + if ($stat_result['rows'] == 1) { + $stat_string .= "" . $CONF['show_status_text'] . " "; + } else { + $stat_string .= $CONF['show_status_text'] . " "; + } + } + + // Disabled CHECK + if ( $CONF['show_disabled'] == 'YES' ) { + $stat_result = db_query("SELECT * FROM ". $CONF['database_tables']['mailbox'] ." WHERE username = '" . $show_alias . "' AND active = '" . db_get_boolean(false) . "'"); + if ($stat_result['rows'] == 1) { + $stat_string .= "" . $CONF['show_status_text'] . " "; + } else { + $stat_string .= $CONF['show_status_text'] . " "; + } + } + + // Expired CHECK + if ( Config::bool('password_expiration') && Config::bool('show_expired') ) { + $now = 'now()'; + if (db_sqlite()) { + $now = "datetime('now')"; + } + + $stat_result = db_query("SELECT * FROM ". $CONF['database_tables']['mailbox'] ." WHERE username = '" . $show_alias . "' AND password_expiry <= $now AND active = '" . db_get_boolean(true) . "'"); + + if ($stat_result['rows'] == 1) { + $stat_string .= "" . $CONF['show_status_text'] . " "; + } else { + $stat_string .= $CONF['show_status_text'] . " "; + } + } + // POP/IMAP CHECK if ($CONF['show_popimap'] == 'YES') { $stat_delimiter = "";