提交 ef337e2a authored 作者: Raymond Chandler's avatar Raymond Chandler

handle group lookups a little better

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk/contrib@16286 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 5d310d11
...@@ -53,7 +53,7 @@ class fs_directory extends fs_curl { ...@@ -53,7 +53,7 @@ class fs_directory extends fs_curl {
FROM %1$sdirectory%1$s FROM %1$sdirectory%1$s
WHERE %1$susername%1$s = \'%3$s\' WHERE %1$susername%1$s = \'%3$s\'
AND %1$sdomain%1$s = \'%4$s\')' AND %1$sdomain%1$s = \'%4$s\')'
, DB_FIELD_QUOTE, $new_pin, $username, $this->request['domain'] , DB_FIELD_QUOTE, $new_pin, $username, $this->request['domain']
); );
$this->debug($query); $this->debug($query);
$this->db->exec($query); $this->db->exec($query);
...@@ -94,7 +94,7 @@ class fs_directory extends fs_curl { ...@@ -94,7 +94,7 @@ class fs_directory extends fs_curl {
$where_clause = ''; $where_clause = '';
} }
$query = sprintf("SELECT * FROM directory d %s %s ORDER BY username" $query = sprintf("SELECT * FROM directory d %s %s ORDER BY username"
, $join_clause, $where_clause , $join_clause, $where_clause
); );
$this->debug($query); $this->debug($query);
$res = $this -> db -> queryAll($query); $res = $this -> db -> queryAll($query);
...@@ -144,8 +144,8 @@ class fs_directory extends fs_curl { ...@@ -144,8 +144,8 @@ class fs_directory extends fs_curl {
*/ */
private function write_params($user_id) { private function write_params($user_id) {
if (array_key_exists($user_id, $this->users_params) if (array_key_exists($user_id, $this->users_params)
&& is_array($this->users_params[$user_id]) && is_array($this->users_params[$user_id])
&& count($this->users_params[$user_id]) > 0) { && count($this->users_params[$user_id]) > 0) {
$this -> xmlw -> startElement('params'); $this -> xmlw -> startElement('params');
foreach($this->users_params[$user_id] as $pname => $pvalue) { foreach($this->users_params[$user_id] as $pname => $pvalue) {
$this -> xmlw -> startElement('param'); $this -> xmlw -> startElement('param');
...@@ -188,7 +188,7 @@ class fs_directory extends fs_curl { ...@@ -188,7 +188,7 @@ class fs_directory extends fs_curl {
*/ */
private function write_variables($user_id) { private function write_variables($user_id) {
if (array_key_exists($user_id, $this->users_vars) if (array_key_exists($user_id, $this->users_vars)
&& is_array($this->users_vars[$user_id])) { && is_array($this->users_vars[$user_id])) {
$this -> xmlw -> startElement('variables'); $this -> xmlw -> startElement('variables');
foreach($this->users_vars[$user_id] as $vname => $vvalue) { foreach($this->users_vars[$user_id] as $vname => $vvalue) {
$this -> xmlw -> startElement('variable'); $this -> xmlw -> startElement('variable');
...@@ -231,18 +231,18 @@ class fs_directory extends fs_curl { ...@@ -231,18 +231,18 @@ class fs_directory extends fs_curl {
*/ */
private function write_gateways($user_id) { private function write_gateways($user_id) {
if (is_array($this->users_gateways) if (is_array($this->users_gateways)
&& array_key_exists($user_id, $this->users_gateways) && array_key_exists($user_id, $this->users_gateways)
&& is_array($this -> users_gateways[$user_id])) { && is_array($this -> users_gateways[$user_id])) {
$this -> xmlw -> startElement('gateways'); $this -> xmlw -> startElement('gateways');
$gateway_count = count($this -> users_gateways[$user_id]); $gateway_count = count($this -> users_gateways[$user_id]);
for ($i=0; $i<$gateway_count; $i++) { for ($i=0; $i<$gateway_count; $i++) {
$this -> xmlw -> startElement('gateway'); $this -> xmlw -> startElement('gateway');
$this -> xmlw -> writeAttribute( $this -> xmlw -> writeAttribute(
'name', $this -> users_gateways[$user_id][$i]['gateway_name'] 'name', $this -> users_gateways[$user_id][$i]['gateway_name']
); );
$this -> write_user_gateway_params( $this -> write_user_gateway_params(
$this -> users_gateways[$user_id][$i]['id'] $this -> users_gateways[$user_id][$i]['id']
); );
$this -> xmlw -> endElement(); $this -> xmlw -> endElement();
} }
...@@ -277,7 +277,7 @@ class fs_directory extends fs_curl { ...@@ -277,7 +277,7 @@ class fs_directory extends fs_curl {
*/ */
private function write_user_gateway_params($d_gw_id) { private function write_user_gateway_params($d_gw_id) {
if (is_array($this->users_gateway_params[$d_gw_id]) if (is_array($this->users_gateway_params[$d_gw_id])
&& count($this->users_gateway_params[$d_gw_id]) > 0) { && count($this->users_gateway_params[$d_gw_id]) > 0) {
foreach($this->users_gateway_params[$d_gw_id] as $pname => $pvalue) { foreach($this->users_gateway_params[$d_gw_id] as $pname => $pvalue) {
$this -> xmlw -> startElement('param'); $this -> xmlw -> startElement('param');
$this -> xmlw -> writeAttribute('name', $pname); $this -> xmlw -> writeAttribute('name', $pname);
...@@ -293,15 +293,15 @@ class fs_directory extends fs_curl { ...@@ -293,15 +293,15 @@ class fs_directory extends fs_curl {
*/ */
function write_global_params() { function write_global_params() {
$query = sprintf('%s %s %s;', $query = sprintf('%s %s %s;',
'SELECT * FROM directory_global_params dgp', 'SELECT * FROM directory_global_params dgp',
'JOIN directory_domains dd ON dd.id=dgp.domain_id', 'JOIN directory_domains dd ON dd.id=dgp.domain_id',
"WHERE dd.domain_name='" . $this -> request['domain'] . "'" "WHERE dd.domain_name='" . $this -> request['domain'] . "'"
); );
$res = $this -> db -> queryAll($query); $res = $this -> db -> queryAll($query);
if (FS_PDO::isError($res)) { if (FS_PDO::isError($res)) {
$this -> comment($query); $this -> comment($query);
$error_msg = sprintf("Error while selecting global params - %s" $error_msg = sprintf("Error while selecting global params - %s"
, $this -> db -> getMessage() , $this -> db -> getMessage()
); );
trigger_error($error_msg); trigger_error($error_msg);
} }
...@@ -325,15 +325,15 @@ class fs_directory extends fs_curl { ...@@ -325,15 +325,15 @@ class fs_directory extends fs_curl {
*/ */
function write_global_vars() { function write_global_vars() {
$query = sprintf('%s %s %s;', $query = sprintf('%s %s %s;',
'SELECT * FROM directory_global_vars dgv', 'SELECT * FROM directory_global_vars dgv',
'JOIN directory_domains dd ON dd.id=dgv.domain_id', 'JOIN directory_domains dd ON dd.id=dgv.domain_id',
"WHERE dd.domain_name='" . $this -> request['domain'] . "'" "WHERE dd.domain_name='" . $this -> request['domain'] . "'"
); );
$res = $this -> db -> queryAll($query); $res = $this -> db -> queryAll($query);
if (FS_PDO::isError($res)) { if (FS_PDO::isError($res)) {
$this -> comment($query); $this -> comment($query);
$error_msg = sprintf("Error while selecting global vars - %s" $error_msg = sprintf("Error while selecting global vars - %s"
, $this -> db -> getMessage() , $this -> db -> getMessage()
); );
trigger_error($error_msg); trigger_error($error_msg);
} }
...@@ -390,13 +390,9 @@ class fs_directory extends fs_curl { ...@@ -390,13 +390,9 @@ class fs_directory extends fs_curl {
$mailbox = empty($directory[$i]['mailbox']) ? $username : $directory[$i]['mailbox']; $mailbox = empty($directory[$i]['mailbox']) ? $username : $directory[$i]['mailbox'];
$this -> xmlw -> startElement('user'); $this -> xmlw -> startElement('user');
$this -> xmlw -> writeAttribute('id', $username); $this -> xmlw -> writeAttribute('id', $username);
if (empty($directory[$i]['group_name'])) { $this -> write_params($directory[$i]['id']);
$this -> write_params($directory[$i]['id']); $this -> write_variables($directory[$i]['id']);
$this -> write_variables($directory[$i]['id']); $this -> write_gateways($directory[$i]['id']);
$this -> write_gateways($directory[$i]['id']);
} else {
$this->xmlw->writeAttribute('type', 'pointer');
}
$this -> xmlw -> endElement(); $this -> xmlw -> endElement();
} }
$this->xmlw->endElement(); $this->xmlw->endElement();
......
Markdown 格式
0% 或
您添加了 0 人 到此讨论。请谨慎行事。
请先完成此评论的编辑!
请 注册 或者 后发表评论