]> git.defcon.no Git - hermes/blobdiff - api/user.php
backlog add
[hermes] / api / user.php
index 7d5494dda1b6356c46db0739c6d89eb15b0ab43b..e8099d9dfebcfbe479f840c277d043c5b8fe10b9 100644 (file)
@@ -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' ) );