Skip to content
GitLab
Explore
Sign in
Register
EXT
barracuda
Compare revisions
c9716529950126c78c9f9f60b8fce5813399d3a8 to 824ec8293a49ae48739a94f4bf6d002df59ece12
Commits on Source (2)
Add php file update
· 2907b5ea
Cédric
authored
Dec 21, 2017
2907b5ea
Merge branch 'master' of git.ispconfig.org:EXT/barracuda
· 824ec829
Cédric
authored
Dec 21, 2017
824ec829
Hide whitespace changes
Inline
Side-by-side
mail_domain_barracuda_plugin.inc.php
View file @
824ec829
<?php
/**
* mail_domain_barracuda_plugin
* mail_domain_barracuda_plugin
plugin
*
* @author
Gody
- O
RM 2016
* @author
: LEVEILLE Cédric (web@oricom.org)
-
O
ricom Internet Inc.
*/
class
mail_domain_barracuda_plugin
{
var
$plugin_name
=
'mail_domain_barracuda_plugin'
;
var
$class_name
=
'mail_domain_barracuda_plugin'
;
/*
This function is called when the plugin is loaded
*/
function
onLoad
()
{
global
$app
;
...
...
@@ -24,22 +22,27 @@ class mail_domain_barracuda_plugin {
$app
->
plugin
->
registerEvent
(
'mail:mail_domain:on_after_insert'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_edit'
);
$app
->
plugin
->
registerEvent
(
'mail:mail_domain:on_after_update'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_edit'
);
$app
->
plugin
->
registerEvent
(
'mail:mail_domain:on_after_delete'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_del'
);
$app
->
plugin
->
registerEvent
(
'mail:mail_domain:on_after_delete'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_del'
);
$app
->
plugin
->
registerEvent
(
'mailpub:mail_domain:on_after_insert'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_edit'
);
$app
->
plugin
->
registerEvent
(
'mailpub:mail_domain:on_after_update'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_edit'
);
$app
->
plugin
->
registerEvent
(
'mailpub:mail_domain:on_after_delete'
,
'mail_domain_barracuda_plugin'
,
'mail_domain_barracuda_del'
);
}
/*
f
unction to create
and edit
domain into barracuda by api
F
unction to create domain
name
into barracuda by api
*/
private
function
cuda
(
$xml_params
,
$cuda_methode
){
global
$conf
;
$xml_methode
=
new
xmlrpcmsg
(
$cuda_methode
);
$xml_methode
->
addParam
(
$xml_params
);
$xml_methode
->
addParam
(
$xml_params
);
$barra_con
=
new
xmlrpc_client
(
"/cgi-mod/api.cgi?password=
{
$conf
[
'bsf_password'
]
}
"
,
$conf
[
'bsf_hostname'
]);
$barra_con
->
setDebug
(
0
);
$result
=
$barra_con
->
send
(
$xml_methode
);
$result
=
$barra_con
->
send
(
$xml_methode
);
if
(
!
$result
->
faultcode
())
{
...
...
@@ -54,53 +57,68 @@ class mail_domain_barracuda_plugin {
return
$resultat
;
}
/*
Function to edit domain name into barracuda by api
*/
function
mail_domain_barracuda_edit
(
$event_name
,
$page_form
){
global
$app
,
$conf
;
// Récupération des variables
$domain
=
$page_form
->
dataRecord
[
"domain"
]
;
$chk_active
=
$page_form
->
dataRecord
[
"active"
]
;
$server_name
=
$app
->
db
->
queryOneRecord
(
"SELECT server_name FROM server WHERE server_id = "
.
$page_form
->
dataRecord
[
"server_id"
]);
$server_name
=
$server_name
[
'server_name'
];
// Ajout si checkbox non coché sinon suppression
if
(
$chk_active
==
'y'
)
{
// Génération des xmls
$xml_params_add
=
new
xmlrpcval
(
array
(
"domain"
=>
new
xmlrpcval
(
$domain
,
"string"
)
// If domain is in the excluded list, do nothing
if
(
!
in_array
(
$domain
,
$conf
[
'bsf_excluded'
]))
{
$chk_active
=
$page_form
->
dataRecord
[
"active"
]
;
$server_name
=
$app
->
db
->
queryOneRecord
(
"SELECT server_name FROM server WHERE server_id = "
.
$page_form
->
dataRecord
[
"server_id"
]);
$server_name
=
$server_name
[
'server_name'
];
// Verify if domain is enable in ISPConfig
if
(
$chk_active
==
'y'
)
{
// Generate XML
$xml_params_add
=
new
xmlrpcval
(
array
(
"domain"
=>
new
xmlrpcval
(
$domain
,
"string"
)
),
"struct"
);
$xml_params_set
=
new
xmlrpcval
(
array
(
"mta_relay_advanced_use_mx"
=>
new
xmlrpcval
(
0
,
"boolean"
),
"mta_relay_advanced_host"
=>
new
xmlrpcval
(
$server_name
,
"string"
),
"path"
=>
new
xmlrpcval
(
$domain
,
"string"
),
"type"
=>
new
xmlrpcval
(
"domain"
,
"string"
),
),
"struct"
);
$xml_params_set
=
new
xmlrpcval
(
array
(
"mta_relay_advanced_use_mx"
=>
new
xmlrpcval
(
1
,
"boolean"
),
"mta_relay_advanced_host"
=>
new
xmlrpcval
(
$server_name
,
"string"
),
"path"
=>
new
xmlrpcval
(
$domain
,
"string"
),
"type"
=>
new
xmlrpcval
(
"domain"
,
"string"
),
),
"struct"
);
// TODO ajout gestion erreur en cas de plantage coté barracuda
$add
=
$this
->
cuda
(
$xml_params_add
,
'domain.add'
);
$set
=
$this
->
cuda
(
$xml_params_set
,
'config.set'
);
}
else
{
$this
->
mail_domain_barracuda_del
(
$event_name
,
$page_form
)
;
$add
=
$this
->
cuda
(
$xml_params_add
,
'domain.add'
);
// Add domain name to the barracuda
$set
=
$this
->
cuda
(
$xml_params_set
,
'config.set'
);
// Update domain name destination inside barracuda
// TODO : Log in case of error (WIP)
}
else
{
$this
->
mail_domain_barracuda_del
(
$event_name
,
$page_form
)
;
}
}
}
/*
Function to remove domain name from the barracuda by api
*/
function
mail_domain_barracuda_del
(
$event_name
,
$page_form
){
global
$app
,
$conf
;
// Récupération des variables
$domain
=
$page_form
->
dataRecord
[
"domain"
]
;
// Génération xmls
$xml_params_del
=
new
xmlrpcval
(
array
(
"domain"
=>
new
xmlrpcval
(
$domain
,
"string"
)
),
"struct"
);
// Suppresion domaine du barracuda
// TODO ajout gestion erreur en cas de plantage coté barracuda
$del
=
$this
->
cuda
(
$xml_params_del
,
'domain.delete'
);
// If domain is in the excluded list, do nothing
if
(
!
in_array
(
$domain
,
$conf
[
'bsf_excluded'
]))
{
// Generate XML
$xml_params_del
=
new
xmlrpcval
(
array
(
"domain"
=>
new
xmlrpcval
(
$domain
,
"string"
)
),
"struct"
);
// Remove domain name from the barracuda
$del
=
$this
->
cuda
(
$xml_params_del
,
'domain.delete'
);
// TODO : Log in case of error (WIP)
}
}
}
// end class
...
...
@@ -108,8 +126,6 @@ class mail_domain_barracuda_plugin {
//################# XMLRPC fonction and Class #######################
// by Edd Dumbill (C) 1999-2002
...
...