]> git.defcon.no Git - hermes/blobdiff - api/lib/user_functions.php
backlog add
[hermes] / api / lib / user_functions.php
index c8556f149476fd04fcb3f2bb243f1ed92f92018e..2deef712c209c00238ce061c2a6e29ab1ec0fc1c 100644 (file)
@@ -265,12 +265,12 @@ function update_provision_pw ( $username, $domain, $password )
 function list_users ( $search = null )
 {
        global $config;
-       $query = sprintf("SELECT CONCAT(username, '@', domain), displayname FROM %s ORDER BY username,domain", $config['hermes_users_table'] );
+       $query = sprintf("SELECT CONCAT(username, '@', domain), displayname, username, domain FROM %s ORDER BY username,domain", $config['hermes_users_table'] );
 
        if ( array_key_exists ( 'search', $_POST ) )
        {
                $search = $_POST['search']; // TODO: Add some sanitation and input validation!
-               $query = sprintf("SELECT CONCAT(username, '@', domain) FROM %s WHERE CONCAT(username, '@', domain) LIKE '%%%s%%' ORDER BY username,domain", $config['hermes_users_table'], sql_clean( $search ) );
+               $query = sprintf("SELECT CONCAT(username, '@', domain), displayname, username, domain FROM %s WHERE CONCAT(username, '@', domain) LIKE '%%%s%%' ORDER BY username,domain", $config['hermes_users_table'], sql_clean( $search ) );
        }
 
        $result = sql_dbquery( $config['hermes_db'], $query );
@@ -278,7 +278,8 @@ function list_users ( $search = null )
        $list = array();
        while ( $row = @mysql_fetch_row( $result ) )
        {
-               array_push( $list, array( "user" => $row[0], "displayname" => $row[1] ) );
+               $online = is_online( $row[2], $row[3] ) ? online : offline;
+               array_push( $list, array( "user" => $row[0], "displayname" => $row[1], "status" => $online ) );
        }
        return $list;
        print json_encode( array( 'response' => 'ok', 'list' => $list ));
@@ -337,5 +338,30 @@ function get_userdata( $username, $domain )
 
        return $user;
 }
-       
+
+function get_locations( $username, $domain )
+{
+       global $config;
+
+       $query = sprintf ("SELECT contact, UNIX_TIMESTAMP(expires) as expires, user_agent, socket FROM %s WHERE username = '%s' AND (domain = '%s' OR domain is NULL)",
+               $config['kamailio_location_table'],
+               sql_clean($username),
+               sql_clean($domain));
+
+       $result = sql_dbquery( $config['kamailio_db'], $query );
+       if ( !$result ) return null;
+       $list = array();
+       while ( $row = @mysql_fetch_row( $result ) )
+       {
+               array_push( $list, array( "contact" => $row[0], "expires" => $row[1], "useragent" => $row[2] ) );
+       }
+       return $list;
+}
+
+function is_online( $username, $domain )
+{
+       if ( get_locations( $username, $domain ) != null ) return true;
+       else return false;
+}
+
 ?>