X-Git-Url: https://git.defcon.no/?a=blobdiff_plain;f=api%2Fuser.php;h=e8099d9dfebcfbe479f840c277d043c5b8fe10b9;hb=e3ea78bd48d210947fcfcb73977e6a34e6b31293;hp=7d5494dda1b6356c46db0739c6d89eb15b0ab43b;hpb=32b42c418a3bc21529c8992916c6ead97c15ff1e;p=hermes diff --git a/api/user.php b/api/user.php index 7d5494d..e8099d9 100644 --- a/api/user.php +++ b/api/user.php @@ -101,6 +101,40 @@ token_auth(); else print json_encode ( array( 'response' => 'invalid') ); break; + + case "/location": + if ( array_key_exists('user', $_POST) || + ( array_key_exists('username', $_POST) && array_key_exists('domain', $_POST ))) + { + $username = ""; + $domain = ""; + if ( array_key_exists('username', $_POST) ) + { + $username = $_POST['username']; + $domain = $_POST['domain']; + } + else + { + $user = split_sipaddress($_POST['user']); + if ( !$user ) + { + print json_encode ( array( 'response' => 'failed', 'cause' => 'invalid', 'detail' => 'Invalid SIP address') ); + break; + } + list ( $username, $domain ) = $user; + } + $location = get_locations( $username, $domain ); + if ( $location == null ) + { + print json_encode( array( 'response' => 'failed', 'cause' => 'offline' )); + break; + } + print json_encode( array( 'response' => 'ok', 'locations' => $location )); + } + else + print json_encode ( array( 'response' => 'invalid') ); + break; + case "/list": /* Simply list all users in user@domain format @@ -235,9 +269,10 @@ token_auth(); delete_provision_user( $username, $domain ); // Give errormessage, and quit. print json_encode( array( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Failed to read recently added data. Operations rolled back' ) ); - + break; } print json_encode( array( 'response' => 'ok', 'user' => $userdata )); + break; } else print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) ); @@ -356,9 +391,10 @@ token_auth(); delete_provision_user( $username, $domain ); // Give errormessage, and quit. print json_encode( array( 'response' => 'failed', 'cause' => 'dbfail', 'detail' => 'Failed to read recently added data. Operations rolled back' ) ); - + break; } print json_encode( array( 'response' => 'ok', 'user' => $userdata )); + break; } else print json_encode( array( 'response' => 'invalid', 'cause' => 'parameters' ) );