ISPConfig 3 issueshttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues2024-03-21T18:52:53Zhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6669mail_domain_add() with api - fires mail_mail_domain_edit with event where a "...2024-03-21T18:52:53ZHannesmail_domain_add() with api - fires mail_mail_domain_edit with event where a "new domain" case check is missing on user/spamlist updateOn line 63 of mail_mail_domain_plugin.inc.php the code checks if there is domain name change or owner change for mailbox/spamfilter update.
It checks if oldDataRecord exists but this record exists on mail_domain_add() too (empty but exi...On line 63 of mail_mail_domain_plugin.inc.php the code checks if there is domain name change or owner change for mailbox/spamfilter update.
It checks if oldDataRecord exists but this record exists on mail_domain_add() too (empty but exists) and oldDataRecord\['domain'\] != $domain is true too (because oldDataRecord\['domain'\] is empty/undef) - so the code get executed. I am not sure if it update anything because mostly search for email %@olddomain and olddomain ist empty but think it is better to check if oldDataRecord\['domain'\] exists
```
diff --git a/interface/lib/plugins/mail_mail_domain_plugin.inc.php b/interface/lib/plugins/mail_mail_domain_plugin.inc.php
--- a/interface/lib/plugins/mail_mail_domain_plugin.inc.php
+++ b/interface/lib/plugins/mail_mail_domain_plugin.inc.php (date 1711013653411)
@@ -60,7 +60,7 @@
}
//** If the domain name or owner has been changed, change the domain and owner in all mailbox records
- if($page_form->oldDataRecord && ($page_form->oldDataRecord['domain'] != $domain ||
+ if($page_form->oldDataRecord && !empty($page_form->oldDataRecord['domain']) && ($page_form->oldDataRecord['domain'] != $domain ||
(isset($page_form->dataRecord['client_group_id']) && $page_form->oldDataRecord['sys_groupid'] != $page_form->dataRecord['client_group_id']))) {
$app->uses('getconf');
$mail_config = $app->getconf->get_server_config($page_form->dataRecord["server_id"], 'mail');
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6668Changing tab in tabbed views2024-03-21T10:18:07ZSergioChanging tab in tabbed viewsHi,
I'd like to bring to your attention an unclear behavior of the ISPConfig tabbed views. We have a form with a few tabs and 2 buttons: save and cancel. But... if you change tab the modifications will be saved without clicking on "Save...Hi,
I'd like to bring to your attention an unclear behavior of the ISPConfig tabbed views. We have a form with a few tabs and 2 buttons: save and cancel. But... if you change tab the modifications will be saved without clicking on "Save". This is unclear in my opinion, since the user should confirm that he wants to apply the modifications. So, in my opinion, the correct way should be eiter to not save changes until the user pushes on "save" or to show a popup saying something like "you're about to switch tab, would you apply the changes?".
What do you think?
Thanks,
Regards,
Sergiohttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6667Bug in mail_mail_domain_plugin function mail_mail_domain_edit spamfilter upda...2024-03-21T18:40:37ZHannesBug in mail_mail_domain_plugin function mail_mail_domain_edit spamfilter update iterate over column insteat rowsIn the function mail_mail_domain_edit at spamfilter update - the code iterate over the columns of queryOneRecord instead of the rows of queryAllRecords
This result in wrong spamfilter settings.
(I got a tip about this bug from another ...In the function mail_mail_domain_edit at spamfilter update - the code iterate over the columns of queryOneRecord instead of the rows of queryAllRecords
This result in wrong spamfilter settings.
(I got a tip about this bug from another user who found it at doing domain update over api )
```
diff --git a/interface/lib/plugins/mail_mail_domain_plugin.inc.php b/interface/lib/plugins/mail_mail_domain_plugin.inc.php
--- a/interface/lib/plugins/mail_mail_domain_plugin.inc.php
+++ b/interface/lib/plugins/mail_mail_domain_plugin.inc.php (date 1699374995000)
@@ -255,7 +255,7 @@
// If domain changes, update spamfilter_users
// and fire spamfilter_wblist_update events so rspamd files are rewritten
if ($old_domain != $domain) {
- $tmp_users = $app->db->queryOneRecord("SELECT id,fullname FROM spamfilter_users WHERE email LIKE ?", '%@' . $old_domain);
+ $tmp_users = $app->db->queryAllRecords("SELECT id,fullname FROM spamfilter_users WHERE email LIKE ?", '%@' . $old_domain);
if(is_array($tmp_users)) {
foreach ($tmp_users as $tmp_old) {
$tmp_new = $app->db->queryOneRecord("SELECT id,fullname FROM spamfilter_users WHERE email = ?", '@' . $domain);
```3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6666Perfect Server Automated ISPConfig 3 Installation, Installing packages failed2024-03-18T07:01:40ZFrancescoPerfect Server Automated ISPConfig 3 Installation, Installing packages failedFollowing the https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/ guide on Ubuntu 22.04 (LTS) x64 fails installing phpmyadmin database entries.
Details:
```
[INFO] Installing phpMyAdmin
[WARN] Query CREATE DATABASE IF NOT E...Following the https://www.howtoforge.com/ispconfig-autoinstall-debian-ubuntu/ guide on Ubuntu 22.04 (LTS) x64 fails installing phpmyadmin database entries.
Details:
```
[INFO] Installing phpMyAdmin
[WARN] Query CREATE DATABASE IF NOT EXISTS phpmyadmin; failed. (/lib/os/class.ISPConfigDebianOS.inc.php:354)
[WARN] Query CREATE USER IF NOT EXISTS 'pma'@'localhost'; failed. (/lib/os/class.ISPConfigDebianOS.inc.php:354)
[WARN] Query ALTER USER 'pma'@'localhost' IDENTIFIED BY 'XXX'; failed. (/lib/os/class.ISPConfigDebianOS.inc.php:354)
[WARN] Query GRANT ALL PRIVILEGES ON phpmyadmin.* TO 'pma'@'localhost' IDENTIFIED BY 'XXX' WITH GRANT OPTION; failed. (/lib/os/class.ISPConfigDebianOS.inc.php:354)
[WARN] Query FLUSH PRIVILEGES; failed. (/lib/os/class.ISPConfigDebianOS.inc.php:354)
ERROR 2002 (HY000): Can't connect to local server through socket '/run/mysqld/mysqld.sock' (111)
[WARN] Command mysql --defaults-file=/etc/mysql/debian.cnf -D phpmyadmin < /usr/share/phpmyadmin/sql/create_tables.sql failed. (/lib/os/class.ISPConfigDebianOS.inc.php:361)
[INFO] HTTPoxy config.
[INFO] Installing acme.sh (Let's Encrypt).
[INFO] acme.sh (Let's Encrypt) installed.
[INFO] ISPConfig does not yet support mailman3 and mailman2 is no longer available in Ubuntu 22.04.
[INFO] Installing packages haveged, geoip-database, libclass-dbi-mysql-perl, libtimedate-perl, build-essential, autoconf, automake, libtool, flex, bison, debhelper, binutils
[ERROR] Exception occurred: ISPConfigOSException -> Installing packages failed. (/ispconfig.ai.php:15)
root@ethical-hacker:~# cat /etc/mysql/debian.cnf
# THIS FILE IS OBSOLETE. STOP USING IT IF POSSIBLE.
# This file exists only for backwards compatibility for
# tools that run '--defaults-file=/etc/mysql/debian.cnf'
# and have root level access to the local filesystem.
# With those permissions one can run 'mariadb' directly
# anyway thanks to unix socket authentication and hence
# this file is useless. See package README for more info.
[client]
host = localhost
user = root
[mysql_upgrade]
host = localhost
user = root
# THIS FILE WILL BE REMOVED IN A FUTURE DEBIAN RELEASE.
```https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6664Override login form from theme2024-03-11T22:15:33ZLuttjeOverride login form from themeCopied from [this forum post](https://forum.howtoforge.com/threads/override-login-form-from-theme.92018/), so we're tracking this issue in the right place (an issue).
## Summary
We can override other templates in other modules by simply...Copied from [this forum post](https://forum.howtoforge.com/threads/override-login-form-from-theme.92018/), so we're tracking this issue in the right place (an issue).
## Summary
We can override other templates in other modules by simply placing .htm templates in interface/web/themes/mytheme/templates/modulename/template-to-override.htm
However since the login page is not a module, ISPConfig doesn't bother to look inside my theme's templates/login directory. The templates I want to customize there are login/index.htm, login/otp.htm and login/password_reset.htm
Instead it appears (looking at the source-code) that the _fileSearch method in interface/lib/classes/tpl.inc.php:
1. Passes by the first guard as isset($_SESSION['s']['module']['name']) is false on the login page
2. Matches the full path, because web/login/index.php looks for $app->tpl->setInclude('content_tpl', 'templates/index.htm'); and finds that relative to the interface/web/ directory
## Naive fix
```php
// inside _fileSearch in lib/classes/tpl.inc.php
$modulename = false;
if(isset($_SESSION['s']['module']['name'])) {
$modulename = $_SESSION['s']['module']['name'];
} elseif(strpos($_SERVER['PHP_SELF'], '/login/') === 0) {
$modulename = 'login';
}
if($modulename && isset($_SESSION['s']['theme'])) {
if(is_file(ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$modulename.'/'.$filename)) {
return ISPC_THEMES_PATH.'/'.$_SESSION['s']['theme'].'/templates/'.$modulename.'/'.$filename;
}
}
```
I'll double-check the contribution guidelines and code conventions to see if the above fix will suffice. Furthermore I'll make a list of the pages I tested after applying the fix.
**I'll be picking up this issue sometime before the end of this Wednesday, submitting a PR that closes this issue.**3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6661Update gitignore2024-03-07T20:49:16ZMichaelUpdate gitignoreFor some reason patch command related excludes (*.rej, *.orig) have been removed.
Related push request coming...For some reason patch command related excludes (*.rej, *.orig) have been removed.
Related push request coming...3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6660Wrong colspan in two list views2024-03-07T20:53:11ZMichaelWrong colspan in two list viewsAffected by this are server_list.htm and backup_stats_list.htm:
![firefox_VhWLOyLO7a](/uploads/415359870c34cadc393f0b1818052e10/firefox_VhWLOyLO7a.png)Affected by this are server_list.htm and backup_stats_list.htm:
![firefox_VhWLOyLO7a](/uploads/415359870c34cadc393f0b1818052e10/firefox_VhWLOyLO7a.png)3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6657Active state in DNS DMARC editor not shown correctly2024-02-29T20:46:30ZHairyActive state in DNS DMARC editor not shown correctly## Summary
There are at least three places where the active status of the DNS DMARC record can be viewed or set.
Two places seem to work, while the third does not work.
1) DNS->Zones->example.com->Records
The first interface lets you vi...## Summary
There are at least three places where the active status of the DNS DMARC record can be viewed or set.
Two places seem to work, while the third does not work.
1) DNS->Zones->example.com->Records
The first interface lets you view the active status, but not change the active status of the DMARC record.
The first interface works correctly.
2) DNS->Zones->example.com->Records->RAW TXT Edit
The second interface lets you view and set the active status of the DMARC record.
The second interface works correctly.
3) DNS->Zones->example.com->DMARC Button Edit
The third interface lets you view and set the active status of the DMARC record.
The third interface does not work correctly.
The third interface will always say that the DMARC record is inactive (not checked), no matter what the actual active status of the DMARC record really is.
If you save the record using the third interface, the record will be saved with whichever active or inactive option you selected.
However, when the record is saved, the page is refreshed and it will still say that the record is inactive (unchecked), no matter what the true active status of the DMARC record really is.
## Proposed fix
I tried to fix this by editing the following files:
dns/form/dns_dmarc.tform.php
dns/dns_dmarc_edit.php
There is some commented code in the dns/dns_dmarc_edit.php file which makes me think that someone else has already tried to fix this issue but was also unsuccesful.
Maybe that's why this bug has existed for many many many years.
Hopefully someone else who knows the code better than I can look at it and easily fix this bug.
I look forward to seeing the fix so that I can learn the ISPC code a little bettter.
Commented code in dns/dns_dmarc_edit.php file
```
//if ($rec['active'] == 'Y') $app->tpl->setVar("active", "CHECKED"); else $app->tpl->setVar("active", "UNCHECKED");
```
## Environment
ISPConfig 3.2.11p2
Debian 11
## Related log entries
issue-fix-dmarc-ui3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6652gitignore file does not support VS IDE2024-02-27T20:57:16ZHairygitignore file does not support VS IDE## Summary
The gitignore file does not contain any support for using Visual Studio IDE.
Developers should be able to use VS IDE.
## Environment
Visual Studio 2022 Community
## Proposed fix
I can fix this issue by adding the following ...## Summary
The gitignore file does not contain any support for using Visual Studio IDE.
Developers should be able to use VS IDE.
## Environment
Visual Studio 2022 Community
## Proposed fix
I can fix this issue by adding the following lines to the gitignore file, at a minimum:
```
# Visual Studio IDE cache/options directory
.vs/
```
## Related log entries
issue-add-vs-ide-support-to-gitignore3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6650rspamd worker-controller type attribute2024-03-21T18:32:25ZPyte Crspamd worker-controller type attributeHi,
in the default installation of ISPConfig the file /etc/rspamd/local.d/worker-controller.inc contains the following lines:
```
# Included from top-level .conf file
type = "controller";
count = 1;
password = "{REDACTED}";
secure_ip =...Hi,
in the default installation of ISPConfig the file /etc/rspamd/local.d/worker-controller.inc contains the following lines:
```
# Included from top-level .conf file
type = "controller";
count = 1;
password = "{REDACTED}";
secure_ip = "127.0.0.1";
secure_ip = "::1";
static_dir = "${WWWDIR}";
```
which results in the following error message in the rspamd logs and while running rspamadm commands:
`unkown worker attribute: type; worker type: controller`
According to the official documentation of rspamd there is no attribute `type` for controller configuration and we should remove that line.
See https://rspamd.com/doc/workers/controller.html for all available attributes.3.2.12https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6648The cron job frequency exceeds the allowed limit.2024-02-12T03:44:11ZAlexandre Pereira BühlerThe cron job frequency exceeds the allowed limit.Good morning,
Debian 10 operating systems
ISPConfig version: 3.2.11p2.
Scheduling tasks in cron does not respect the -1 limit in the template and says it is impossible to create a new task.
See screenshots and description of the problem ...Good morning,
Debian 10 operating systems
ISPConfig version: 3.2.11p2.
Scheduling tasks in cron does not respect the -1 limit in the template and says it is impossible to create a new task.
See screenshots and description of the problem at:
https://forum.howtoforge.com/threads/can-i-downgrade-the-ispconfig-update-error-in-cron-jobs.91859/
Thank youhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6647Avoid errors on zone delete2024-02-15T08:21:45ZHelmoAvoid errors on zone deleteWhen I delete a DNS zone I often get warnings mailed.
This is because named-checkzone is ran for every rr being deleted, and in the end the NS records are missing.
```
WARNING - Reason for Bind restart failure: zone example.com/IN: has...When I delete a DNS zone I often get warnings mailed.
This is because named-checkzone is ran for every rr being deleted, and in the end the NS records are missing.
```
WARNING - Reason for Bind restart failure: zone example.com/IN: has no NS records
zone example.com/IN: not loaded due to errors.
```
The message itself is also a copy/paste bug, at that point it's not yet restarting bind. It's `named-checkzone`.
I'd like to pass on a flag from dns_soa_del.php to indicate that we're deleting a whole soa.
Let me know if this method is suitable, or if you see a better way.3.2.12HelmoHelmohttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6646Make client domains searchable2024-02-11T12:31:11ZHelmoMake client domains searchableThe data from the domains module does not show up in the search results.
I understand that there was hardly a use for it... but combined with #6645 I think it would make sense for me to include them.
![image](/uploads/00fa5b7533edebd6c...The data from the domains module does not show up in the search results.
I understand that there was hardly a use for it... but combined with #6645 I think it would make sense for me to include them.
![image](/uploads/00fa5b7533edebd6c9ea7513605c8e7d/image.png)3.2.12HelmoHelmohttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6645Delete button on (Web) Domain and SOA edit form2024-02-11T12:29:58ZHelmoDelete button on (Web) Domain and SOA edit formSimilar to my MR !1362 I'd like to also add optional delete buttons to the Web Domain and SOA edit pages.Similar to my MR !1362 I'd like to also add optional delete buttons to the Web Domain and SOA edit pages.3.2.12HelmoHelmohttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6644CAA Record *.domain.tld. can not be saved2024-02-09T16:27:08ZTill BrehmCAA Record *.domain.tld. can not be savedCAA Record *.domain.tld. can not be saved.CAA Record *.domain.tld. can not be saved.3.2.11p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6643rspamd policy per mailbox wrongly removed on mailuser update2024-02-09T16:27:06ZLucarspamd policy per mailbox wrongly removed on mailuser update## Summary
If you update a mailbox from ispconfig interface, without change the spamfilter policy, the rspamd per-user configuration is removed
## Steps to reproduce
1. install a server default with autoinstaller (debian 11/12) with rsp...## Summary
If you update a mailbox from ispconfig interface, without change the spamfilter policy, the rspamd per-user configuration is removed
## Steps to reproduce
1. install a server default with autoinstaller (debian 11/12) with rspamd as mailfilter
2. create a mailbox
3. set to this mailbox a spamfilter policy (example normal)
4. save
5. you will see the file rspamd/local.d/{user}.conf file written
6. then enter again on the mailbox from ispconfig
7. try to update the quota with a different value, without change the spamfilter policy
8. save
9. now you will see the file rspamd/local.d/{user}.conf removed
## Correct behaviour
The correct behaviour is that the mailbox will be updated, without the rspamd policy custom of the mail user removed
## Environment
Server OS + version: (Debian 11/12)
ISPConfig version: latest stable
Software version of the related software: everything to the latest stable
Output of the command: n/a
## Proposed fix
**This is NOT** a proposted fix, but some information that hope could be useful.
Basically I have found that when a mailbox user is updated from ispconfig without changing the spamfilter policy, on the file
`/usr/local/ispconfig/server/plugins-available/rspamd_plugin.inc.php at the row 285` the variable `$data['new']['policy_id']` is always empty so `intval($data['new']['policy_id'])` is always `0` and the `if` is entered and the file removed:
```
if((!$this->isValidEmail($app->functions->idn_encode($email_address))) || !isset($data['new']['policy_id']) || intval($data['new']['policy_id']) == 0 && $type == 'spamfilter_user') {
if(is_file($settings_file)) {
unlink($settings_file);
}
} else {
[...]
```
In my testing server in order to avoid that i did something like this:
```
if ((!$this->isValidEmail($app->functions->idn_encode($email_address)))){
[...]
```
but i known that **THIS IS NOT THE SOLUTION** (due i did only on test, for debug purpose). Due that is really needed to understand: or why the `$data['new']['policy_id']` is empty, or if it is that correct, accordingly change the original if to manage them properly.
If you can reproduce this, i think that a patch is urgently required because as you can understand is very easy to have misleading anti spam settings for certain users.3.2.11p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6642Mail user filter search hangs with javascript errors in browser2024-02-09T16:27:14ZBas MevissenMail user filter search hangs with javascript errors in browser## Summary
When logging in to ISPConfig as mail user, searching the e-mail filter list causes a hang with browser javascript errors. It will not recover by itself and a refresh (F5) is required to gain control again. When logged in with ...## Summary
When logging in to ISPConfig as mail user, searching the e-mail filter list causes a hang with browser javascript errors. It will not recover by itself and a refresh (F5) is required to gain control again. When logged in with administrative or client user account, it does not happen. However, that seems to be a different page.
Tested with on Ubuntu 22.04.3 LTS (Jammy Jellyfish)) ISPConfig 3.2.11p1, issue was also present with Ubuntu 14.04 LT ESM.
See https://forum.howtoforge.com/threads/mailbox-e-mail-filter-search-hangs-when-logged-in-as-mailuser.91734/ for discussion that lead to this issue report.
## Steps to reproduce
1. Login to ISPConfig with mail user account
2. Go to "Email Filters"
3. Type something in search box and press search symbol
## Correct behaviour
A search result should be shown
## Environment
```
Server OS + version: Ubuntu 22.04.3 LTS (Jammy Jellyfish))
ISPConfig version: 3.2.11p1
Apache version: 2.4.52
PHP version: 8.1.2-1ubuntu2.14
```
## References
https://forum.howtoforge.com/threads/mailbox-e-mail-filter-search-hangs-when-logged-in-as-mailuser.91734/
## Screenshots
![upload_2024-1-18_18-18-42](/uploads/ed90b6cd5397a3699007d022a725ce47/upload_2024-1-18_18-18-42.png)
![upload_2024-1-19_12-18-30](/uploads/ee9eb0468882c00b622997daac5d1af0/upload_2024-1-19_12-18-30.png)
![upload_2024-1-19_12-19-7](/uploads/372839cd9da5f0e253420d3d2be87d9e/upload_2024-1-19_12-19-7.png)
## Related log entries
Nothing found unfortunately3.2.11p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6641Multiserver sync issues with some older systems2024-02-09T16:27:09ZTill BrehmMultiserver sync issues with some older systems
https://forum.howtoforge.com/threads/ispc-add-new-serwer.91807/#post-453676
https://forum.howtoforge.com/threads/problems-after-new-installation-on-multi-server-sql-errors.91212/#post-450144
https://forum.howtoforge.com/threads/ispc-add-new-serwer.91807/#post-453676
https://forum.howtoforge.com/threads/problems-after-new-installation-on-multi-server-sql-errors.91212/#post-4501443.2.11p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6640DKIM key not generated for IDN domain2024-02-09T16:27:13ZTill BrehmDKIM key not generated for IDN domainhttps://forum.howtoforge.com/threads/no-dkim-key-in-idn-domains.90826/#post-453655https://forum.howtoforge.com/threads/no-dkim-key-in-idn-domains.90826/#post-4536553.2.11p2https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/6638No Login ISPConfig Control Panel on 80802024-02-01T07:13:00ZJannikNo Login ISPConfig Control Panel on 8080## Summary
If i want to open the Interface there is an Error 500
## Steps to reproduce
1. Open ISPConfig Control Panel [https://ipadress:8080](https://ipadress:8080)
## Correct behaviour
Login Page of ISPconfig is diplayed
## Envir...## Summary
If i want to open the Interface there is an Error 500
## Steps to reproduce
1. Open ISPConfig Control Panel [https://ipadress:8080](https://ipadress:8080)
## Correct behaviour
Login Page of ISPconfig is diplayed
## Environment
Server OS + version: Debian 11 ISPConfig version: 3.2.11p1
Software version of the related software: Server version: Apache/2.4.56 (Debian) Server built: 2023-04-02T03:06:01 PHP 7.4.33 (cli) (built: Sep 4 2023 08:11:54) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.33, Copyright (c), by Zend Technologies
```plaintext
```
![phpErrorispconfig.PNG](/uploads/d3fdbff0039ad21a5641d327bfe8d293/phpErrorispconfig.PNG)