@@ -216,23 +216,25 @@ function onShowEnd() {
216216 }
217217
218218 // load relayhost-values
219- $ sql = "SELECT relay_host, relay_user, relay_pass FROM mail_domain WHERE domain_id = ? " ;
220- $ rec = $ app ->db ->queryOneRecord ($ sql , $ app ->functions ->intval ($ _GET ['id ' ]));
221- $ app ->tpl ->setVar ('relay_host ' , $ rec ['relay_host ' ], true );
222- $ app ->tpl ->setVar ('relay_user ' , $ rec ['relay_user ' ], true );
223- $ app ->tpl ->setVar ('relay_pass ' , $ rec ['relay_pass ' ], true );
219+ if ($ client ["limit_relayhost " ] == 'y ' ) {
220+ $ sql = "SELECT relay_host, relay_user, relay_pass FROM mail_domain WHERE domain_id = ? " ;
221+ $ rec = $ app ->db ->queryOneRecord ($ sql , $ app ->functions ->intval ($ _GET ['id ' ]));
222+ $ app ->tpl ->setVar ('relay_host ' , $ rec ['relay_host ' ], true );
223+ $ app ->tpl ->setVar ('relay_user ' , $ rec ['relay_user ' ], true );
224+ $ app ->tpl ->setVar ('relay_pass ' , $ rec ['relay_pass ' ], true );
225+ }
224226
225227 // load dkim-values
226228 $ sql = "SELECT domain, dkim_private, dkim_public, dkim_selector FROM mail_domain WHERE domain_id = ? " ;
227229 $ rec = $ app ->db ->queryOneRecord ($ sql , $ app ->functions ->intval ($ _GET ['id ' ]));
228230 $ dns_key = str_replace (array ('-----BEGIN PUBLIC KEY----- ' ,'-----END PUBLIC KEY----- ' ,"\r" ,"\n" ),'' ,$ rec ['dkim_public ' ]);
229-
231+
230232 $ keyparts = str_split ('v=DKIM1; t=s; p= ' . $ dns_key , 200 );
231233 array_walk ($ keyparts , function (&$ value , $ key ) { $ value = '" ' .$ value .'" ' ; } );
232234 $ dkim_txt = implode ('' , $ keyparts );
233235
234236 $ dns_record = $ rec ['dkim_selector ' ] . '._domainkey. ' . $ rec ['domain ' ] . '. 3600 IN TXT ' .$ dkim_txt ;
235-
237+
236238 $ app ->tpl ->setVar ('dkim_selector ' , $ rec ['dkim_selector ' ], true );
237239 $ app ->tpl ->setVar ('dkim_private ' , $ rec ['dkim_private ' ], true );
238240 $ app ->tpl ->setVar ('dkim_public ' , $ rec ['dkim_public ' ], true );
@@ -263,7 +265,7 @@ function onSubmit() {
263265 if ($ _SESSION ["s " ]["user " ]["typ " ] != 'admin ' ) {
264266 // Get the limits of the client
265267 $ client_group_id = $ app ->functions ->intval ($ _SESSION ["s " ]["user " ]["default_group " ]);
266- $ client = $ app ->db ->queryOneRecord ("SELECT client.mail_servers, limit_maildomain, default_mailserver FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ? " , $ client_group_id );
268+ $ client = $ app ->db ->queryOneRecord ("SELECT client.mail_servers, limit_maildomain, default_mailserver, limit_relayhost FROM sys_group, client WHERE sys_group.client_id = client.client_id and sys_group.groupid = ? " , $ client_group_id );
267269 // When the record is updated
268270 if ($ this ->id > 0 ) {
269271 // restore the server ID if the user is not admin and record is edited
@@ -296,7 +298,7 @@ function onSubmit() {
296298 $ this ->dataRecord ["domain " ] = $ app ->functions ->idn_encode ($ this ->dataRecord ["domain " ]);
297299 $ this ->dataRecord ["domain " ] = strtolower ($ this ->dataRecord ["domain " ]);
298300 }
299-
301+
300302 //* server_id must be > 0
301303 if (isset ($ this ->dataRecord ["server_id " ]) && $ this ->dataRecord ["server_id " ] < 1 ) $ app ->tform ->errorMessage .= $ app ->lng ("server_id_0_error_txt " );
302304
@@ -305,7 +307,7 @@ function onSubmit() {
305307
306308 function onAfterInsert () {
307309 global $ app , $ conf ;
308-
310+
309311 $ domain = $ app ->functions ->idn_encode ($ this ->dataRecord ["domain " ]);
310312
311313 // Spamfilter policy
@@ -319,10 +321,10 @@ function onAfterInsert() {
319321 $ tmp_domain = $ app ->db ->queryOneRecord ("SELECT sys_groupid FROM mail_domain WHERE domain_id = ? " , $ this ->id );
320322 // We create a new record
321323 $ insert_data = array (
322- "sys_userid " => $ _SESSION ["s " ]["user " ]["userid " ],
324+ "sys_userid " => $ _SESSION ["s " ]["user " ]["userid " ],
323325 "sys_groupid " => $ tmp_domain ["sys_groupid " ],
324- "sys_perm_user " => 'riud ' ,
325- "sys_perm_group " => 'riud ' ,
326+ "sys_perm_user " => 'riud ' ,
327+ "sys_perm_group " => 'riud ' ,
326328 "sys_perm_other " => '' ,
327329 "server_id " => $ this ->dataRecord ["server_id " ],
328330 "priority " => 5 ,
@@ -350,7 +352,7 @@ function onAfterInsert() {
350352
351353 function onBeforeUpdate () {
352354 global $ app , $ conf ;
353-
355+
354356 $ domain = $ app ->functions ->idn_encode ($ this ->dataRecord ["domain " ]);
355357
356358 //* Check if the server has been changed
@@ -381,7 +383,7 @@ function onAfterUpdate() {
381383 global $ app , $ conf ;
382384
383385 $ domain = $ app ->functions ->idn_encode ($ this ->dataRecord ["domain " ]);
384-
386+
385387 // Spamfilter policy
386388 $ policy_id = $ app ->functions ->intval ($ this ->dataRecord ["policy " ]);
387389 $ tmp_user = $ app ->db ->queryOneRecord ("SELECT id FROM spamfilter_users WHERE email = ? " , '@ ' . $ domain );
@@ -393,10 +395,10 @@ function onAfterUpdate() {
393395 $ tmp_domain = $ app ->db ->queryOneRecord ("SELECT sys_groupid FROM mail_domain WHERE domain_id = ? " , $ this ->id );
394396 // We create a new record
395397 $ insert_data = array (
396- "sys_userid " => $ _SESSION ["s " ]["user " ]["userid " ],
398+ "sys_userid " => $ _SESSION ["s " ]["user " ]["userid " ],
397399 "sys_groupid " => $ tmp_domain ["sys_groupid " ],
398- "sys_perm_user " => 'riud ' ,
399- "sys_perm_group " => 'riud ' ,
400+ "sys_perm_user " => 'riud ' ,
401+ "sys_perm_group " => 'riud ' ,
400402 "sys_perm_other " => '' ,
401403 "server_id " => $ this ->dataRecord ["server_id " ],
402404 "priority " => 5 ,
@@ -447,7 +449,7 @@ function onAfterUpdate() {
447449
448450 //* Update the mailinglist
449451 $ app ->db ->query ("UPDATE mail_mailinglist SET sys_userid = ?, sys_groupid = ? WHERE domain = ? " , $ client_user_id , $ sys_groupid , $ this ->oldDataRecord ['domain ' ]);
450-
452+
451453 //* Update fetchmail accounts
452454 $ fetchmail = $ app ->db ->queryAllRecords ("SELECT * FROM mail_get WHERE destination like ? " , '%@ ' . $ this ->oldDataRecord ['domain ' ]);
453455 if (is_array ($ fetchmail )) {
@@ -456,7 +458,7 @@ function onAfterUpdate() {
456458 $ app ->db ->datalogUpdate ('mail_get ' , array ("destination " => $ destination , "sys_userid " => $ client_user_id , "sys_groupid " => $ sys_groupid ), 'mailget_id ' , $ rec ['mailget_id ' ]);
457459 }
458460 }
459-
461+
460462 //* Delete the old spamfilter record
461463 $ tmp = $ app ->db ->queryOneRecord ("SELECT id FROM spamfilter_users WHERE email = ? " , '@ ' . $ this ->oldDataRecord ["domain " ]);
462464 $ app ->db ->datalogDelete ('spamfilter_users ' , 'id ' , $ tmp ["id " ]);
@@ -467,10 +469,10 @@ function onAfterUpdate() {
467469 //* update dns-record when the dkim record was changed
468470 // NOTE: only if the domain-name was not changed
469471 if ( $ this ->dataRecord ['active ' ] == 'y ' && $ domain == $ this ->oldDataRecord ['domain ' ] ) {
470- $ dkim_active = @($ this ->dataRecord ['dkim ' ] == 'y ' ) ? true : false ;
472+ $ dkim_active = @($ this ->dataRecord ['dkim ' ] == 'y ' ) ? true : false ;
471473 $ selector = @($ this ->dataRecord ['dkim_selector ' ] != $ this ->oldDataRecord ['dkim_selector ' ]) ? true : false ;
472474 $ dkim_private = @($ this ->dataRecord ['dkim_private ' ] != $ this ->oldDataRecord ['dkim_private ' ]) ? true : false ;
473-
475+
474476 $ soaDomain = $ domain .'. ' ;
475477 while ((!isset ($ soa ) && (substr_count ($ soaDomain ,'. ' ) > 1 ))) {
476478 $ soa = $ app ->db ->queryOneRecord ("SELECT id AS zone, sys_userid, sys_groupid, sys_perm_user, sys_perm_group, sys_perm_other, server_id, ttl, serial FROM dns_soa WHERE active = 'Y' AND origin = ? " , $ soaDomain );
@@ -493,7 +495,7 @@ function onAfterUpdate() {
493495 $ soa_id = $ app ->functions ->intval ($ soa ['zone ' ]);
494496 $ serial = $ app ->validate_dns ->increase_serial ($ soa ["serial " ]);
495497 $ app ->db ->datalogUpdate ('dns_soa ' , array ("serial " => $ serial ), 'id ' , $ soa_id );
496- }
498+ }
497499 }
498500 }
499501
@@ -510,8 +512,8 @@ private function update_dns($dataRecord, $new_rr) {
510512 $ app ->db ->datalogDelete ('dns_rr ' , 'id ' , $ r ['id ' ]);
511513 }
512514 }
513-
514- // also delete a dsn-records with same selector
515+
516+ // also delete a dsn-records with same selector
515517 $ sql = "SELECT * from dns_rr WHERE name ? AND data LIKE 'v=DKIM1%' AND " . $ app ->tform ->getAuthSQL ('r ' );
516518 $ rec = $ app ->db ->queryAllRecords ($ sql , '._domainkey. ' .$ dataRecord ['dkim_selector ' ].'. ' , $ dataRecord ['domain ' ]);
517519 if (is_array ($ rec ))
0 commit comments