Phonenumber search returns full user objects
This commit is contained in:
1 parent
197ee1f926
commit
47135d2d66
3 files changed
+81
-55
No files matched your search
@@ -58,4 +58,61 @@ function clean_phonenumber($pn) {
|
||||
// E.164
|
||||
function valid_phonenumber($phone) {
|
||||
return preg_match('/^\+?\d{8,15}$/i', $phone);
|
||||
}
|
||||
|
||||
|
||||
function get_user_data($ids, $conn) {
|
||||
$conn->setFetchMode(DB_FETCHMODE_ASSOC);
|
||||
|
||||
/* Get data */
|
||||
$sql_is_member = "u.expires > NOW() OR u.expires IS NULL AS is_member";
|
||||
$CARDNO_LEGACY_MAX = 100000000;
|
||||
$sql_card_is_legacy = "u.cardno<$CARDNO_LEGACY_MAX AS card_is_legacy";
|
||||
$sql_groups = "GROUP_CONCAT(DISTINCT g.id,';',g.name SEPARATOR ',') AS groups";
|
||||
$data_sql = "SELECT u.id,u.username,u.firstname,u.lastname,u.email,up.number,u.expires,u.cardno,$sql_card_is_legacy,$sql_groups,$sql_is_member
|
||||
FROM din_user as u
|
||||
LEFT JOIN din_userphonenumber as up ON up.user_id=u.id
|
||||
LEFT JOIN din_usergrouprelationship AS ug ON u.id=ug.user_id
|
||||
LEFT JOIN din_group AS g ON g.id=ug.group_id
|
||||
WHERE u.id IN ($ids)
|
||||
GROUP BY u.id
|
||||
ORDER BY u.firstname, u.lastname ASC";
|
||||
|
||||
$res = $conn->getAll($data_sql);
|
||||
|
||||
if( DB::isError($res) ) {
|
||||
new Exception($res->getMessage());
|
||||
}
|
||||
$results = array();
|
||||
|
||||
/* Encode and output */
|
||||
foreach($res as $result) {
|
||||
foreach($result as $key => $value) {
|
||||
if($key == "groups") {
|
||||
if($value === "") {
|
||||
continue; // no groups
|
||||
}
|
||||
$u_gs = array();
|
||||
$u_groups = explode(",",$value);
|
||||
foreach($u_groups as $g) {
|
||||
list($id,$name) = explode(";", $g);
|
||||
if( !is_valid_utf8($name) ) {
|
||||
$name = utf8_encode($name);
|
||||
}
|
||||
|
||||
$u_gs[] = array(
|
||||
'id' => $id,
|
||||
'name' => $name
|
||||
);
|
||||
}
|
||||
$result[$key] = $u_gs;
|
||||
}
|
||||
/* Encoding issues? oh yes, utf-8 please */
|
||||
elseif( !is_valid_utf8($value) ) {
|
||||
$result[$key] = utf8_encode($value);
|
||||
}
|
||||
}
|
||||
$results[] = $result;
|
||||
}
|
||||
return $results;
|
||||
}
|
||||
Reference in new issue
Block a user