addresses #1
directories are working users still have dependencies to database code
This commit is contained in:
parent
5e60bf4a9a
commit
7bffc8bf97
12 changed files with 168 additions and 183 deletions
|
@ -30,6 +30,24 @@
|
|||
/** Include common code. */
|
||||
include_once('common.inc.php');
|
||||
|
||||
function getGroups($username) {
|
||||
$groupdata = file($GLOBALS['davconfig']['group.file']);
|
||||
$retval = array();
|
||||
foreach ($groupdata as $line) {
|
||||
$colonpos = strpos($line, ":");
|
||||
if ($colonpos > 0) {
|
||||
$groupname = trim(substr($line, 0, $colonpos - 1));
|
||||
$users = explode(" ", substr($line, $colonpos + 1));
|
||||
foreach ($users as $user) {
|
||||
if (trim($user) == $username) {
|
||||
array_push($retval, $groupname);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets XML encoded data for a user.
|
||||
*
|
||||
|
@ -37,34 +55,15 @@ include_once('common.inc.php');
|
|||
* @return XML string
|
||||
*/
|
||||
function getUserData($uid) {
|
||||
if (!is_numeric($uid)) {
|
||||
if (!(is_numeric($uid) && array_key_exists($uid, $GLOBALS['namemap']))) {
|
||||
errorAsXml(sprintf(_("Invalid user id %s"), $uid));
|
||||
}
|
||||
try {
|
||||
$currentuser = $_SERVER['PHP_AUTH_USER'];
|
||||
|
||||
$dbh = new PDO($GLOBALS['dsn'], $GLOBALS['dbuser'], $GLOBALS['dbpass']);
|
||||
$sth = $dbh->prepare("SELECT groupname FROM dav_group, dav_password WHERE dav_group.username=dav_password.username AND dav_password.uid=:uid");
|
||||
if (!$sth->execute(array(':uid' => $uid))) {
|
||||
statementErrorAsXml($sth);
|
||||
}
|
||||
$groups = array();
|
||||
while ($grouprow = $sth->fetch(PDO::FETCH_ASSOC)) {
|
||||
array_push($groups, $grouprow['groupname']);
|
||||
}
|
||||
$sth = $dbh->prepare("SELECT username, firstname, lastname FROM dav_password WHERE uid=:uid");
|
||||
if (!$sth->execute(array(':uid' => $uid))) {
|
||||
statementErrorAsXml($sth);
|
||||
}
|
||||
$row = $sth->fetch(PDO::FETCH_ASSOC);
|
||||
$retval = sprintf('<?xml version="1.0" encoding="utf8"?><userdata><uid>%d</uid><username>%s</username><firstname>%s</firstname><lastname>%s</lastname><groups>%s</groups><loggedin>%d</loggedin></userdata>',
|
||||
$uid, $row['username'], $row['firstname'],
|
||||
$row['lastname'], implode(", ", $groups),
|
||||
($currentuser == $row['username']) ? 1 : 0);
|
||||
$dbh = null;
|
||||
} catch (PDOException $e) {
|
||||
errorAsXml($e->getMessage());
|
||||
}
|
||||
$row = $GLOBALS['namemap'][$uid];
|
||||
$groups = getGroups($row['username']);
|
||||
$retval = sprintf('<?xml version="1.0" encoding="utf8"?><userdata><uid>%d</uid><username>%s</username><firstname>%s</firstname><lastname>%s</lastname><groups>%s</groups><loggedin>0</loggedin></userdata>',
|
||||
$uid, $row['username'], $row['firstname'],
|
||||
$row['lastname'], implode(", ", $groups));
|
||||
header("Content-Type: text/xml; charset=UTF-8");
|
||||
return $retval;
|
||||
}
|
||||
|
@ -123,6 +122,11 @@ function validateUserData(&$userdata, $forinsert) {
|
|||
return $errormsgs;
|
||||
}
|
||||
|
||||
function createDigest($username, $realm, $password) {
|
||||
return sprintf("%s:%s:%s", $username, $realm,
|
||||
md5(sprintf("%s:%s:%s", $username, $realm, $password)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Updates the data of a user in the database.
|
||||
*
|
||||
|
@ -297,21 +301,9 @@ if ($_GET) {
|
|||
}
|
||||
} else {
|
||||
$currentuser = $_SERVER['PHP_AUTH_USER'];
|
||||
|
||||
|
||||
header("Content-Type: text/html; charset=UTF-8");
|
||||
try {
|
||||
$dbh = new PDO($dsn, $dbuser, $dbpass);
|
||||
$query = $dbh->prepare("SELECT uid, username, firstname, lastname FROM dav_password ORDER BY username");
|
||||
$query->execute();
|
||||
$rows = $query->fetchall(PDO::FETCH_ASSOC);
|
||||
foreach ($rows as $key => $value) {
|
||||
$value['loggedin'] = ($value['username'] == $currentuser);
|
||||
$rows[$key] = $value;
|
||||
}
|
||||
$smarty->assign("users", $rows);
|
||||
$smarty->display("users.html");
|
||||
} catch (PDOException $e) {
|
||||
errorAsHtml($e->getMessage());
|
||||
}
|
||||
$smarty->assign("users", $namemap);
|
||||
$smarty->display("users.html");
|
||||
}
|
||||
?>
|
Loading…
Add table
Add a link
Reference in a new issue