ISPConfig 3 issueshttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues2020-09-08T07:45:32Zhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4639Folder protection options can conflict with existing configured locations in ...2020-09-08T07:45:32ZRamil ValitovFolder protection options can conflict with existing configured locations in nginx (locations merge problem)The problem happens if the following both conditions are met:
1. User configures a password protected folder in ISPConfig (Sites - Web Access - Protected Folders).
2. The same folder is already configured in nginx (for example, in vho...The problem happens if the following both conditions are met:
1. User configures a password protected folder in ISPConfig (Sites - Web Access - Protected Folders).
2. The same folder is already configured in nginx (for example, in vhost template, directive snippets or web options).
In this case the locations are not merged by ISPConfig when it generates the final vhost configuration file. As a result, the file contains mupltiple locations that leads to nginx syntax error.
Example. Let's assume, we have "test" location configured in directive snippets:
```
location /test/ {
try_files $uri $uri/ /index.php?$args;
}
```
Then add "test" to the list of protected folders. The resulting configuration file that ISPConfig generates will be invalid:
```
location /test/ {
try_files $uri $uri/ /index.php?$args;
}
## some other nginx directives
location /test/ { ##merge##
auth_basic "Members Only";
auth_basic_user_file /var/www/clients/client1/web5/web/test/.htpasswd;
location ~ \.php$ {
try_files /89f314d371fa173948fcad289dd51f95.htm @php;
}
}
```
Discussion at [Howtoforge](https://www.howtoforge.com/community/threads/protected-folders-duplicate-location-problem-nginx.76185/)https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4759On client change cron.d paths to logs not changed2020-09-08T07:34:31ZSergiOn client change cron.d paths to logs not changedIf a site is changed to a new client, paths on already created cron entries are not updated.
For example :
`00 2 * * * web19 /usr/bin/wget --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t...If a site is changed to a new client, paths on already created cron entries are not updated.
For example :
`00 2 * * * web19 /usr/bin/wget --user-agent='Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:47.0) Gecko/20100101 Firefox/47.0' -q -t 1 -T 7200 -O /var/www/clients/client8/web19/private/cron_wget.log 'http://example.com/modules/cron_products_full.php' >>/var/www/clients/client8/web19/private/cron.log 2>>/var/www/clients/client8/web19/private/cron_error.log #example.com`
if client8 is changed to client9 using the panel, paths won't be updated here and command 'wget' will fail because it won't find the old path.
Maybe, on client change, cron entries related to the updated site should be reprocessed for paths to be rediscovered.3.3https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4489Admin protection broken for vhost subdomains2020-09-07T18:43:24ZTill BrehmAdmin protection broken for vhost subdomainsAdmin/client protection is not working for vhost subdomains.Admin/client protection is not working for vhost subdomains.3.3https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/3656SOAP mail_spamfilter_user_add breaks reply (no xml document) on duplicate rules2020-09-01T08:24:12ZMarkus BuschhoffSOAP mail_spamfilter_user_add breaks reply (no xml document) on duplicate rulesA remote call to "mail_spamfilter_user_add" might fail with "look like we got no xml document" instead of expected "email_error_unique", if a spamfilter rule is added for an already existing user.A remote call to "mail_spamfilter_user_add" might fail with "look like we got no xml document" instead of expected "email_error_unique", if a spamfilter rule is added for an already existing user.https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5103Missing 'Web server config' Snippets on subdomain Vhost2020-08-30T16:40:55ZDmitryMissing 'Web server config' Snippets on subdomain VhostI have 'Create subdomains as web site' and 'Create aliasdomains as web site' enabled.
For these (Vhost) websites a 'Web server config' dropdown is empty. It should contain my Snippets just like a regular Website.I have 'Create subdomains as web site' and 'Create aliasdomains as web site' enabled.
For these (Vhost) websites a 'Web server config' dropdown is empty. It should contain my Snippets just like a regular Website.https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5319Web server config not working for vHost Aliasdomain2020-08-30T16:40:55ZJanThielWeb server config not working for vHost Aliasdomain## short description
Web server configs (nginx / apache) cannot be selected when using vHost Aliasdomains. The dropdown is there but only contains the "-" entry. Using regular websites all expected Web Server Configs are there and select...## short description
Web server configs (nginx / apache) cannot be selected when using vHost Aliasdomains. The dropdown is there but only contains the "-" entry. Using regular websites all expected Web Server Configs are there and selectable.
Currently the nginx (didn't tested with apache) is used from the parent. But the PHP configs ("required php snippets" from the web server config) are not applied.
## correct behaviour
The dropdown should contain the configured Web Server Configs and also apply webserver AND php configs to the aliasdomains config files.
I believe this might be a regression, as I think it worked before.
## environment
Server OS: Centos
Server OS version: 7.6
ISPConfig version: 3.1.13p1
## screenshots
Aliasdomain (vHost) - Config missing:
![aliasdomain-vhost](/uploads/2c81de15d0f674ee77478c9e826ae693/aliasdomain-vhost.PNG)
Website / Web Domain - Configs available:
![website-webdomain](/uploads/12fb83f241fba86ba1e91da23ea8a661/website-webdomain.PNG)https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/2713Deletion of domain through Remote API2020-08-28T17:06:28ZLars E. D. JensenDeletion of domain through Remote APIWhen deleting a domain through Remote API it fails to clean up/delete php5 fpm config for the domain in /etc/php5/fpm/pool.d/ (Debian 6.x) and causes a 502 bad gateway in nginx.
See debug log missing the clean up when using Remote API:
...When deleting a domain through Remote API it fails to clean up/delete php5 fpm config for the domain in /etc/php5/fpm/pool.d/ (Debian 6.x) and causes a 502 bad gateway in nginx.
See debug log missing the clean up when using Remote API:
Interface:
https://dl.dropboxusercontent.com/u/14441857/debug/ISPConfig_interface_succes.png
Remote API:
https://dl.dropboxusercontent.com/u/14441857/debug/ISPConfig_RemoteAPI_error.pnghttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/3444Assigning mail domain to other client via remote api does not work for admini...2020-08-28T17:06:16ZThomas TevesAssigning mail domain to other client via remote api does not work for administratorWhile developing an ISPConfig plugin I wrote some additional functions for the remote API to be used only by my plugin. For this purpose I created a new class 'local_remoting' inheriting from the original remoting class.
Inside this new...While developing an ISPConfig plugin I wrote some additional functions for the remote API to be used only by my plugin. For this purpose I created a new class 'local_remoting' inheriting from the original remoting class.
Inside this new class I wrote a function mail_domain_assign for the purpose of assigning mail domains to other clients. The code for this is basically:
$maildomain = $this->mail_domain_get($session_id, $maildomain_id);
$this->mail_domain_update($session_id, $new_client_id, $maildomain_id, $maildomain);
The code works for all clients, except for the admin ($new_client_id=0). Is this bug or feature?
BTW: This is also the case with the mail_user_update function of the API.https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/3441Adding a vhost subdomain to the website via API2020-08-28T17:05:48ZRobert VarjasiAdding a vhost subdomain to the website via APIThe main domain is not concatenated to the sub prefix via the API (sites_web_vhost_subdomain_add()). Via the web interface it is.
We utilize this "bug" in such way that we add a new domain to the website with its own vhost file (and its ...The main domain is not concatenated to the sub prefix via the API (sites_web_vhost_subdomain_add()). Via the web interface it is.
We utilize this "bug" in such way that we add a new domain to the website with its own vhost file (and its own DocumentRoot).
Example:
We have a website with the domain example.com. DocumentRoot is ".../web/". We assign a new domain (domain.com) to this website using sites_web_vhost_subdomain_add() API call. We set the web_folder param to "web/domain.com" directory. It works well.
This way you can have more domains per website (with separate DocRoots). And that is what we needed!
Question: Do you plan to fix this bug that we use as a feature?https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5555Remote API function client_template_additional_add() broken2020-08-28T16:34:17ZTill BrehmRemote API function client_template_additional_add() brokenThe remote API function client_template_additional_add() does not calculate the limits correctly.The remote API function client_template_additional_add() does not calculate the limits correctly.https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/3169affected rows returns 0 on client update2020-08-28T15:36:57ZChristianaffected rows returns 0 on client updatefunction client_update from remote api always returns 0function client_update from remote api always returns 0https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5157Small UI glitch with "Read-only database user" field2020-08-20T20:21:15ZChris GrahamSmall UI glitch with "Read-only database user" fieldIf I'm adding a new database, if I click once to expand the "Read-only database user" drop-down (out of curiosity), and once again to contract, it goes from being a blank default to pre-selecting the first in the list.
Firefox 62.0.3 Mac...If I'm adding a new database, if I click once to expand the "Read-only database user" drop-down (out of curiosity), and once again to contract, it goes from being a blank default to pre-selecting the first in the list.
Firefox 62.0.3 Mac. Also latest Chrome.https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5700admin/reseller/client permission inconsistencies2020-08-19T18:38:58ZJesse Norelladmin/reseller/client permission inconsistenciesThere are some permissions issues when editing things as admin vs. reseller vs. client, detailed cases will follow.
This is borne from discussion in https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1088#note_78755 where i...There are some permissions issues when editing things as admin vs. reseller vs. client, detailed cases will follow.
This is borne from discussion in https://git.ispconfig.org/ispconfig/ispconfig3/-/merge_requests/1088#note_78755 where it is clear that client protection is intended to affect only the web_domain table, and therefore clients/resellers should always be able to create/edit/delete other entities (dns soa, mail domain, etc.).https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5039Search not working in domain field with öä characters2020-07-18T13:48:47ZTapio LehtonenSearch not working in domain field with öä characters## short description
What is happening and what is wrong with that?
I tested by creating domain hääyöaie.fi. Creating works and domain shows in DNS-Zones list, but searching with those öä characters does not work. Nothing is found. Like...## short description
What is happening and what is wrong with that?
I tested by creating domain hääyöaie.fi. Creating works and domain shows in DNS-Zones list, but searching with those öä characters does not work. Nothing is found. Like so:
- searching for hää, nothing found
- searching for aie finds the domain
Testing further, same thing in Sites tab searching Domain with öä characters.
## correct behaviour
What should happen instead?
öä and other non-ASCII characters should work in searches
## environment
Server OS: Debian GNU/Linux 9.4
Server OS version: Stretch
ISPConfig version: 3.1.11https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4632Database sorting shows nothing2020-06-19T16:15:27ZFrank B.Database sorting shows nothingin {sites}-{websites}-{Database}
when clicked on the lables
[Active] [Remote Access] [Client] [Server] [Website] [Database name]
the databases are sort by the clicked item
but not at [Database user]
no database is seen a...in {sites}-{websites}-{Database}
when clicked on the lables
[Active] [Remote Access] [Client] [Server] [Website] [Database name]
the databases are sort by the clicked item
but not at [Database user]
no database is seen anymore
https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4996Support Messages - sort order by date not work2020-06-19T16:15:26ZJan KopeckySupport Messages - sort order by date not workSort order by date not work in support messages. When I click to date title all messages disappear.
ISPConfig version: 3.3.11Sort order by date not work in support messages. When I click to date title all messages disappear.
ISPConfig version: 3.3.11https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5263Vacation autoreply to ALIAS on same server2020-06-02T21:54:19ZAndreas SpeckVacation autoreply to ALIAS on same server## short description
We have several virtual mail domains on the same server, and some users have configured aliases for their mail addresses. This all works fine.
The problem is related to vacation autoreply, and ONLY in the following c...## short description
We have several virtual mail domains on the same server, and some users have configured aliases for their mail addresses. This all works fine.
The problem is related to vacation autoreply, and ONLY in the following case:
1. A user on our server has enabled autoreply
2. A different user on our server emails to the first user from an alias (not their real mailbox).
In this case the autoreply is triggered via sieve, but then dovecot does not deliver it. The log is the following:
Mar 5 08:53:20 platano dovecot: lda(email1@domaim1.com): sieve: msgid=<d2e92074-a11a-7627-7633-8d560425435a@netuxo.coop>: sent vacation response to <emailalias2@domain2.com>
Mar 5 08:53:20 platano postfix/pipe12074: DB02811C447F: to=<emailalias2@domain2.com>, relay=dovecot, delay=0.05, delays=0.03/0.01/0/0.02, dsn=5.1.1, status=bounced (user unknown)
I tracked it down to the following SQL in /etc/dovecot/dovecot-sql.conf:
user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user WHERE (login = '%u' OR email = '%u') AND `disable%Ls` = 'n' AND server_id = '6'
As relay is via dovecot, and this SQL query does not check for aliases, the user is unknown (as it is an alias).
## correct behaviour
Either we should use a different relay, or dovecot should know what to do and expand the alias.
## environment
Server OS: (debian)
Server OS version: (stretch)
ISPConfig version: (3.1.x)
_you can use `grep 'ISPC_APP_VERSION' /usr/local/ispconfig/server/lib/config.inc.php` to get it from the command line_
## proposed fix
I went down the second route (dovdcot) and changed the SQL to:
user_query = SELECT email as user, maildir as home, CONCAT( maildir_format, ':', maildir, '/', IF(maildir_format='maildir','Maildir',maildir_format)) as mail, uid, gid, CONCAT('*:storage=', quota, 'B') AS quota_rule, CONCAT(maildir, '/.sieve') as sieve FROM mail_user LEFT OUTER JOIN mail_forwarding ON mail_user.email = mail_forwarding.destination WHERE (login = '%u' OR email = '%u' OR (mail_forwarding.source = '%u' AND mail_forwarding.server_id = '6' AND mail_forwarding.type = 'alias')) AND `disable%Ls` = 'n' AND mail_user.server_id = '6' GROUP BY email
This seems to do the trickhttps://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5613Adding zones to PowerDNS with 'notified_serial' set breaks native DNS replica...2020-05-08T08:31:14ZMichael WeißAdding zones to PowerDNS with 'notified_serial' set breaks native DNS replication## short description
When creating a new zone, the powerdns-plugin inserts the domain with the field "notified_serial" set to the inital serial from SOA. Therefore the pdns server does not notify any slaves since notified_serial == curre...## short description
When creating a new zone, the powerdns-plugin inserts the domain with the field "notified_serial" set to the inital serial from SOA. Therefore the pdns server does not notify any slaves since notified_serial == current serial from soa. This breaks zone replication to e.g. bind slaves.
## correct behaviour
Leave out "notified_serial" when adding a new zone or set it explicitly to NULL.
## environment
Any.
## proposed fix
server/plugins-available/powerdns_plugin.inc.php: 137,16
$app->db->query("INSERT INTO powerdns.domains (name, type, ispconfig_id) VALUES (?, ?, ?)", $origin, 'MASTER', $ispconfig_id);https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/5052IP anonymization not working in access log2020-04-21T14:22:35ZJanekIP anonymization not working in access log## short description
I just updated to ISPConfig 3.1.12 and set the global option "Store website access and error logs" to "Anonymize IP".
Afterwards I did a resync of "Websites" on all Webservers.
Now IP anonymization does work f...## short description
I just updated to ISPConfig 3.1.12 and set the global option "Store website access and error logs" to "Anonymize IP".
Afterwards I did a resync of "Websites" on all Webservers.
Now IP anonymization does work for error.log of Apache2 but it does not work for access.log - neither Nginx nor Apache2 (All octets visible)
## correct behaviour
Websites access.log should only contain anonymized IP-addresses.
## environment
Server OS: debian
Server OS version: jessie
ISPConfig version: 3.1.12
Multiserver Setup, 2 Webservers: 1 with nginx, 1 with Apache2
```
$ nginx -v
nginx version: nginx/1.13.12
$ apachectl -v
Server version: Apache/2.4.23 (Debian)
Server built: 2016-08-12T19:44:31
$ php -v
PHP 7.0.30-1~dotdeb+8.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.30-1~dotdeb+8.1, Copyright (c) 1999-2017, by Zend Technologies
```
## references
ispconfig/ispconfig3#5050https://git.ispconfig.org/ispconfig/ispconfig3/-/issues/4745Autoresponder in sieve file is not updated when adding aliases afterwards2020-03-29T18:33:32ZLutz-Peter HoogeAutoresponder in sieve file is not updated when adding aliases afterwardsWhen I add an autoresponder to an email account with aliases, this alias are added to the sieve file, as it should.
e.g. domain: example.com, account test@example.com, alias test2@example.com -> test@example.com.
Then I add another alia...When I add an autoresponder to an email account with aliases, this alias are added to the sieve file, as it should.
e.g. domain: example.com, account test@example.com, alias test2@example.com -> test@example.com.
Then I add another alias, test3@example.com -> test@example.com.
However the sieve file is not updated to reflect this, it stays the same (I did wait for the cronjob to run).
The result is that the autoresponder will not trigger for emails send to test3@example.com,
sieve will report:
> discarding vacation response for implicitly delivered message; no known (envelope) recipient address found in message headers
Now I change something in the autoresponder text and save.
Only now the sieve file is updated and contains the new text AND the new alias.
Tested in ISPConfig 3.1.6
**first sieve file**
```
require ["fileinto", "regex", "date", "relational", "vacation"];
keep;
#################################################################
# Autoreply
#################################################################
# Move spam to spam folder
if header :contains "X-Spam-Flag" "YES" {
# Stop here so that we do not reply on spams
stop;
}
if allof(currentdate :value "ge" "iso8601" "2017-08-01T13:10:00", currentdate :value "le" "iso8601" "2020-08-01T13:10:00") {
vacation :days 1
:subject "Out of office reply"
:addresses ["test@example.com","test2@example.com"]
"Test";
}
```
**second sieve file:**
```
require ["fileinto", "regex", "date", "relational", "vacation"];
keep;
#################################################################
# Autoreply
#################################################################
# Move spam to spam folder
if header :contains "X-Spam-Flag" "YES" {
# Stop here so that we do not reply on spams
stop;
}
if allof(currentdate :value "ge" "iso8601" "2017-08-01T13:10:00", currentdate :value "le" "iso8601" "2020-08-01T13:10:00") {
vacation :days 1
:subject "Out of office reply"
:addresses ["test@example.com","test2@example.com","test3@example.com"]
"Test2";
}
```