Beispiel #1
0
function core_getpw($id, $appsDB = False)
{
    if (preg_match("/^-?\\d+/", $id)) {
        return core_getpwuid($id, $appsDB);
    } else {
        return core_getpwnam($id, $appsDB);
    }
}
Beispiel #2
0
 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;
 }
Beispiel #3
0
 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);
                 }
             }
         }
     }
 }