]> git.defcon.no Git - hermes/blobdiff - api/user.php
backlog add
[hermes] / api / user.php
index 0dcd23cf1a53505ce9bb49484cd68927e71f8932..e8099d9dfebcfbe479f840c277d043c5b8fe10b9 100644 (file)
@@ -1,4 +1,30 @@
 <?php
+/*
+#  Copyright (c) 2012, Gjøvik University College
+#  All rights reserved.
+
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions are met:
+#      * Redistributions of source code must retain the above copyright
+#        notice, this list of conditions and the following disclaimer.
+#      * Redistributions in binary form must reproduce the above copyright
+#        notice, this list of conditions and the following disclaimer in the
+#        documentation and/or other materials provided with the distribution.
+#      * Neither the name of the Gjøvik University College nor the
+#        names of its contributors may be used to endorse or promote products
+#        derived from this software without specific prior written permission.
+#       
+#  THIS SOFTWARE IS PROVIDED BY Gjøvik University College ''AS IS'' AND ANY
+#  EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+#  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+#  DISCLAIMED. IN NO EVENT SHALL Gjøvik University College BE LIABLE FOR ANY
+#  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+#  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+#  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+#  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+#  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+*/
 require_once('config.php');
 require_once('lib/auth_base.php');
 require_once('lib/user_functions.php');
@@ -75,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 
@@ -209,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' ) );
@@ -330,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' ) );