]> git.defcon.no Git - hermes/blobdiff - lib/user_functions.php
First stab at a naive permissions-tool
[hermes] / lib / user_functions.php
diff --git a/lib/user_functions.php b/lib/user_functions.php
deleted file mode 100644 (file)
index 7944551..0000000
+++ /dev/null
@@ -1,217 +0,0 @@
-<?php
-require_once('config.php');
-require_once('lib/common_functions.php');
-require_once('lib/db_functions.php');
-
-$config = get_config();
-
-function generate_password( $length = 32 )
-{
-       $string = "";
-        while ( strlen( $string ) < $length )
-               $string .= substr(md5(rand().rand()), 0, $length);
-       return substr( $string, 0, $length );
-
-}
-
-
-function is_kamailio_subscriber ( $user, $domain )
-{
-       global $config;
-       $query = sprintf("SELECT username FROM %s WHERE username = '%s' AND domain = '%s'",
-               $config['kamailio_subscriber_table'],
-               sql_clean( $user ),
-               sql_clean( $domain )
-       );
-       return sql_dbtest_numrows( $config['kamailio_db'], $query, 1);
-}
-
-function is_provision_user ( $user, $domain )
-{
-       global $config;
-       $query = sprintf("SELECT username FROM %s WHERE username = '%s' AND domain = '%s'",
-               $config['provision_users_table'],
-               sql_clean( $user ),
-               sql_clean( $domain )
-       );
-       return sql_dbtest_numrows( $config['provision_db'], $query, 1);
-}
-
-function add_kamailio_subscriber( $username, $domain, $password, $email )
-{
-
-       global $config;
-
-       $ha1  = md5( $username . ":" . $domain . ":" . $password );
-       $ha1b = md5( $username . "@" . $domain . ":" . $domain . ":" . $password );
-
-       $query = sprintf( "INSERT INTO %s (username, domain, password, email_address, ha1, ha1b) VALUES ('%s','%s','%s', '%s', '%s', '%s')",
-               $config['kamailio_subscriber_table'],
-               sql_clean($username),
-               sql_clean($domain),
-               sql_clean($password),
-               sql_clean($email),
-               $ha1,
-               $ha1b
-       );
-       if ( ! sql_dbexec( $config['kamailio_db'], $query ) ) return false;
-       return true;
-}
-
-function delete_kamailio_subscriber( $username, $domain )
-{
-       global $config;
-
-
-       $query = sprintf("SELECT id FROM %s WHERE username = '%s' AND domain = '%s'",
-               $config['kamailio_subscriber_table'],
-               sql_clean($username),
-               sql_clean($domain)
-       );
-       $row = sql_dbquery_single( $config['kamailio_db'], $query );
-       if  (!$row) return false;
-       $user_rowid = $row['id'];
-       if ( !$user_rowid ) return false;
-
-       $query = sprintf( "DELETE FROM  %s WHERE id = %d AND username = '%s' AND domain = '%s'",
-               $config['kamailio_subscriber_table'],
-               $user_rowid,
-               sql_clean($username),
-               sql_clean($domain)
-       );
-       if ( ! sql_dbexec( $config['kamailio_db'], $query ) ) return false;
-       return true;
-}
-
-function add_provision_user( $username, $password, $domain, $authid, $registrar, $r_port, $proxy, $p_port, $displayname, $dialplan, $linetext )
-{      global $config;
-
-       if ( is_provision_user( $username, $password ) ) return false;
-       $query = sprintf ("INSERT INTO %s ( username, password, displayname, domain, registrar, r_port, proxy, p_port, dialplan, authid, linetext )
-               VALUES ('%s', '%s', '%s', '%s', '%s', %d, '%s', %d, '%s', '%s', '%s')",
-               $config['provision_users_table'],
-               sql_clean($username), 
-               sql_clean($password), 
-               sql_clean($displayname), 
-               sql_clean($domain), 
-               sql_clean($registrar), 
-               $r_port, 
-               sql_clean($proxy), 
-               $p_port, 
-               sql_clean($dialplan), 
-               sql_clean($authid), 
-               sql_clean($linetext)
-       );
-       if ( ! sql_dbexec( $config['provision_db'], $query ) ) return false;
-       return true;
-}
-function get_provision_userid ( $username, $domain )
-{
-       global $config;
-
-       $query = sprintf("SELECT id FROM %s WHERE username = '%s' AND domain = '%s'",
-               $config['provision_users_table'],
-               sql_clean($username),
-               sql_clean($domain)
-       );
-
-       $row = sql_dbquery_single( $config['provision_db'], $query );
-       if  (!$row) return false;
-       $user_rowid = $row['id'];
-       return $user_rowid;
-}
-
-function delete_provision_user( $username, $domain )
-{
-       global $config;
-
-       $user_rowid = get_provision_userid( $username, $domain );
-       if ( !$user_rowid ) return false;
-
-       $query = sprintf( "DELETE FROM  %s WHERE id = %d AND username = '%s' AND domain = '%s'",
-               $config['provision_users_table'],
-               $user_rowid,
-               sql_clean($username),
-               sql_clean($domain)
-       );
-       if ( ! sql_dbexec( $config['provision_db'], $query ) ) return false;
-       return true;
-}
-
-function list_users ( $search = null )
-{
-       global $config;
-       $query = sprintf("SELECT CONCAT(username, '@', domain) FROM %s ORDER BY username,domain", $config['provision_users_table'] );
-
-       if ( array_key_exists ( 'search', $_GET ) )
-       {
-               $search = $_GET['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['provision_users_table'], sql_clean( $search ) );
-       }
-
-       $result = sql_dbquery( $config['provision_db'], $query );
-       if ( !$result ) return null;
-       $list = array();
-       while ( $row = mysql_fetch_row( $result ) )
-       {
-               array_push( $list, $row[0] );
-       }
-       return $list;
-       print json_encode( array( 'response' => 'ok', 'list' => $list ));
-
-
-}
-function get_userdata( $username, $domain )
-{
-       global $config;
-       if ( is_kamailio_subscriber( $username, $domain ) // User must be present in both!
-               && is_provision_user( $username, $domain ) ) $type = 'local';
-       else if ( is_provision_user( $username, $domain ) ) $type = 'remote';
-       else return null;
-
-       $provision_data = null;
-       $kamailio_data = null;
-
-       $query_provision = sprintf ("SELECT id, username, password, displayname, domain, registrar, r_port, proxy, p_port, dialplan, authid, linetext FROM %s WHERE username = '%s' AND domain = '%s'",
-               $config['provision_users_table'],
-               sql_clean($username),
-               sql_clean($domain));
-
-       $provision_data = sql_dbquery_single( $config['provision_db'] , $query_provision );
-       if ( ! $provision_data ) return false;
-
-       if ( $type == 'local' )
-       {
-               // WARNING: Note the typo in the name of the 'permittedcalls' column!
-               $query_kamailio = sprintf ("SELECT id, username, domain, password, email_address, ha1, ha1b, rpid, permitedcalls FROM %s WHERE username = '%s' AND domain = '%s'",
-                       $config['kamailio_subscriber_table'],
-                       sql_clean($username),
-                       sql_clean($domain));
-               $kamailio_data = sql_dbquery_single( $config['kamailio_db'] , $query_kamailio );
-               if ( ! $kamailio_data ) return false;
-       }
-       $user['type'] = $type;
-       $user['username']    = $provision_data['username'];
-       $user['password']    = $provision_data['password'];
-       $user['domain']      = $provision_data['domain'];
-       $user['authid']      = $provision_data['authid'];
-       $user['registrar']   = $provision_data['registrar'];
-       $user['r_port']      = $provision_data['r_port'];
-       $user['proxy']       = $provision_data['proxy'];
-       $user['p_port']      = $provision_data['p_port'];
-       $user['dialplan']    = $provision_data['dialplan'];
-       $user['displayname'] = $provision_data['displayname'];
-       $user['linetext']    = $provision_data['linetext'];
-       if ( $type == 'local' )
-       {
-               $user['email'] = $kamailio_data['email'];
-               $user['ha1']   = $kamailio_data['ha1'];
-               $user['ha1b']  = $kamailio_data['ha1b'];
-               $user['rpid']  = $kamailio_data['rpid'];
-               $user['permittedcalls'] = $kamailio_data['permitedcalls'];
-       }
-
-       return $user;
-}
-       
-?>