function core_getpw($id, $appsDB = False) { if (preg_match("/^-?\\d+/", $id)) { return core_getpwuid($id, $appsDB); } else { return core_getpwnam($id, $appsDB); } }
function next_travel_record($handler = 0) { global $recordCounter, $charset; if ($row = $this->next_record($handler)) { /* * reply from queryForEdit, nordita database */ if ($row['Leave']) { $row['date'] = $row['Leave']; $row['duration'] = ($row['Return'] - $row['Leave']) / 24 / 3600; $row['p_name'] = $row['Location']; // Id is ambiguos, lets use 'uid' instead if ($row['Id']) { $row['uid'] = $row['Id']; } else { $row['uid'] = $row['id']; } unset($row['Id']); unset($row['id']); if ($row['full_name']) { $row['login'] = $row['username']; $row['gecos'] = core_latin2utf($row['full_name']); } else { if ($u1 = posix_getpwuid($row['uid'])) { $row['login'] = $u1['name']; $row['gecos'] = core_latin2utf($u1['gecos']); } else { $row['login'] = $row['username']; $row['gecos'] = $row['username']; } } } $row['duration'] = (int) ($row['duration'] + 0.5); /* * tooltips */ $cs = array(); if ($row['placeid'] == 'other') { $row['p_name'] = $row['comment']; $row['tooltip'] = $row['comment']; } else { $cs[] = $row['p_name']; if ($row['comment']) { $cs[] = $row['comment']; } if ($row['info']) { $cs[] = $row['info']; } if ($row['Contact']) { $cs[] = "Contact: " . $row['Contact']; } $row['tooltip'] = join(";\n", $cs); $row['tooltip'] = eregi_replace("_", " ", $row['tooltip']); $row['tooltip'] = eregi_replace("<br>", "\n", $row['tooltip']); } $row['comment'] = info2comment($row); if (!$row['login']) { if ($row['uid']) { $u = posix_getpwuid($row['uid']); } if ($u) { $row['login'] = $u['name']; } if (!$row['login'] && eregi('@', $row['Contact'])) { $row['login'] = $row['Contact']; } } if (!$row['gecos']) { if ($row['uid']) { $uu = core_getpwuid($row['uid'], $this); } if ($row['login'] && !$uu) { $uu = core_getpwnam($row['login'], $this); } if ($uu) { $row['gecos'] = core_latin2utf($uu['gecos']); } } if (!$row['login']) { $row['login'] = '******'; } if (!$row['gecos']) { $row['gecos'] = $row['login']; } while (list($k, $v) = each($row)) { $row[$k] = eregi_replace("\"", "'", $row[$k]); $row[$k] = eregi_replace("_", " ", $row[$k]); $row[$k] = eregi_replace(",", ", ", $row[$k]); } reset($row); } return $row; }
function authHtacess($login = "", $pwd = "") { if (!$login) { $login = $_SERVER["PHP_AUTH_USER"]; } if (!$pwd) { $pwd = $_SERVER["PHP_AUTH_PW"]; } $this->dbg("authHtacess: {$login} (htaccess file '" . $this->htaccess . "')"); if (!$login || !$pwd) { return; } // get and parce the .htpasswd file if ($f = $this->locateHTpasswd()) { if (!ereg($this->RequireUser, $login)) { $this->dbg("authHtacess", "{$login} rejected by 'Require user' " . $this->RequireUser); return; } $lines = file($f); while (list($k, $line) = each($lines)) { $this->dbg("authHtacess", "{$line}"); list($Huser, $Hpwd) = split(":", $line); if ($Huser == $login && preg_match("/" . crypt($pwd, $Hpwd) . "/i", $Hpwd)) { core_syslog("Accepted htaccess_auth for {$login} from " . $_SERVER["REMOTE_ADDR"]); $_SESSION["auth"]["type"] = "htaccess"; if ($u = core_getpwnam($login)) { return array($login, $u["gecos"], -1); } else { return array($login, $login, -1); } } } } }