From 4c83fa6ee6a1a294de63f7f3268f8ee67032b309 Mon Sep 17 00:00:00 2001 From: Herman van Rink Date: Sun, 10 Apr 2022 17:35:56 +0200 Subject: [PATCH] Add API function mail_user_get_all_by_client, #6332 --- interface/lib/classes/remote.d/mail.inc.php | 20 ++++++++++- interface/web/mail/lib/remote.conf.php | 2 +- .../API-docs/mail_user_get_all_by_client.html | 30 ++++++++++++++++ .../examples/mail_user_get_all_by_client.php | 34 +++++++++++++++++++ 4 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 remoting_client/API-docs/mail_user_get_all_by_client.html create mode 100644 remoting_client/examples/mail_user_get_all_by_client.php diff --git a/interface/lib/classes/remote.d/mail.inc.php b/interface/lib/classes/remote.d/mail.inc.php index cad5980435..dfbad27595 100644 --- a/interface/lib/classes/remote.d/mail.inc.php +++ b/interface/lib/classes/remote.d/mail.inc.php @@ -196,6 +196,24 @@ class remoting_mail extends remoting { return $app->remoting_lib->getDataRecord($primary_id); } + //* Get mail user details for all account that belong to a client. + public function mail_user_get_all_by_client($session_id, $client_id) + { + global $app; + + if(!$this->checkPerm($session_id, 'mail_user_get_all_by_client')) { + throw new SoapFault('permission_denied', 'You do not have the permissions to access this function.'); + return false; + } + $app->uses('remoting_lib'); + $sql = "SELECT u.* FROM `mail_user` u + LEFT JOIN `sys_group` g ON (u.sys_groupid=g.groupid) + WHERE g.client_id=?"; + $params[] = $client_id; + + $result = $app->db->queryAllRecords($sql, true, $params); + return $result; + } //* Add mail domain public function mail_user_add($session_id, $client_id, $params){ @@ -1110,4 +1128,4 @@ class remoting_mail extends remoting { } -?> \ No newline at end of file +?> diff --git a/interface/web/mail/lib/remote.conf.php b/interface/web/mail/lib/remote.conf.php index ae03e9992a..3060a8b4cc 100644 --- a/interface/web/mail/lib/remote.conf.php +++ b/interface/web/mail/lib/remote.conf.php @@ -3,7 +3,7 @@ $function_list['mail_domain_get,mail_domain_add,mail_domain_update,mail_domain_delete,mail_domain_set_status,mail_domain_get_by_domain'] = 'Mail domain functions'; $function_list['mail_aliasdomain_get,mail_aliasdomain_add,mail_aliasdomain_update,mail_aliasdomain_delete'] = 'Mail domain alias functions'; $function_list['mail_mailinglist_get,mail_mailinglist_add,mail_mailinglist_update,mail_mailinglist_delete'] = 'Mail mailinglist functions'; -$function_list['mail_user_get,mail_user_add,mail_user_update,mail_user_delete'] = 'Mail user functions'; +$function_list['mail_user_get,mail_user_add,mail_user_update,mail_user_delete,mail_user_get_all_by_client'] = 'Mail user functions'; $function_list['mail_alias_get,mail_alias_add,mail_alias_update,mail_alias_delete'] = 'Mail alias functions'; $function_list['mail_forward_get,mail_forward_add,mail_forward_update,mail_forward_delete'] = 'Mail forward functions'; $function_list['mail_catchall_get,mail_catchall_add,mail_catchall_update,mail_catchall_delete'] = 'Mail catchall functions'; diff --git a/remoting_client/API-docs/mail_user_get_all_by_client.html b/remoting_client/API-docs/mail_user_get_all_by_client.html new file mode 100644 index 0000000000..2ddbc16556 --- /dev/null +++ b/remoting_client/API-docs/mail_user_get_all_by_client.html @@ -0,0 +1,30 @@ + +ISPCOnfig 3 remote API documentation + + + + + + + + + + +
+

mail_user_get_all_by_client($session_id, $client_id);

+
+

Description:

+

Retrieves information about the mail users belonging to a client.


+

Input Variables:

+

$session_id, $primary_id

+

Parameters (in $params):

+

None

+

Output:

+

Returns all fields and values of the chosen mail users.

+ +
+ + diff --git a/remoting_client/examples/mail_user_get_all_by_client.php b/remoting_client/examples/mail_user_get_all_by_client.php new file mode 100644 index 0000000000..e90a31f127 --- /dev/null +++ b/remoting_client/examples/mail_user_get_all_by_client.php @@ -0,0 +1,34 @@ + $soap_location, + 'uri' => $soap_uri, + 'trace' => 1, + 'exceptions' => 1)); + + +try { + if($session_id = $client->login($username, $password)) { + echo 'Logged successfull. Session ID:'.$session_id.'
'; + } + + //* Set the function parameters. + $client_id = 1; + + $app = $client->mail_user_get_all_by_client($session_id, $client_id); + + print_r($app); + + if($client->logout($session_id)) { + echo 'Logged out.
'; + } + + +} catch (SoapFault $e) { + echo $client->__getLastResponse(); + die('SOAP Error: '.$e->getMessage()); +} + +?> -- GitLab