]> git.defcon.no Git - hermes/blob - api/lib/common_functions.php
First stab at a naive permissions-tool
[hermes] / api / lib / common_functions.php
1 <?php
2 /*
3 # Copyright (c) 2012, Gjøvik University College
4 # All rights reserved.
5
6 # Redistribution and use in source and binary forms, with or without
7 # modification, are permitted provided that the following conditions are met:
8 # * Redistributions of source code must retain the above copyright
9 # notice, this list of conditions and the following disclaimer.
10 # * Redistributions in binary form must reproduce the above copyright
11 # notice, this list of conditions and the following disclaimer in the
12 # documentation and/or other materials provided with the distribution.
13 # * Neither the name of the Gjøvik University College nor the
14 # names of its contributors may be used to endorse or promote products
15 # derived from this software without specific prior written permission.
16 #
17 # THIS SOFTWARE IS PROVIDED BY Gjøvik University College ''AS IS'' AND ANY
18 # EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
19 # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20 # DISCLAIMED. IN NO EVENT SHALL Gjøvik University College BE LIABLE FOR ANY
21 # DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
22 # (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
23 # LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
24 # ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
25 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
26 # SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27 */
28 require_once('config.php');
29 require_once('lib/common_functions.php');
30 require_once('lib/db_functions.php');
31 require_once('lib/check_email.php');
32
33 $config = get_config();
34
35 function is_kamailio_domain ( $domain )
36 {
37 global $config;
38 $query = sprintf("SELECT id FROM %s WHERE domain = '%s'",
39 $config['kamailio_domain_table'],
40 sql_clean( $domain )
41 );
42 $domain = sql_dbquery_single( $config['kamailio_db'], $query );
43 if ( !$domain ) return false;
44 return $domain['id'];
45
46 }
47
48 function get_servers( $domain )
49 {
50 global $config;
51 $query = sprintf("SELECT registrar, r_port, proxy, p_port, prov_url FROM %s WHERE domain = '%s'",
52 $config['hermes_servers_table'],
53 sql_clean( $domain ));
54 $servers = sql_dbquery_single( $config['hermes_db'], $query );
55 return $servers;
56 }
57
58 function verify_sipadress( $address ) //TODO: Improve/expand on the test!
59 {
60 return check_email_address($address); // A SIP address follows the requirements for email addresses...
61 // Except that it permits the use of :portnumber notation!
62 // TODO: Fix this so it allows :NNNN syntax for portnumbers...
63 }
64
65 function split_sipaddress ( $address )
66 {
67 if ( !verify_sipadress( $address ) ) return null;
68 $data = split('@', $address);
69 if ( count( $data ) != 2 ) return null;
70 return $data;
71 }
72
73 function clean_mac ( $input )
74 {
75 $mac = strtolower( preg_replace('/:/', '', $input) );
76 if ( ! preg_match( '/^[a-f0-9]{1,}$/', $mac ) ) return null;
77 if (strlen( $mac ) != 12 ) return null;
78 return $mac;
79 }
80 ?>