Compare commits

...

310 Commits

Author SHA1 Message Date
Florian Aders (EleRas)
02cf6285ec Tagging 0.9.26-rc1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-12-19 17:53:51 +01:00
Florian Aders (EleRas)
ee5b81bcbf Do not send trafficreports as HTML - they are plaintext, fixes #705 @10m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-12-17 11:56:13 +01:00
Florian Aders (EleRas)
67d623cd21 Fixed user_queries for dovecot-quote, fixes #979 @5m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-12-17 11:42:42 +01:00
Florian Aders (EleRas)
cbe8653f5d Fixed alias.url for awstats in lighttpd, fixes #982 @5m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-12-17 11:37:09 +01:00
Florian Aders (EleRas)
f83625655c Fixed aliasdomains in awstats, thx dahuafschmied, fixes #999 @5m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-12-17 11:30:53 +01:00
Robert Förster (Dessa)
3912ea1911 rename our SUSE Linux 10 Templates to SUSE Linux Enterprise 10.
Come on, SUSE 10 is long time EOL upstream, upgrade your stuff.
the Templates should work unmodified on SLE10.
We currently plan to keep the Templates until general support for SLE10 ends (which is mid-2013 as of now) and / or upstream stops building froxlor for SLE10 in the OBS. (this is of course, subject to change.)
2011-12-14 14:09:36 +01:00
Andreas Burchert (scarya)
c947370ddc Fix the updater.
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-12 20:02:41 +01:00
Andreas Burchert (scarya)
8dfd27a0dc Added check in updater if there is more than one entry for backup_enabled, refs #992
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-12 19:39:53 +01:00
Andreas Burchert (scarya)
a76cbbcb55 Another small fix in nginx (ssl_client_certificate).
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-12 18:37:58 +01:00
Andreas Burchert (scarya)
23313282ce Small fix in create_pathOptions().
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-12 18:03:19 +01:00
Andreas Burchert (scarya)
1c9023cdaf Fixed missing php configuration, fixes #990
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-12 16:45:26 +01:00
Andreas Burchert (scarya)
92c54703c5 Fixed small typo, fixes #987
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 17:13:05 +01:00
Andreas Burchert (scarya)
b647f71f74 Improved .gitignore
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 17:12:49 +01:00
Andreas Burchert (scarya)
b1cb9ba221 Forgot to update updater, refs #964
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 16:46:47 +01:00
Andreas Burchert (scarya)
4eee1d0b52 Added check for froxlor-accounts <-> system-accounts, fixes #962
Thanks to d4f

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 16:04:35 +01:00
Andreas Burchert (scarya)
e162a1c893 Improved cron_traffic, fixes #977
Thanks to d4f

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 15:58:44 +01:00
Andreas Burchert (scarya)
3c1d63cbcb Increased max limit before warnings mails are sent to 150%, fixes #976
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 15:54:37 +01:00
Andreas Burchert (scarya)
def4bd9861 Added functionality: disable nameserver, fixes #964
Thanks to bbittner

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-12-06 15:43:34 +01:00
Florian Aders (EleRas)
1d05f66fd4 Improved default PHP - config (Alphabetical order, new disabled functions, new var: force_redirect), fixes #985
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-26 13:31:04 +01:00
Florian Aders (EleRas)
f04bf559a0 Revert "Added missing concatenation, fixes #982"
This reverts commit 3fbe96dc1b.

Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-25 11:30:12 +01:00
Andreas Burchert (scarya)
3fbe96dc1b Added missing concatenation, fixes #982
Thanks to Dessa.

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-11-25 11:16:44 +01:00
Florian Aders (EleRas)
a177c0558e Fixing vuln. in php + nginx - config, thx altmir for reporting, fixes #980
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-19 11:39:40 +01:00
Florian Aders (EleRas)
6e4121d9bb Tagging 0.9.25
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-14 15:47:27 +01:00
Florian Aders (EleRas)
bb7874e68f Fixing undefined index in bind zonefile - generation
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-12 15:26:05 +01:00
Florian Aders (EleRas)
c10320ff9c Don't display empty reload - command, fixes #940
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-12 10:03:39 +01:00
Florian Aders (EleRas)
6c4ecad7f8 Check password validity if customer changes password, fixes #974, thx philnate
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-12 09:55:26 +01:00
Florian Aders (EleRas)
0deb4404d2 Fixing php-notice in cron while setting awstats - permissions, fixes #960, fixes #970, thx d4f
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-12 09:19:50 +01:00
Florian Aders (EleRas)
2b0cfea888 Fixing regex for backup_path, fixes #967
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-11-12 09:13:25 +01:00
Florian Aders (EleRas)
65a5df507c Tagging 0.9.25-rc1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-31 12:20:17 +01:00
Florian Aders (EleRas)
af6a80ab76 Revert "fixing mysql-virtual_mailbox_maps.cf regarding postfix-policy in Froxlor, refs #879"
This reverts commit f0d9db420a.
2011-10-31 10:09:36 +01:00
Florian Aders (EleRas)
3d0b0cdbdd Revert "fixing mysql-virtual_sender_permissions.cf regarding postfix-policy in Froxlor, fixes #879"
This reverts commit f49ac9e193.
2011-10-31 10:09:31 +01:00
Florian Aders (EleRas)
6408251c14 Revert "fixing mysql-virtual_alias_maps.cf and mysql-virtual_mailbox_domains.cf regarding postfix-policy in Froxlor, refs #879"
This reverts commit 526dbbd68e.
2011-10-31 10:06:17 +01:00
Christoph Burchert (Chb)
f90b83cb34 Disabled backup per default, fixes #948 @5m
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-30 21:20:57 +01:00
Christoph Burchert (Chb)
491dfccc8e Added my_destination to FreeBSD postfix config, fixes #924 @5m
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-30 21:10:11 +01:00
Florian Aders (EleRas)
89d04a83a0 Fixed calculations in display if customer-traffic, fixes #696 @1h
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-30 16:31:15 +01:00
Florian Aders (EleRas)
3d2ac9af17 Fixed unimplemented lng - strings, refs #696
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-30 15:50:45 +01:00
Florian Aders (EleRas)
0e9044b7ba mysqlnd is sufficient
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-30 13:18:20 +01:00
Florian Aders (EleRas)
64ddddd3d5 Fixing broken changing of hostname, thx philnate, fixes #928 @5m, fixes #946
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-30 12:11:10 +01:00
Christoph Burchert (Chb)
bfd1b6bbef Fixed typo (thanks to arnoldB)
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-19 15:30:43 +02:00
Christoph Burchert (Chb)
ddb179f340 Mini-fix the minor fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-19 15:22:53 +02:00
Andreas Burchert (scarya)
893274c89c Created missing config files for ubuntu and nginx, fixes #932
Thanks to arnoldB

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-10-19 15:10:57 +02:00
Christoph Burchert (Chb)
4fbdb80faf Minor fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-19 10:04:50 +02:00
Christoph Burchert (Chb)
b23ea6bbcc Fixed quota access (thanks to xocii), fixes #926
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-18 13:43:38 +02:00
Andreas Burchert (scarya)
450fff57ff Fix for APS instance overview, fixes #111
Thanks to philnate

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-10-18 13:37:01 +02:00
Andreas Burchert (scarya)
57693f804f Fixed duplicates for nginx, fixes #930
Thanks to epek

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-10-18 13:27:52 +02:00
Christoph Burchert (Chb)
d342300c47 Merge branch 'master' of git.froxlor.org:froxlor 2011-10-18 13:21:54 +02:00
Christoph Burchert (Chb)
b3d01fd6d2 Add www-prefix in bind, fixes #781
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-10-18 13:21:32 +02:00
Andreas Burchert (scarya)
6d25edab60 Fixed missing chars, fixes #869
Thanks to philnate

Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-10-18 13:19:04 +02:00
Florian Aders (EleRas)
36faeb3f09 Moved customer - traffic - charts to JS and with this fixing the display - errors, refs #696
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-07 11:54:45 +02:00
Robert Förster (Dessa)
e460b7cce9 add openSuSE 11 configs, based on the work of Andrej Semen and Wolfgang Rosenauer in the OBS, thanks!
Signed-off-by: Robert Förster (Dessa) <Dessa@froxlor.org>
2011-10-06 14:27:35 +02:00
Florian Aders (EleRas)
c1e083c8b2 Tagging 0.9.24
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-04 19:03:45 +02:00
Florian Aders (EleRas)
70a077da48 fixed resourcebars, thx philnate, fixes #787
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-10-04 11:21:38 +02:00
Christoph Burchert (Chb)
c5fb8bee6b Enables to delete customers with already deleted databases (thanks to crazy4chrissi), fixes #872
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-26 04:12:01 +02:00
Christoph Burchert (Chb)
418990e271 Fixes fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-26 03:47:12 +02:00
Christoph Burchert (Chb)
93ab8964f1 Hide backup FTP password (thanks to monotek), fixes #762
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-26 03:43:37 +02:00
Florian Aders (EleRas)
fd599da07e Tagging 0.9.24-rc1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-19 18:32:55 +02:00
Andreas Burchert (scarya)
369df7af62 Fixes wrong location declaration for nginx, fixes #749
Thanks to altmir
2011-09-19 11:21:11 +02:00
Andreas Burchert (scarya)
bb01dd0d93 Fixes a small syntax error. 2011-09-19 11:17:15 +02:00
Andreas Burchert (scarya)
84f00a2519 Fixes malformed priority in ticket archive search, fixes #714
Note: swedish could not be fixed and my swedish is way to bad to do it on my own
Thanks to philnate
2011-09-19 11:11:26 +02:00
Andreas Burchert (scarya)
8e07768996 Fixes 'unknown user' for disabled accounts (traffic overview), fixes #791
Thanks to monotek
2011-09-19 11:07:09 +02:00
Andreas Burchert (scarya)
9b12025c9f Prevents froxlor from creating a vhost (apache only) for relay mail domains, fixes #848
Thanks to sinuxwave
2011-09-19 11:00:50 +02:00
Andreas Burchert (scarya)
14f9344c50 Prevent empty 'ServerName', fixes #870
Thanks to h4cc
2011-09-19 10:56:27 +02:00
Andreas Burchert (scarya)
af430f9946 modernized bash init-scripts, fixes #889
Thanks to arnoldB.
2011-09-19 10:50:23 +02:00
Christoph Burchert (Chb)
992702870c Fixed customer's backup directory (thanks to monotek and arnoldB), fixes #859
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-15 15:03:55 +02:00
Florian Aders (EleRas)
642cd3da9d Applied patch to fix IPv6 in bind, fixes #799, thx frennkie
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-09 13:57:59 +02:00
Florian Aders (EleRas)
5d2d1ffa1a Improve showing of MySQL - databasesize, refs #834, thx arnoldB
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-09 10:33:33 +02:00
Florian Aders (EleRas)
19bbecb535 Shorten the megabytes, refs #834
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 15:05:18 +02:00
Florian Aders (EleRas)
e636e6eb39 Show database-size in database-overview, fixes #834
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 14:46:01 +02:00
Florian Aders (EleRas)
86ac4708f0 Adding a favicon, fixes #875
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 12:49:17 +02:00
Florian Aders (EleRas)
f49ac9e193 fixing mysql-virtual_sender_permissions.cf regarding postfix-policy in Froxlor, fixes #879
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 08:44:08 +02:00
Florian Aders (EleRas)
f0d9db420a fixing mysql-virtual_mailbox_maps.cf regarding postfix-policy in Froxlor, refs #879
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 08:40:21 +02:00
Florian Aders (EleRas)
526dbbd68e fixing mysql-virtual_alias_maps.cf and mysql-virtual_mailbox_domains.cf regarding postfix-policy in Froxlor, refs #879
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-08 08:37:07 +02:00
Christoph Burchert (Chb)
9a05a71f6b Fixed typo (thanks to frontline), fixes #880
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-07 19:29:58 +02:00
Florian Aders (EleRas)
e4f3af5d4b fixed htmleating in ticketsystem, thx philnate, fixes #727
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-06 11:02:47 +02:00
Florian Aders (EleRas)
3a7b7c1300 Improved description of values in admin panel, thx philnate, fixes #743
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-06 08:15:44 +02:00
Florian Aders (EleRas)
cdea6cecfb Fixed version in updater for logrotate, refs #16
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-09-05 19:38:39 +02:00
Christoph Burchert (Chb)
c36a7bf22b Add logrotate support, fixes #16 (thanks to monotek!)
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-05 14:56:50 +02:00
Christoph Burchert (Chb)
ca2a8c9907 Security fix: unescaped commandline argument (thanks to Bernhard Czech (sinuswave))
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-09-05 14:31:03 +02:00
Florian Aders (EleRas)
4914fc640a Tagging 0.9.23
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-22 17:26:11 +02:00
Florian Aders (EleRas)
f0b073a6f1 Tagging 0.9.23-rc1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-09 18:11:09 +02:00
Andreas Burchert (scarya)
79f5ff4d35 Used correct function to create tmpdir, fixes #846 @0h5m
Thanks to sreimers.
2011-08-07 15:49:40 +02:00
Florian Aders (EleRas)
8609b2394b Removing PHP - tmpdir on customerdelete if files need to be deleted, fixes #728
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-07 14:46:05 +02:00
Florian Aders (EleRas)
5bb3c16312 Fixed a few bugs in the WebFTP and allowing optional SSL - connection to the server
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-07 14:35:57 +02:00
Florian Aders (EleRas)
df5d3ef66f Added autocomplete="off" to formfields (yeah, it is valid in HTML5), thx sinuswave, fixes #469
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-04 08:29:09 +02:00
Florian Aders (EleRas)
a207f2f936 Fixing catchall - checkbox on email-add, thx sinuswave, fixes #793 @0h1m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-08-04 07:23:08 +02:00
Andreas Burchert (scarya)
b0bd0836cd Added --froce to mysqldump, fixes #581 @0h5m
Thanks to monotek.
2011-08-02 14:41:24 +02:00
Andreas Burchert (scarya)
475377dd85 Added missing var to formfield, fixes #780 @0h5m
Thanks to sinuswave
2011-08-02 14:32:45 +02:00
Florian Aders (EleRas)
16776ce750 Updated translation of WebFTP
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-16 10:13:13 +02:00
Florian Aders (EleRas)
3861917dbc Fixed an XSS in WebFTP (positive sideeffect: less HTML in the PHP - code ;)), the tomreyn
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-16 09:52:55 +02:00
Andreas Burchert (scarya)
65891eff1c Autoloader now supports interfaces. 2011-07-14 13:07:04 +02:00
Florian Aders (EleRas)
bf9306c641 Fixed typo which prevented to upload files in webftp, fixes #842 @0h1m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-13 12:16:05 +02:00
Florian Aders (EleRas)
666d0db550 Tagging 0.9.22
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 19:31:22 +02:00
Florian Aders (EleRas)
6a41b30e70 Add the correct cache-directories and add .keep, so git will add them
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 17:32:09 +02:00
Florian Aders (EleRas)
0808bacb39 Use exec and silently fail in languagedetection, fixes #831, fixes #830
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 17:28:10 +02:00
Florian Aders (EleRas)
026f8503ab Fixed languageerror, fixes #828
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 17:12:19 +02:00
Florian Aders (EleRas)
19a7e78ebe Force Froxlor - theme for WebFTP until opther themes are available, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 17:10:35 +02:00
Florian Aders (EleRas)
76fb0d2a20 Always use GUID for chown, fixes #838
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-07-11 17:07:48 +02:00
Florian Aders (EleRas)
a418e60556 Fixed bug in webftp
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-27 18:45:47 +02:00
Florian Aders (EleRas)
8f760e87bc Tagging 0.9.22-rc1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-27 18:13:47 +02:00
Florian Aders (EleRas)
0aff176cdc Fixed broken updater
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-27 18:12:14 +02:00
Florian Aders (EleRas)
cdcab6e1f8 Converted french special chars into htmlentities, thx arnoldB, fixes #817 @1m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-25 21:45:27 +02:00
Florian Aders (EleRas)
37d03bdf6a Fixed undefined index on loginpage, refs #794 @0h5m
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-25 21:36:59 +02:00
Andreas Burchert (scarya)
4a40870576 Improved backup functionality. Thanks monotek, refs #186 2011-06-24 01:24:13 +02:00
Andreas Burchert (scarya)
35958168a2 You can't set session timeout to 0, fixes #815 2011-06-24 00:39:53 +02:00
Andreas Burchert (scarya)
6badc2ad77 Increased the sorting to 5 chars. Should be enough, fixes #756 2011-06-23 23:44:11 +02:00
Andreas Burchert (scarya)
5184dc9ce7 Language fixes, fixes #813
Thanks to arnoldB!
2011-06-23 23:40:04 +02:00
Andreas Burchert (scarya)
b446575bf0 Removed mod_radius from proftpd conf, fixes #768 2011-06-23 23:29:40 +02:00
Florian Aders (EleRas)
b7114c670a Allow .php5 - files to be edited as well, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 16:32:20 +02:00
Florian Aders (EleRas)
536e66da7c A nicer way to search the errormessage, this may (or may not) be helpful, refs #214
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 16:27:28 +02:00
Florian Aders (EleRas)
9114a98e4c Fixed typos, refs #214
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 16:21:38 +02:00
Florian Aders (EleRas)
9955bed2c1 Log MySQL - errors to syslog and do not print them in public, fixes #214
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 16:18:48 +02:00
Florian Aders (EleRas)
f6af38a2c3 Fixed german translation, thx arnoldB, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 13:30:49 +02:00
Florian Aders (EleRas)
76e886e610 Moved language - selection based on gettext into an own class for easier management
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 13:20:42 +02:00
Florian Aders (EleRas)
6daec3c975 Fixed gettext - support for smarty, now you are able to change the language for real and the translated string is no longer saved in the cached template, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 12:56:18 +02:00
Florian Aders (EleRas)
e9000a7e99 Merge branch 'quota' 2011-06-23 11:18:18 +02:00
Florian Aders (EleRas)
44a53492e6 Moving to smarty - escaping in webftp, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 11:09:44 +02:00
Florian Aders (EleRas)
7cf0fa7284 Destroy session if password was entered wrong in webftp, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 11:02:16 +02:00
Florian Aders (EleRas)
9aa86e1dee Show warnings if login failed, optimized handling of data in session, refs #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 10:47:29 +02:00
Florian Aders (EleRas)
961aad43d1 Added first rework of webftp - module, please not, this still needs a hell lot of work, but anyway: fixes #819
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 10:30:59 +02:00
Florian Aders (EleRas)
6e84ca4ae4 Added helperscript for smarty - gettext
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 10:29:34 +02:00
Florian Aders (EleRas)
f79e351b72 Added gettext - filter for smarty
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 10:28:52 +02:00
Florian Aders (EleRas)
a24d809428 Added Smarty 3.0.8
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 10:28:00 +02:00
Florian Aders (EleRas)
0fa64ea943 Fixed small bug in JS and navigation - element - template
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-23 01:04:59 +02:00
Florian Aders (EleRas)
fe0b71b628 Added updated french languagefile, fixes #817
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-21 21:30:38 +02:00
Florian Aders (EleRas)
a23260fb7f Added task 10 to description of outstanding tasks, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-19 13:43:56 +02:00
Florian Aders (EleRas)
eb984c2f4c Moved redundant code into single function, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-19 11:31:00 +02:00
Florian Aders (EleRas)
1836132c28 Use setting instead of hardcoded name, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 23:06:39 +02:00
Florian Aders (EleRas)
aae635bf5d More secure way to get the used quota, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 22:53:27 +02:00
Florian Aders (EleRas)
8599ff775b Tell Froxlor there exists a task-type 10, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 22:53:15 +02:00
Florian Aders (EleRas)
8bfdd0bc14 Update filesystem - quota when config-updates shall be written as well, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 19:54:43 +02:00
Florian Aders (EleRas)
30344b0dce Forgot to add settings, fixes #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 19:52:47 +02:00
Florian Aders (EleRas)
8019629a28 Added task 10 (setting filesystem - quota) where necessary, fixes #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 19:48:16 +02:00
Florian Aders (EleRas)
7a28108475 Added usage of filesystem - quota to diskusage - calculation and added a new task to cron_tasks.php for setting the quota, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 19:42:01 +02:00
Florian Aders (EleRas)
cfa94c5837 Added new settings for disk quota, refs #814
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-18 19:03:20 +02:00
Florian Aders (EleRas)
c9c0530461 Removed warning on deactivation of safemode since it is deprecated and will be removed, fixes #812, fixes #556
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 20:54:54 +02:00
Florian Aders (EleRas)
093ebfa457 Fixed a bug for PHP < 5.3.0 (used func_get_arg as argument, which does not work on older PHP versions)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 20:23:59 +02:00
Florian Aders (EleRas)
3800f31823 Added security related HTTP - header for browser which support this (non supporting browsers will just ignore it and everything is fine)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 20:17:44 +02:00
Florian Aders (EleRas)
cc26584f01 Updated jquery to jquery-1.6.1.min.js
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 20:05:14 +02:00
Florian Aders (EleRas)
8131e9e92c Just beautification
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 19:06:49 +02:00
Florian Aders (EleRas)
38e472a623 Use correct JS - file
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 19:05:25 +02:00
Florian Aders (EleRas)
3e21cb0298 Moved inline - javascript to external file in preparation of X-Content-Security-Policy (also, the code looks cleaner, yay)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-16 18:59:16 +02:00
Florian Aders (EleRas)
b9bb1a1286 A bit better ticket-delete - view (not 100% sufficient, but better than nothing)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 19:10:38 +02:00
Florian Aders (EleRas)
25609a7068 Moved ticket - formfields to correct directory
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 18:47:09 +02:00
Florian Aders (EleRas)
35d8b3f8a1 Moved autoresponder - formfields to own directory
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 18:45:11 +02:00
Florian Aders (EleRas)
d593a217a4 Moved autoresponder - templates to own directory (now following correct schema)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 18:41:18 +02:00
Florian Aders (EleRas)
960fa58799 Renamed ticket - templates to follow the rest of the Froxlor scheme: templatedir = <section> = [admin|customer]_<section>.php
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 18:34:43 +02:00
Florian Aders (EleRas)
76b716d41d redirectTo now uses the new linker class
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-14 18:22:29 +02:00
Florian Aders (EleRas)
0b3e788b86 Revert "Changed redirectTo to use new link-class"
This reverts commit b88246b112.
2011-06-13 22:08:38 +02:00
Florian Aders (EleRas)
b88246b112 Changed redirectTo to use new link-class
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 21:55:46 +02:00
Florian Aders (EleRas)
4d10c72ae9 Fixed bug in link-class where protocol was added to URL withour hostname
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 21:55:27 +02:00
Florian Aders (EleRas)
0a21ede3d2 Missing linker-link in classic - admin-customers-overview fixed
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 21:15:16 +02:00
Florian Aders (EleRas)
3669822064 Missing linker-links in traffic - files fixed
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 21:12:31 +02:00
Florian Aders (EleRas)
b68f9fe395 Implemented linker - class for admin_setting.php (resource-recalculation) (templates only) 2011-06-13 21:05:52 +02:00
Florian Aders (EleRas)
e101d01e11 Implemented linker - class for customer_tickets.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:56:08 +02:00
Florian Aders (EleRas)
bdce761af0 Implemented linker - class for customer_traffic.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:54:02 +02:00
Florian Aders (EleRas)
784d1a62f7 Implemented linker - class for customer_mysql.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:53:29 +02:00
Florian Aders (EleRas)
c84602d560 Implemented linker - class for customer_ftp.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:51:28 +02:00
Florian Aders (EleRas)
3bcba9fa40 Implemented linker - class for customer_extras.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:50:41 +02:00
Florian Aders (EleRas)
7246dc124e Implemented linker - class for customer_[autoresponder|emails].php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:48:37 +02:00
Florian Aders (EleRas)
fcdcd4d6cb Implemented linker - class for customer_domains.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:40:19 +02:00
Florian Aders (EleRas)
07d981ac25 Implemented linker - class for customer_index.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:38:46 +02:00
Florian Aders (EleRas)
1bf764c5c3 Implemented linker - class for admin_updates.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:36:20 +02:00
Florian Aders (EleRas)
79b886994c Implemented linker - class for admin_traffic.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:35:07 +02:00
Florian Aders (EleRas)
62f8c7d1b6 Implemented linker - class for admin_tickets.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:34:15 +02:00
Florian Aders (EleRas)
6fe0b7f6a4 Implemented linker - class for admin_templates.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:27:08 +02:00
Florian Aders (EleRas)
a55df73281 Implemented linker - class for admin_settings.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:25:36 +02:00
Florian Aders (EleRas)
ce6176ffe4 Implemented linker - class for admin_logger.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:20:05 +02:00
Florian Aders (EleRas)
570ceb8160 Implemented linker - class for admin_ipsandports.php (templates automatic replace only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 20:18:59 +02:00
Florian Aders (EleRas)
163228ff75 Implemented linker - class for admin_domains.php (templates only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 19:35:50 +02:00
Florian Aders (EleRas)
68b9c22938 Implemented linker - class for admin_customers.php (templates only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 18:57:18 +02:00
Florian Aders (EleRas)
7936f72bc1 Implemented linker - class for admin_cronjobs.php (templates only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 18:49:31 +02:00
Florian Aders (EleRas)
81df4f5444 Tiny change in admin_configfiles - template
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 18:36:46 +02:00
Florian Aders (EleRas)
54093a0a9a Implemented linker - class for admin_configfiles.php (templates only)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 18:32:31 +02:00
Florian Aders (EleRas)
c5e8786670 Implemented linker - class for admin_admins.php
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 17:57:17 +02:00
Florian Aders (EleRas)
6ebd6db87f Implemented linker - class for admin_index.php -> change_[theme|language|password], more to come
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 17:21:02 +02:00
Florian Aders (EleRas)
68e31962bc Fixed a bug in linker
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 17:05:08 +02:00
Florian Aders (EleRas)
9d24648607 Added more flexibility and temporary fallback for the sessionid
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 16:49:02 +02:00
Florian Aders (EleRas)
c26223a887 Fixed nasty typo
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 16:28:52 +02:00
Florian Aders (EleRas)
444f4b5d1e Added a class where all links will be generated in the future for easy management (First draft)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-13 16:27:50 +02:00
Andreas Burchert (scarya)
c72b07f690 Changed 'gender' to 'title' 2011-06-10 17:44:49 +02:00
Florian Aders (EleRas)
c318d9e9df We really, really have 2011, thx SZoellner _& arnoldB, fixes #802
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-10 07:22:28 +02:00
Florian Aders (EleRas)
5b6acce822 Fixed permission problem in apache, fixes #800
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-06-07 09:39:13 +02:00
Florian Aders (EleRas)
9a4b45838a Tagging 0.9.21
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-05-30 18:57:48 +02:00
Andreas Burchert (scarya)
48df1bac4b Moved apache reload to the end of cronjob, fixes #775 2011-05-27 21:56:11 +02:00
Andreas Burchert (scarya)
63aed1e8f4 Fix char-errors in Italian language file, fixes #790
Thanks to arnoldB
2011-05-21 17:23:49 +02:00
Andreas Burchert (scarya)
426e87a337 Forgot curly brackets. 2011-05-18 22:17:58 +02:00
Andreas Burchert (scarya)
cd141ce381 Externalized string. 2011-05-18 22:07:04 +02:00
Andreas Burchert (scarya)
ece63b8a36 Fix some language related strings, fixes #760
Thanks to arnoldB!
2011-05-18 20:55:01 +02:00
Andreas Burchert (scarya)
af423248da Small fix in Classic theme. 2011-05-18 16:49:41 +02:00
Christoph Burchert (Chb)
5ca7e173b0 consequently use Denglish, fixes gonna fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-05-18 14:10:44 +02:00
Christoph Burchert (Chb)
f845f7771a consequently use wrong English, fixes gonna fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-05-18 13:56:18 +02:00
Andreas Burchert (scarya)
500a829161 Update version to -svn2. 2011-05-18 13:30:13 +02:00
Andreas Burchert (scarya)
96c34b9b29 Fix issue with SSL and SSL redirect, fixes #778
Thanks to mnaumann.
2011-05-18 13:19:43 +02:00
Christoph Burchert (Chb)
ec7c19cceb fix the fix
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-05-18 10:04:23 +02:00
Christoph Burchert (Chb)
7a4501e581 added new setting: backup ftp passive mode, fixes #785
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-05-18 02:08:45 +02:00
Christoph Burchert (Chb)
75c5fae6b2 added options for continuous up- and downloads to proftpd config, fixes #784
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-05-18 01:35:54 +02:00
Andreas Burchert (scarya)
7a5bf65184 Added ISO-3166-2 country codes, refs #471 2011-05-15 21:25:00 +02:00
Andreas Burchert (scarya)
103626e82a Small fix in english language file. 2011-05-13 18:22:09 +02:00
Andreas Burchert (scarya)
ca1a77d883 Set version in froxlor.sql 2011-05-13 18:13:05 +02:00
Andreas Burchert (scarya)
ac68a5d35f Updated froxlor.sql and tables.inc 2011-05-13 17:39:16 +02:00
Andreas Burchert (scarya)
f63f1d947b You should think frist before commiting... 2011-05-13 17:33:39 +02:00
Andreas Burchert (scarya)
5b6aa1aa8d More fixing... 2011-05-13 17:31:01 +02:00
Andreas Burchert (scarya)
12177fd21d Patch the updater. 2011-05-13 17:28:11 +02:00
Andreas Burchert (scarya)
aa4254ad47 Added gender selection to add/edit customer, fixes #280 2011-05-12 18:58:01 +02:00
Andreas Burchert (scarya)
e2076603dd Added language stuff for customer gender, refs #280 2011-05-12 15:34:19 +02:00
Florian Aders (EleRas)
2ea90c1b45 Update italian languagefile, thx to Emilien
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-05-05 17:45:21 +02:00
Florian Aders (EleRas)
cf66dcf38d fixed updater, I now really hate that bitch
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-05-04 14:34:36 +02:00
Andreas Burchert (scarya)
51a83d8b09 Removed @version in file header. This isn't used by git. 2011-05-04 11:59:20 +02:00
Andreas Burchert (scarya)
e467409cbb Added <label> tag to license agreement in aps. 2011-05-01 15:32:59 +02:00
Andreas Burchert (scarya)
05b59621a6 Added trim() to registration date check, fixes #741 2011-05-01 13:27:24 +02:00
Florian Aders (EleRas)
e148e7d584 Update version, try fixing all possible broken states, refs #742
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-28 09:47:22 +02:00
Florian Aders (EleRas)
3fb6d4eac9 Fixed SQL, now the real one, fu, fixes #742
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-28 08:27:35 +02:00
Florian Aders (EleRas)
4aa78b07be Tagging 0.9.20.1
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-27 19:41:41 +02:00
Florian Aders (EleRas)
88048bf4c8 renamed lenny -> queeze, fixes #740
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-27 14:19:21 +02:00
Florian Aders (EleRas)
0bfc3393a0 added missing comma, fixes #739
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-27 13:34:21 +02:00
Florian Aders (EleRas)
018bc0b329 added missing columns, refs #186
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-27 11:58:45 +02:00
Florian Aders (EleRas)
f9543806a1 fixed type in backupsystem, refs #186
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-27 11:56:08 +02:00
Florian Aders (EleRas)
b9d65390c5 Added configfiles for squeeze, fixes #730
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-26 12:43:07 +02:00
Florian Aders (EleRas)
8740393b8c Tagging 0.9.20
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-26 11:14:00 +02:00
Florian Aders (EleRas)
1ddad9295f Tagging 0.9.20
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-26 10:28:50 +02:00
Florian Aders (EleRas)
d14493c9be Fixed typo in backup-settings, refs #186
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-26 10:14:09 +02:00
Andreas Burchert (scarya)
329c3f03c7 Added icons for backup function, refs #186 2011-04-26 10:08:23 +02:00
Florian Aders (EleRas)
16144944ca Fixed another bug in admin traffic summary, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 18:03:31 +02:00
Florian Aders (EleRas)
6d0e44e103 Fix small bug in admin traffic summary, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 17:45:47 +02:00
Andreas Burchert (scarya)
7db2fc6aeb ... fixed, the unfixed fix... hopefuly the last time -.-, refs #186 2011-04-24 10:49:14 +02:00
Andreas Burchert (scarya)
9aecf4ca8a Fix the unfixed fix. 2011-04-24 10:40:51 +02:00
Florian Aders (EleRas)
1b05b64fea Now use the correct js-source in header, fuuuuuuuuuuuu, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 10:39:04 +02:00
Florian Aders (EleRas)
ed52821a11 Now use the correct jquery in tablesorting, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 10:36:53 +02:00
Andreas Burchert (scarya)
20141ec173 Unfixed classic template, refs #186 2011-04-24 10:33:51 +02:00
Andreas Burchert (scarya)
194e4cfd20 Fixed templates, refs #186 2011-04-24 10:30:58 +02:00
Florian Aders (EleRas)
5a5653d594 Fixed linebreak in updater
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 10:27:46 +02:00
Florian Aders (EleRas)
a810a49a74 Fixed sorting, now use correct binary prefixes, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 10:24:56 +02:00
Florian Aders (EleRas)
654af4fbc6 Fixed updater, refs #186
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 09:18:20 +02:00
Andreas Burchert (scarya)
35ffb12950 Fix for versioning.
Signed-off-by: Andreas Burchert (scarya) <scarya@froxlor.org>
2011-04-24 02:55:44 +02:00
Andreas Burchert (scarya)
7890730afa Added backup function to froxlor, fixes #186
Thanks to monotek.
2011-04-24 02:18:58 +02:00
Andreas Burchert (scarya)
a97e7d3697 Fixed htpasswd creation for nginx, fixes #722
Thanks to altmir.
2011-04-24 01:26:17 +02:00
Andreas Burchert (scarya)
b34c0e268e Added check for deactivated fcgid settings, fixes #725
Thanks to crazy4chrissi.
2011-04-24 01:04:21 +02:00
Florian Aders (EleRas)
63fe3e7019 Added german translation for traffic summary, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 01:03:09 +02:00
Florian Aders (EleRas)
886e8632a7 Improved error message for system-hostname as customerdomain, fixes #690
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 01:02:10 +02:00
Florian Aders (EleRas)
b18a3cabc2 Fixed error if no traffic - entry exists yet, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 00:57:08 +02:00
Florian Aders (EleRas)
f3f7127f82 Fix style of table-captions, fixes #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 00:25:01 +02:00
Florian Aders (EleRas)
8a8082b579 Use included jquery, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 00:23:01 +02:00
Florian Aders (EleRas)
7a27095e7b Traffic - summary, new templates, refs #492
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 00:18:12 +02:00
Florian Aders (EleRas)
a08a34283d Added traffic overview for admins over all customers, refs #492, thx yabawock
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-24 00:01:37 +02:00
Florian Aders (EleRas)
76db59a1b1 Show description of fields in dashboard, fixes #600
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-23 21:45:54 +02:00
Florian Aders (EleRas)
a86fb44e61 Fixed date in configure - hint
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-23 21:36:29 +02:00
Christoph Burchert (Chb)
b6b294b682 added no_more option to exim4 configuration to prevent further routing, fixes #655
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-23 11:38:29 +02:00
Florian Aders (EleRas)
96e7ede031 Fixed updater - version introduced in commit 7491442a25
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-18 14:01:43 +02:00
Christoph Burchert (Chb)
e87c16b598 added password generator, fixes #346
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-16 16:46:38 +02:00
Andreas Burchert (scarya)
d02daee582 Changed '>=' to '>', fixes #711 2011-04-16 15:38:25 +02:00
Andreas Burchert (scarya)
77b515751e Forgot to add the new translated string. 2011-04-16 15:28:19 +02:00
Christoph Burchert (Chb)
0ade48117c added new setting for domain validation, fixes #718
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-16 15:17:21 +02:00
Christoph Burchert (Chb)
7491442a25 added new setting for domain validation, fixes #718
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-16 15:13:43 +02:00
Andreas Burchert (scarya)
6ba2d99b67 Added proper strings for resend password failed, fixes #704 2011-04-16 15:11:57 +02:00
Christoph Burchert (Chb)
5c980946a9 insert cronjob task after changig ftp home directory, fixes #698
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-16 14:26:52 +02:00
Christoph Burchert (Chb)
213e959568 disabled password reset for banned users, fixes #677
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-04-16 13:32:11 +02:00
Florian Aders (EleRas)
f36643851f Redesign of resource-recalculation, fixes #699
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-10 10:50:10 +02:00
Andreas Burchert (scarya)
dea3601549 Added icons for recalculate resource page, refs #699 2011-04-10 10:39:55 +02:00
Florian Aders (EleRas)
29665ff3c8 Fixing execution of all files containing ".php", fixes #687
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-04-10 10:08:03 +02:00
Robert Förster (Dessa)
fc72d7ec32 fix the fix 2011-04-01 11:27:28 +02:00
Robert Förster (Dessa)
b0f3d09cb9 fix typo, refs #660 2011-04-01 07:44:32 +02:00
Andreas Burchert (scarya)
a9ab3825f5 Fixed undefined indices on admin pages, refs #645 1h0m 2011-03-30 14:52:59 +02:00
Andreas Burchert (scarya)
630e2966e2 Removed unused makeyesno functions, refs #645 @1h0m 2011-03-30 14:52:59 +02:00
Andreas Burchert (scarya)
df6441ef80 Replaced yes/no with checkboxes, refs #645 @1h0m 2011-03-30 14:52:59 +02:00
Andreas Burchert (scarya)
1730088ab1 Replaced yes/no selection with checkboxes, refs #645 @2h0m
Finished all for admin pages. admin_<section>.php files need to be cleaned.
2011-03-30 14:52:58 +02:00
Andreas Burchert (scarya)
7d97544f05 Fix in _checkbox(). 2011-03-30 13:30:28 +02:00
Florian Aders (EleRas)
c4195909e1 Tagging 0.9.19
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-28 18:06:29 +02:00
Andreas Burchert (scarya)
8b3841e2d5 Small fix in german language file, thanks to arnoldB. 2011-03-26 23:26:54 +01:00
Andreas Burchert (scarya)
9ff1d1cce5 Small fix in _checkbox() function to use sent data if available. refs #676 2011-03-26 22:34:06 +01:00
Andreas Burchert (scarya)
6b99f650ca Added label to unlimited checkboxes. 2011-03-26 21:50:57 +01:00
Florian Aders (EleRas)
3282736600 Optimizing image directory (removing unneeded files, running pngcrush over pngs)
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-26 21:49:15 +01:00
Florian Aders (EleRas)
f25d1cbb9e Marked a few fields in admin->domain as mandatory, refs #645
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-26 21:24:12 +01:00
Andreas Burchert (scarya)
3775892bc2 Added _checkbox() to htmlform class so we can generate checkboxes. 2011-03-20 17:41:08 +01:00
Andreas Burchert (scarya)
6b27a00007 Fixed undefined variable in lib/init.php 2011-03-20 10:25:39 +01:00
Andreas Burchert (scarya)
3fc3174788 Finished work for reuseable form data, fixes #672 @4h 2011-03-19 14:34:10 +01:00
Andreas Burchert (scarya)
38999a4f5e Added back button to standard_error page, refs #672 2011-03-19 14:34:10 +01:00
Andreas Burchert (scarya)
ef8c3d3cf7 Added support to reuse form data if validation fails, refs #672 2011-03-19 14:34:10 +01:00
Andreas Burchert (scarya)
3a6779570f Added php internal session handler. 2011-03-19 14:34:09 +01:00
Christoph Burchert (Chb)
e3ff9d8f5d added smtpd_tls_key_file directive to postfix configuration files, fixes #627
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-03-19 13:58:14 +01:00
Florian Aders (EleRas)
5fc5bdfaeb Ups, removed double-encoding
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-19 13:24:38 +01:00
Florian Aders (EleRas)
adcffe3912 Adding ignores for temporary files
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-19 13:19:34 +01:00
Florian Aders (EleRas)
5e0c641a02 Fixing a XSS - vulnerability discovered by tomreyn
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-19 13:14:28 +01:00
Florian Aders (EleRas)
0f4695a43f Fixing SQL-incjection found by tomreyn and general ticket-search, fixes #674
Signed-off-by: Florian Aders (EleRas) <eleras@froxlor.org>
2011-03-19 12:22:34 +01:00
Andreas Burchert (scarya)
6258b53a04 Small fix in language file, fixes #675 2011-03-19 11:51:32 +01:00
Christoph Burchert (Chb)
0776afc09e added appropiate comments to fix of #670
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-03-18 23:41:57 +01:00
Andreas Burchert (scarya)
0ab8d177b2 fixed sorting for admin_customer over view, fixes #618 2011-03-18 16:29:13 +01:00
Christoph Burchert (Chb)
9e6c405bcd fixed return status of executed programs, fixes #670
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-03-18 16:24:25 +01:00
Christoph Burchert (Chb)
94cd1a2f01 lock databases when blocking users, fixes #666
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-03-18 16:14:12 +01:00
Christoph Burchert (Chb)
954e507160 Pass redirect code to mod_rewrite directives, fixes #669
Signed-off-by: Christoph Burchert (Chb) <derchb@froxlor.org>
2011-03-18 12:48:19 +01:00
Michael Kaufmann (d00p)
d195a9622d use correct order of parameter for chown to work properly when using FreeBSD, fixes #663
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-16 15:40:19 +01:00
Michael Kaufmann (d00p)
0883580199 fix hidden form values for aps-installer (customer panel), fixes #662
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-16 08:34:06 +01:00
Michael Kaufmann (d00p)
8c2e94b2cd show link 'add customer' if more than 15 customers on 'customers-overview', fixes #661
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-14 20:53:41 +01:00
Michael Kaufmann (d00p)
d9dbd1917f add +FollowSysLinks options for perl-workaround, fixes #660
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-14 12:40:38 +01:00
Michael Kaufmann (d00p)
240025a183 - fix usage of template 'diskspace usage', fixes #656
- added missing template-variables to view, fixes #651
2011-03-14 08:40:00 +01:00
Michael Kaufmann (d00p)
24838ec2cf remove deprecated sql-statement 'TYPE' and replaced it with 'ENGINE' for panel_sessions, fixes #654
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-14 08:19:39 +01:00
Michael Kaufmann (d00p)
eaee62db4d remove trailing slash on hostnames for redirect as apache's mod_rewrite appends a second, fixes #658
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-14 08:02:58 +01:00
Michael Kaufmann (d00p)
2f0a717241 don't prepend a slash to the domains 'path' value if it's a hostname, fixes #657 2011-03-14 07:58:32 +01:00
Michael Kaufmann (d00p)
07d82fb063 change message-variable for success-message when resetting password, fixes #653
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-13 08:57:34 +01:00
Michael Kaufmann (d00p)
fae7fd0ccc sanitize paths when creating new user-home
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-11 14:21:05 +01:00
Michael Kaufmann (d00p)
20b2b1c399 add missing validator-parameters for setting-formfields
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-11 12:56:41 +01:00
Michael Kaufmann (d00p)
ee8115cbe9 - correct size unit in traffic-defailts overview
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-10 13:34:00 +01:00
Michael Kaufmann (d00p)
465f5b406e - fix checkbox-styling when using opera
- fix style-issue with table-hover

Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-10 12:53:08 +01:00
Michael Kaufmann (d00p)
9428c794c0 use correct internationalization in email-edit template, thx to arnoldB
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-10 11:14:04 +01:00
Michael Kaufmann (d00p)
2754e0ae5a fix undefined variable in cron_autoresponder, fixes #649
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-10 07:15:38 +01:00
Michael Kaufmann (d00p)
b6be7f6975 Merge branch 'master' of git.froxlor.org:froxlor 2011-03-10 07:12:09 +01:00
Michael Kaufmann (d00p)
f02a8d73c7 fix check for path-value to avoid double-slash output, fixes #648
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-09 16:36:29 +01:00
Andreas Burchert (scarya)
f30d7aecc8 Update for the italian language file.
Thanks to Emilien.
2011-03-09 14:12:42 +01:00
Michael Kaufmann (d00p)
4b1eee49a8 fix ugly spacing in configuration-file-textareas
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-09 07:29:28 +01:00
Michael Kaufmann (d00p)
b5124b8274 fix output of default path-value if path-select-mode is 'Manual', fixes #642
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-08 11:48:05 +01:00
Michael Kaufmann (d00p)
00f8707703 fix variable-mixup in formfield so ips-and-ports specialsettings are not shown on the panel (but actually saved to database and used!)
Signed-off-by: Michael Kaufmann (d00p) <d00p@froxlor.org>
2011-03-07 14:44:48 +01:00
1060 changed files with 48618 additions and 4953 deletions

6
.gitignore vendored Normal file
View File

@@ -0,0 +1,6 @@
packages/*
temp/*
.buildpath
.project
.settings/
*.diff

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Language * @package Language
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(
@@ -27,6 +27,7 @@ return array(
'settinggroup' => 'system', 'settinggroup' => 'system',
'varname' => 'documentroot_prefix', 'varname' => 'documentroot_prefix',
'type' => 'string', 'type' => 'string',
'string_type' => 'dir',
'default' => '/var/customers/webs/', 'default' => '/var/customers/webs/',
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
'plausibility_check_method' => 'checkPathConflicts' 'plausibility_check_method' => 'checkPathConflicts'
@@ -58,6 +59,7 @@ return array(
'type' => 'string', 'type' => 'string',
'default' => '', 'default' => '',
'save_method' => 'storeSettingHostname', 'save_method' => 'storeSettingHostname',
'plausibility_check_method' => 'checkHostname',
), ),
'system_froxlordirectlyviahostname' => array( 'system_froxlordirectlyviahostname' => array(
'label' => $lng['serversettings']['froxlordirectlyviahostname'], 'label' => $lng['serversettings']['froxlordirectlyviahostname'],
@@ -67,6 +69,14 @@ return array(
'default' => false, 'default' => false,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
), ),
'system_validatedomain' => array(
'label' => $lng['serversettings']['validate_domain'],
'settinggroup' => 'system',
'varname' => 'validate_domain',
'type' => 'bool',
'default' => true,
'save_method' => 'storeSettingField',
),
'system_stdsubdomain' => array( 'system_stdsubdomain' => array(
'label' => $lng['serversettings']['stdsubdomainhost'], 'label' => $lng['serversettings']['stdsubdomainhost'],
'settinggroup' => 'system', 'settinggroup' => 'system',
@@ -128,7 +138,7 @@ return array(
'varname' => 'report_webmax', 'varname' => 'report_webmax',
'type' => 'int', 'type' => 'int',
'int_min' => 1, 'int_min' => 1,
'int_max' => 99, 'int_max' => 150,
'default' => 90, 'default' => 90,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
), ),
@@ -138,7 +148,7 @@ return array(
'varname' => 'report_trafficmax', 'varname' => 'report_trafficmax',
'type' => 'int', 'type' => 'int',
'int_min' => 1, 'int_min' => 1,
'int_max' => 99, 'int_max' => 150,
'default' => 90, 'default' => 90,
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
), ),

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(
@@ -43,6 +43,7 @@ return array(
'settinggroup' => 'perl', 'settinggroup' => 'perl',
'varname' => 'suexecpath', 'varname' => 'suexecpath',
'type' => 'string', 'type' => 'string',
'string_type' => 'dir',
'default' => '/var/www/cgi-bin/', 'default' => '/var/www/cgi-bin/',
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
'websrv_avail' => array('apache2') 'websrv_avail' => array('apache2')

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id: 220.ftpserver.php 1 2010-04-07 10:00:00Z monotek $ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(
@@ -22,6 +22,15 @@ return array(
'nameserver' => array( 'nameserver' => array(
'title' => $lng['admin']['nameserversettings'], 'title' => $lng['admin']['nameserversettings'],
'fields' => array( 'fields' => array(
'nameserver_enable' => array(
'label' => $lng['serversettings']['bindenable'],
'settinggroup' => 'system',
'varname' => 'bind_enable',
'type' => 'bool',
'default' => true,
'save_method' => 'storeSettingField',
'overview_option' => true
),
'system_bindconf_directory' => array( 'system_bindconf_directory' => array(
'label' => $lng['serversettings']['bindconf_directory'], 'label' => $lng['serversettings']['bindconf_directory'],
'settinggroup' => 'system', 'settinggroup' => 'system',

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(
@@ -36,6 +36,7 @@ return array(
'settinggroup' => 'dkim', 'settinggroup' => 'dkim',
'varname' => 'dkim_prefix', 'varname' => 'dkim_prefix',
'type' => 'string', 'type' => 'string',
'string_type' => 'dir',
'default' => '/etc/postfix/dkim/', 'default' => '/etc/postfix/dkim/',
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
), ),

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(
@@ -133,7 +133,7 @@ return array(
'type' => 'option', 'type' => 'option',
'default' => 2, 'default' => 2,
'option_mode' => 'one', 'option_mode' => 'one',
'option_options' => array(1 => $lng['ticket']['unf_high'], 2 => $lng['ticket']['unf_normal'], 3 => $lng['ticket']['unf_low']), 'option_options' => array(1 => $lng['ticket']['high'], 2 => $lng['ticket']['normal'], 3 => $lng['ticket']['low']),
'save_method' => 'storeSettingField', 'save_method' => 'storeSettingField',
), ),
), ),

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings * @package Settings
* @version $Id$ *
*/ */
return array( return array(

View File

@@ -0,0 +1,117 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2003-2009 the SysCP Team (see authors).
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Florian Lippert <flo@syscp.org> (2003-2009)
* @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings
*
*/
return array(
'groups' => array(
'backup' => array(
'title' => $lng['backup'],
'fields' => array(
'backup_enabled' => array(
'label' => $lng['serversettings']['backup_enabled'],
'settinggroup' => 'system',
'varname' => 'backup_enabled',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => true
),
'backup_dir' => array(
'label' => $lng['serversettings']['backupdir']['description'],
'settinggroup' => 'system',
'varname' => 'backup_dir',
'type' => 'string',
'string_type' => 'dir',
'default' => '/var/customers/backups/',
'string_regexp' => '#^/.*/$#',
'save_method' => 'storeSettingField',
),
'backup_mysqldump_path' => array(
'label' => $lng['serversettings']['mysqldump_path']['description'],
'settinggroup' => 'system',
'varname' => 'backup_mysqldump_path',
'type' => 'string',
'default' => '/usr/bin/mysqldump',
'save_method' => 'storeSettingField',
),
'backup_count' => array(
'label' => $lng['serversettings']['backup_count'],
'settinggroup' => 'system',
'varname' => 'backup_count',
'type' => 'bool',
'default' => 'true',
'save_method' => 'storeSettingField',
'overview_option' => false
),
'backup_bigfile' => array(
'label' => $lng['serversettings']['backup_bigfile'],
'settinggroup' => 'system',
'varname' => 'backup_bigfile',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => false
),
'backup_ftp_enabled_' => array(
'label' => $lng['serversettings']['backup_ftp_enabled'],
'settinggroup' => 'system',
'varname' => 'backup_ftp_enabled',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => false
),
'backup_server' => array(
'label' => $lng['serversettings']['backup_ftp_server'],
'settinggroup' => 'system',
'varname' => 'backup_ftp_server',
'type' => 'string',
'default' => '',
'save_method' => 'storeSettingField',
),
'backup_user' => array(
'label' => $lng['serversettings']['backup_ftp_user'],
'settinggroup' => 'system',
'varname' => 'backup_ftp_user',
'type' => 'string',
'default' => '',
'save_method' => 'storeSettingField',
),
'backup_pass' => array(
'label' => $lng['serversettings']['backup_ftp_pass'],
'settinggroup' => 'system',
'varname' => 'backup_ftp_pass',
'type' => 'hiddenstring',
'default' => '',
'save_method' => 'storeSettingField',
),
'backup_passive_mode' => array(
'label' => $lng['serversettings']['backup_ftp_passive_mode'],
'settinggroup' => 'system',
'varname' => 'backup_ftp_passive',
'type' => 'bool',
'default' => true,
'save_method' => 'storeSettingField',
'overview_option' => false,
),
),
),
),
);
?>

View File

@@ -0,0 +1,60 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2011 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Froxlor team <team@froxlor.org> (2011-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings
*
*/
return array(
'groups' => array(
'diskquota' => array(
'title' => $lng['diskquota'],
'fields' => array(
'diskquota_enabled' => array(
'label' => $lng['serversettings']['diskquota_enabled'],
'settinggroup' => 'system',
'varname' => 'diskquota_enabled',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => true
),
'diskquota_repquota_path' => array(
'label' => $lng['serversettings']['diskquota_repquota_path']['description'],
'settinggroup' => 'system',
'varname' => 'diskquota_repquota_path',
'type' => 'string',
'default' => '/usr/sbin/repquota',
'save_method' => 'storeSettingField',
),
'diskquota_quotatool_path' => array(
'label' => $lng['serversettings']['diskquota_quotatool_path']['description'],
'settinggroup' => 'system',
'varname' => 'diskquota_quotatool_path',
'type' => 'string',
'default' => '/usr/bin/quotatool',
'save_method' => 'storeSettingField',
),
'diskquota_customer_partition' => array(
'label' => $lng['serversettings']['diskquota_customer_partition']['description'],
'settinggroup' => 'system',
'varname' => 'diskquota_customer_partition',
'type' => 'string',
'default' => '/dev/root',
'save_method' => 'storeSettingField',
),
),
),
),
);
?>

View File

@@ -0,0 +1,67 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2003-2009 the SysCP Team (see authors).
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Florian Lippert <flo@syscp.org> (2003-2009)
* @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Settings
*
*/
return array(
'groups' => array(
'logrotate' => array(
'title' => $lng['logrotate'],
'fields' => array(
'logrotate_enabled' => array(
'label' => $lng['logrotate_enabled'],
'settinggroup' => 'system',
'varname' => 'logrotate_enabled',
'type' => 'bool',
'default' => false,
'save_method' => 'storeSettingField',
'overview_option' => true
),
'logrotate_binary' => array(
'label' => $lng['logrotate_binary'],
'settinggroup' => 'system',
'varname' => 'logrotate_binary',
'type' => 'string',
'default' => '/usr/sbin/logrotate',
'save_method' => 'storeSettingField',
'overview_option' => false
),
'logrotate_interval' => array(
'label' => $lng['logrotate_interval'],
'settinggroup' => 'system',
'varname' => 'logrotate_interval',
'type' => 'option',
'default' => 'weekly',
'option_mode' => 'one',
'option_options' => array('daily' => 'Daily', 'weekly' => 'Weekly', 'monthly' => 'Monthly'),
'save_method' => 'storeSettingField',
'overview_option' => false
),
'logrotate_keep' => array(
'label' => $lng['logrotate_keep'],
'settinggroup' => 'system',
'varname' => 'logrotate_keep',
'type' => 'string',
'default' => '4',
'save_method' => 'storeSettingField',
'overview_option' => false
),
),
),
),
);
?>

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id: admin_admins.php 101 2010-12-08 07:03:42Z d00p $ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -289,9 +289,20 @@ if($page == 'admins'
$can_manage_aps_packages = 0; $can_manage_aps_packages = 0;
} }
$customers_see_all = 0;
if(isset($_POST['customers_see_all']))
$customers_see_all = intval($_POST['customers_see_all']); $customers_see_all = intval($_POST['customers_see_all']);
$domains_see_all = 0;
if(isset($_POST['domains_see_all']))
$domains_see_all = intval($_POST['domains_see_all']); $domains_see_all = intval($_POST['domains_see_all']);
$caneditphpsettings = 0;
if(isset($_POST['caneditphpsettings']))
$caneditphpsettings = intval($_POST['caneditphpsettings']); $caneditphpsettings = intval($_POST['caneditphpsettings']);
$change_serversettings = 0;
if(isset($_POST['change_serversettings']))
$change_serversettings = intval($_POST['change_serversettings']); $change_serversettings = intval($_POST['change_serversettings']);
$diskspace = intval_ressource($_POST['diskspace']); $diskspace = intval_ressource($_POST['diskspace']);
@@ -452,11 +463,11 @@ if($page == 'admins'
$ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $ftps_ul = makecheckbox('ftps_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$change_serversettings = makeyesno('change_serversettings', '1', '0', '0'); #$change_serversettings = makeyesno('change_serversettings', '1', '0', '0');
$customers_see_all = makeyesno('customers_see_all', '1', '0', '0'); #$customers_see_all = makeyesno('customers_see_all', '1', '0', '0');
$domains_see_all = makeyesno('domains_see_all', '1', '0', '0'); #$domains_see_all = makeyesno('domains_see_all', '1', '0', '0');
$caneditphpsettings = makeyesno('caneditphpsettings', '1', '0', '0'); #$caneditphpsettings = makeyesno('caneditphpsettings', '1', '0', '0');
$can_manage_aps_packages = makeyesno('can_manage_aps_packages', '1', '0', '0'); #$can_manage_aps_packages = makeyesno('can_manage_aps_packages', '1', '0', '0');
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$admin_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/admin/formfield.admin_add.php'; $admin_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/admin/formfield.admin_add.php';
@@ -617,12 +628,24 @@ if($page == 'admins'
$number_of_aps_packages = - 1; $number_of_aps_packages = - 1;
} }
$customers_see_all = intval($_POST['customers_see_all']);
$domains_see_all = intval($_POST['domains_see_all']);
$caneditphpsettings = intval($_POST['caneditphpsettings']);
$change_serversettings = intval($_POST['change_serversettings']);
$can_manage_aps_packages = intval($_POST['can_manage_aps_packages']); $can_manage_aps_packages = intval($_POST['can_manage_aps_packages']);
$customers_see_all = 0;
if(isset($_POST['customers_see_all']))
$customers_see_all = intval($_POST['customers_see_all']);
$domains_see_all = 0;
if(isset($_POST['domains_see_all']))
$domains_see_all = intval($_POST['domains_see_all']);
$caneditphpsettings = 0;
if(isset($_POST['caneditphpsettings']))
$caneditphpsettings = intval($_POST['caneditphpsettings']);
$change_serversettings = 0;
if(isset($_POST['change_serversettings']))
$change_serversettings = intval($_POST['change_serversettings']);
$diskspace = intval($_POST['diskspace']); $diskspace = intval($_POST['diskspace']);
if(isset($_POST['diskspace_ul'])) if(isset($_POST['diskspace_ul']))
@@ -829,12 +852,12 @@ if($page == 'admins'
} }
} }
$change_serversettings = makeyesno('change_serversettings', '1', '0', $result['change_serversettings']); #$change_serversettings = makeyesno('change_serversettings', '1', '0', $result['change_serversettings']);
$customers_see_all = makeyesno('customers_see_all', '1', '0', $result['customers_see_all']); #$customers_see_all = makeyesno('customers_see_all', '1', '0', $result['customers_see_all']);
$domains_see_all = makeyesno('domains_see_all', '1', '0', $result['domains_see_all']); #$domains_see_all = makeyesno('domains_see_all', '1', '0', $result['domains_see_all']);
$caneditphpsettings = makeyesno('caneditphpsettings', '1', '0', $result['caneditphpsettings']); #$caneditphpsettings = makeyesno('caneditphpsettings', '1', '0', $result['caneditphpsettings']);
$deactivated = makeyesno('deactivated', '1', '0', $result['deactivated']); #$deactivated = makeyesno('deactivated', '1', '0', $result['deactivated']);
$can_manage_aps_packages = makeyesno('can_manage_aps_packages', '1', '0', $result['can_manage_aps_packages']); #$can_manage_aps_packages = makeyesno('can_manage_aps_packages', '1', '0', $result['can_manage_aps_packages']);
$result = htmlentities_array($result); $result = htmlentities_array($result);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
// Required code // Required code

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id: admin_cronjobs.php 105 2010-12-09 08:02:33Z d00p $ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -121,7 +121,7 @@ if($page == 'cronjobs'
} }
else else
{ {
$isactive = makeyesno('isactive', '1', '0', $result['isactive']); #$isactive = makeyesno('isactive', '1', '0', $result['isactive']);
// interval // interval
$interval_nfo = explode(' ', $result['interval']); $interval_nfo = explode(' ', $result['interval']);
$interval_value = $interval_nfo[0]; $interval_value = $interval_nfo[0];

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -40,6 +40,9 @@ if($page == 'customers'
{ {
if($action == '') if($action == '')
{ {
// clear request data
unset($_SESSION['requestData']);
$log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_customers"); $log->logAction(ADM_ACTION, LOG_NOTICE, "viewed admin_customers");
$fields = array( $fields = array(
'c.loginname' => $lng['login']['username'], 'c.loginname' => $lng['login']['username'],
@@ -50,7 +53,8 @@ if($page == 'customers'
'c.diskspace' => $lng['customer']['diskspace'], 'c.diskspace' => $lng['customer']['diskspace'],
'c.diskspace_used' => $lng['customer']['diskspace'] . ' (' . $lng['panel']['used'] . ')', 'c.diskspace_used' => $lng['customer']['diskspace'] . ' (' . $lng['panel']['used'] . ')',
'c.traffic' => $lng['customer']['traffic'], 'c.traffic' => $lng['customer']['traffic'],
'c.traffic_used' => $lng['customer']['traffic'] . ' (' . $lng['panel']['used'] . ')' 'c.traffic_used' => $lng['customer']['traffic'] . ' (' . $lng['panel']['used'] . ')',
'c.backup_allowed' => $lng['backup_allowed']
/* /*
'c.mysqls' => $lng['customer']['mysqls'], 'c.mysqls' => $lng['customer']['mysqls'],
'c.mysqls_used' => $lng['customer']['mysqls'] . ' (' . $lng['panel']['used'] . ')', 'c.mysqls_used' => $lng['customer']['mysqls'] . ' (' . $lng['panel']['used'] . ')',
@@ -89,7 +93,7 @@ if($page == 'customers'
$paging = new paging($userinfo, $db, TABLE_PANEL_CUSTOMERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']); $paging = new paging($userinfo, $db, TABLE_PANEL_CUSTOMERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
$customers = ''; $customers = '';
$result = $db->query("SELECT `c`.*, `a`.`loginname` AS `adminname` " . "FROM `" . TABLE_PANEL_CUSTOMERS . "` `c`, `" . TABLE_PANEL_ADMINS . "` `a` " . "WHERE " . ($userinfo['customers_see_all'] ? '' : " `c`.`adminid` = '" . (int)$userinfo['adminid'] . "' AND ") . "`c`.`adminid`=`a`.`adminid` " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit()); $result = $db->query("SELECT `c`.*, `a`.`loginname` AS `adminname` " . "FROM `" . TABLE_PANEL_CUSTOMERS . "` `c`, `" . TABLE_PANEL_ADMINS . "` `a` " . "WHERE " . ($userinfo['customers_see_all'] ? '' : " `c`.`adminid` = '" . (int)$userinfo['adminid'] . "' AND ") . "`c`.`adminid`=`a`.`adminid` " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy(false) . " " . $paging->getSqlLimit());
$paging->setEntries($db->num_rows($result)); $paging->setEntries($db->num_rows($result));
$sortcode = $paging->getHtmlSortCode($lng, true); $sortcode = $paging->getHtmlSortCode($lng, true);
$arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s); $arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s);
@@ -113,12 +117,21 @@ if($page == 'customers'
/** /**
* percent-values for progressbar * percent-values for progressbar
*/ */
//For Disk usage
if ($row['diskspace'] > 0) { if ($row['diskspace'] > 0) {
$percent = round(($row['diskspace_used']*100)/$row['diskspace'], 2); $disk_percent = round(($row['diskspace_used']*100)/$row['diskspace'], 2);
$doublepercent = round($percent*2, 2); $disk_doublepercent = round($disk_percent*2, 2);
} else { } else {
$percent = 0; $disk_percent = 0;
$doublepercent = 0; $disk_doublepercent = 0;
}
if ($row['traffic'] > 0) {
$traffic_percent = round(($row['traffic_used']*100)/$row['traffic'], 2);
$traffic_doublepercent = round($traffic_percent*2, 2);
} else {
$traffic_percent = 0;
$traffic_doublepercent = 0;
} }
$column_style = ''; $column_style = '';
@@ -215,8 +228,8 @@ if($page == 'customers'
foreach(array_unique(explode(',', $settings['system']['mysql_access_host'])) as $mysql_access_host) foreach(array_unique(explode(',', $settings['system']['mysql_access_host'])) as $mysql_access_host)
{ {
$mysql_access_host = trim($mysql_access_host); $mysql_access_host = trim($mysql_access_host);
$db_root->query('REVOKE ALL PRIVILEGES ON * . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`'); $db_root->query('REVOKE ALL PRIVILEGES ON * . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`',false,true);
$db_root->query('REVOKE ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`'); $db_root->query('REVOKE ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`',false,true);
$db_root->query('DELETE FROM `mysql`.`user` WHERE `User` = "' . $db_root->escape($row_database['databasename']) . '" AND `Host` = "' . $db_root->escape($mysql_access_host) . '"'); $db_root->query('DELETE FROM `mysql`.`user` WHERE `User` = "' . $db_root->escape($row_database['databasename']) . '" AND `Host` = "' . $db_root->escape($mysql_access_host) . '"');
} }
@@ -325,7 +338,12 @@ if($page == 'customers'
$db->query($admin_update_query); $db->query($admin_update_query);
$log->logAction(ADM_ACTION, LOG_INFO, "deleted user '" . $result['loginname'] . "'"); $log->logAction(ADM_ACTION, LOG_INFO, "deleted user '" . $result['loginname'] . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
if(isset($_POST['delete_userfiles']) if(isset($_POST['delete_userfiles'])
&& (int)$_POST['delete_userfiles'] == 1) && (int)$_POST['delete_userfiles'] == 1)
@@ -333,6 +351,12 @@ if($page == 'customers'
inserttask('6', $result['loginname']); inserttask('6', $result['loginname']);
} }
# Using filesystem - quota, insert a task which cleans the filesystem - quota
if ($settings['system']['diskquota_enabled'])
{
inserttask('10');
}
/* /*
* move old tickets to archive * move old tickets to archive
*/ */
@@ -380,6 +404,7 @@ if($page == 'customers'
$customernumber = validate($_POST['customernumber'], 'customer number', '/^[A-Za-z0-9 \-]*$/Di'); $customernumber = validate($_POST['customernumber'], 'customer number', '/^[A-Za-z0-9 \-]*$/Di');
$def_language = validate($_POST['def_language'], 'default language'); $def_language = validate($_POST['def_language'], 'default language');
$diskspace = intval_ressource($_POST['diskspace']); $diskspace = intval_ressource($_POST['diskspace']);
$gender = intval_ressource($_POST['gender']);
if(isset($_POST['diskspace_ul'])) if(isset($_POST['diskspace_ul']))
{ {
@@ -449,8 +474,16 @@ if($page == 'customers'
$email_autoresponder = 0; $email_autoresponder = 0;
} }
$email_imap = 0;
if(isset($_POST['email_imap']))
$email_imap = intval_ressource($_POST['email_imap']); $email_imap = intval_ressource($_POST['email_imap']);
$email_pop3 = 0;
if(isset($_POST['email_pop3']))
$email_pop3 = intval_ressource($_POST['email_pop3']); $email_pop3 = intval_ressource($_POST['email_pop3']);
$ftps = 0;
if(isset($_POST['ftps']))
$ftps = intval_ressource($_POST['ftps']); $ftps = intval_ressource($_POST['ftps']);
if(isset($_POST['ftps_ul'])) if(isset($_POST['ftps_ul']))
@@ -487,6 +520,8 @@ if($page == 'customers'
$number_of_aps_packages = 0; $number_of_aps_packages = 0;
} }
$createstdsubdomain = 0;
if(isset($_POST['createstdsubdomain']))
$createstdsubdomain = intval($_POST['createstdsubdomain']); $createstdsubdomain = intval($_POST['createstdsubdomain']);
$password = validate($_POST['new_customer_password'], 'password'); $password = validate($_POST['new_customer_password'], 'password');
// only check if not empty, // only check if not empty,
@@ -495,10 +530,37 @@ if($page == 'customers'
{ {
$password = validatePassword($password); $password = validatePassword($password);
} }
$backup_allowed = 0;
if(isset($_POST['backup_allowed']))
$backup_allowed = intval($_POST['backup_allowed']);
if ($backup_allowed != 0)
{
$backup_allowed = 1;
}
// gender out of range? [0,2]
if ($gender < 0 || $gender > 2) {
$gender = 0;
}
$sendpassword = 0;
if(isset($_POST['sendpassword']))
$sendpassword = intval($_POST['sendpassword']); $sendpassword = intval($_POST['sendpassword']);
$phpenabled = 0;
if(isset($_POST['phpenabled']))
$phpenabled = intval($_POST['phpenabled']); $phpenabled = intval($_POST['phpenabled']);
$perlenabled = 0;
if(isset($_POST['perlenabled']))
$perlenabled = intval($_POST['perlenabled']); $perlenabled = intval($_POST['perlenabled']);
$store_defaultindex = 0;
if(isset($_POST['store_defaultindex']))
$store_defaultindex = intval($_POST['store_defaultindex']); $store_defaultindex = intval($_POST['store_defaultindex']);
$diskspace = $diskspace * 1024; $diskspace = $diskspace * 1024;
$traffic = $traffic * 1024 * 1024; $traffic = $traffic * 1024 * 1024;
@@ -563,6 +625,11 @@ if($page == 'customers'
{ {
standard_error('loginnameissystemaccount', $settings['customer']['accountprefix']); standard_error('loginnameissystemaccount', $settings['customer']['accountprefix']);
} }
//Additional filtering for Bug #962
if(function_exists('posix_getpwuid') && !in_array("posix_getpwuid",explode(",",ini_get('disable_functions'))) && posix_getpwuid($loginname)) {
standard_error('loginnameissystemaccount', $settings['customer']['accountprefix']);
}
} }
else else
{ {
@@ -622,6 +689,7 @@ if($page == 'customers'
`password` = '" . md5($password) . "', `password` = '" . md5($password) . "',
`name` = '" . $db->escape($name) . "', `name` = '" . $db->escape($name) . "',
`firstname` = '" . $db->escape($firstname) . "', `firstname` = '" . $db->escape($firstname) . "',
`gender` = '" . (int)$gender . "',
`company` = '" . $db->escape($company) . "', `company` = '" . $db->escape($company) . "',
`street` = '" . $db->escape($street) . "', `street` = '" . $db->escape($street) . "',
`zipcode` = '" . $db->escape($zipcode) . "', `zipcode` = '" . $db->escape($zipcode) . "',
@@ -650,6 +718,7 @@ if($page == 'customers'
`aps_packages` = '" . (int)$number_of_aps_packages . "', `aps_packages` = '" . (int)$number_of_aps_packages . "',
`perlenabled` = '" . $db->escape($perlenabled) . "', `perlenabled` = '" . $db->escape($perlenabled) . "',
`email_autoresponder` = '" . $db->escape($email_autoresponder) . "', `email_autoresponder` = '" . $db->escape($email_autoresponder) . "',
`backup_allowed` = '" . $db->escape($backup_allowed) . "',
`theme` = '" . $db->escape($_theme) . "'" `theme` = '" . $db->escape($_theme) . "'"
); );
$customerid = $db->insert_id(); $customerid = $db->insert_id();
@@ -724,6 +793,11 @@ if($page == 'customers'
$log->logAction(ADM_ACTION, LOG_INFO, "added user '" . $loginname . "'"); $log->logAction(ADM_ACTION, LOG_INFO, "added user '" . $loginname . "'");
inserttask('2', $loginname, $guid, $guid, $store_defaultindex); inserttask('2', $loginname, $guid, $guid, $store_defaultindex);
# Using filesystem - quota, insert a task which cleans the filesystem - quota
if ($settings['system']['diskquota_enabled'])
{
inserttask('10');
}
// Add htpasswd for the webalizer stats // Add htpasswd for the webalizer stats
if(CRYPT_STD_DES == 1) if(CRYPT_STD_DES == 1)
@@ -852,13 +926,18 @@ if($page == 'customers'
$tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $tickets_ul = makecheckbox('tickets_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $mysqls_ul = makecheckbox('mysqls_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true); $number_of_aps_packages_ul = makecheckbox('number_of_aps_packages_ul', $lng['customer']['unlimited'], '-1', false, '0', true, true);
$createstdsubdomain = makeyesno('createstdsubdomain', '1', '0', '1'); #$createstdsubdomain = makeyesno('createstdsubdomain', '1', '0', '1');
$email_imap = makeyesno('email_imap', '1', '0', '1'); #$email_imap = makeyesno('email_imap', '1', '0', '1');
$email_pop3 = makeyesno('email_pop3', '1', '0', '1'); #$email_pop3 = makeyesno('email_pop3', '1', '0', '1');
$sendpassword = makeyesno('sendpassword', '1', '0', '1'); #$sendpassword = makeyesno('sendpassword', '1', '0', '1');
$phpenabled = makeyesno('phpenabled', '1', '0', '1'); #$phpenabled = makeyesno('phpenabled', '1', '0', '1');
$perlenabled = makeyesno('perlenabled', '1', '0', '0'); #$perlenabled = makeyesno('perlenabled', '1', '0', '0');
$store_defaultindex = makeyesno('store_defaultindex', '1', '0', '1'); #$store_defaultindex = makeyesno('store_defaultindex', '1', '0', '1');
$backup_allowed = makeyesno('backup_allowed', '1', '0', '0');
$gender_options = makeoption($lng['gender']['undef'], 0, true, true, true);
$gender_options .= makeoption($lng['gender']['male'], 1, null, true, true);
$gender_options .= makeoption($lng['gender']['female'], 2, null, true, true);
$customer_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_add.php'; $customer_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_add.php';
$customer_add_form = htmlform::genHTMLForm($customer_add_data); $customer_add_form = htmlform::genHTMLForm($customer_add_data);
@@ -893,6 +972,7 @@ if($page == 'customers'
$def_language = validate($_POST['def_language'], 'default language'); $def_language = validate($_POST['def_language'], 'default language');
$password = validate($_POST['new_customer_password'], 'new password'); $password = validate($_POST['new_customer_password'], 'new password');
$diskspace = intval_ressource($_POST['diskspace']); $diskspace = intval_ressource($_POST['diskspace']);
$gender = intval_ressource($_POST['gender']);
if(isset($_POST['diskspace_ul'])) if(isset($_POST['diskspace_ul']))
{ {
@@ -962,8 +1042,16 @@ if($page == 'customers'
$email_autoresponder = 0; $email_autoresponder = 0;
} }
$email_imap = 0;
if(isset($_POST['email_imap']))
$email_imap = intval_ressource($_POST['email_imap']); $email_imap = intval_ressource($_POST['email_imap']);
$email_pop3 = 0;
if(isset($_POST['email_pop3']))
$email_pop3 = intval_ressource($_POST['email_pop3']); $email_pop3 = intval_ressource($_POST['email_pop3']);
$ftps = 0;
if(isset($_POST['ftps']))
$ftps = intval_ressource($_POST['ftps']); $ftps = intval_ressource($_POST['ftps']);
if(isset($_POST['ftps_ul'])) if(isset($_POST['ftps_ul']))
@@ -979,6 +1067,21 @@ if($page == 'customers'
$tickets = - 1; $tickets = - 1;
} }
$backup_allowed = 0;
if (isset($_POST['backup_allowed']))
$backup_allowed = intval($_POST['backup_allowed']);
if($backup_allowed != '0'){
$backup_allowed = 1;
}
// gender out of range? [0,2]
if ($gender < 0 || $gender > 2) {
$gender = 0;
}
$mysqls = 0;
if(isset($_POST['mysqls']))
$mysqls = intval_ressource($_POST['mysqls']); $mysqls = intval_ressource($_POST['mysqls']);
if(isset($_POST['mysqls_ul'])) if(isset($_POST['mysqls_ul']))
@@ -1000,9 +1103,20 @@ if($page == 'customers'
$number_of_aps_packages = 0; $number_of_aps_packages = 0;
} }
$createstdsubdomain = 0;
if(isset($_POST['createstdsubdomain']))
$createstdsubdomain = intval($_POST['createstdsubdomain']); $createstdsubdomain = intval($_POST['createstdsubdomain']);
$deactivated = 0;
if(isset($_POST['deactivated']))
$deactivated = intval($_POST['deactivated']); $deactivated = intval($_POST['deactivated']);
$phpenabled = 0;
if(isset($_POST['phpenabled']))
$phpenabled = intval($_POST['phpenabled']); $phpenabled = intval($_POST['phpenabled']);
$perlenabled = 0;
if(isset($_POST['perlenabled']))
$perlenabled = intval($_POST['perlenabled']); $perlenabled = intval($_POST['perlenabled']);
$diskspace = $diskspace * 1024; $diskspace = $diskspace * 1024;
$traffic = $traffic * 1024 * 1024; $traffic = $traffic * 1024 * 1024;
@@ -1126,6 +1240,47 @@ if($page == 'customers'
$db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `postfix`='" . (($deactivated) ? 'N' : 'Y') . "', `pop3`='" . (($deactivated) ? '0' : '1') . "', `imap`='" . (($deactivated) ? '0' : '1') . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `postfix`='" . (($deactivated) ? 'N' : 'Y') . "', `pop3`='" . (($deactivated) ? '0' : '1') . "', `imap`='" . (($deactivated) ? '0' : '1') . "' WHERE `customerid`='" . (int)$id . "'");
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `login_enabled`='" . (($deactivated) ? 'N' : 'Y') . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `login_enabled`='" . (($deactivated) ? 'N' : 'Y') . "' WHERE `customerid`='" . (int)$id . "'");
$db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `deactivated`='" . (int)$deactivated . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `deactivated`='" . (int)$deactivated . "' WHERE `customerid`='" . (int)$id . "'");
/* Retrieve customer's databases */
$databases = $db->query("SELECT * FROM " . TABLE_PANEL_DATABASES . " WHERE customerid='" . (int)$id . "' ORDER BY `dbserver`");
$db_root = new db($sql_root[0]['host'], $sql_root[0]['user'], $sql_root[0]['password'], '');
unset($db_root->password);
$last_dbserver = 0;
/* For each of them */
while($row_database = $db->fetch_array($databases))
{
if($last_dbserver != $row_database['dbserver'])
{
$db_root->query('FLUSH PRIVILEGES;');
$db_root->close();
$db_root = new db($sql_root[$row_database['dbserver']]['host'], $sql_root[$row_database['dbserver']]['user'], $sql_root[$row_database['dbserver']]['password'], '');
unset($db_root->password);
$last_dbserver = $row_database['dbserver'];
}
foreach(array_unique(explode(',', $settings['system']['mysql_access_host'])) as $mysql_access_host)
{
$mysql_access_host = trim($mysql_access_host);
/* Prevent access, if deactivated */
if($deactivated)
{
$db_root->query('REVOKE ALL PRIVILEGES ON * . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`');
$db_root->query('REVOKE ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * FROM `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`');
}
else /* Otherwise grant access */
{
$db_root->query('GRANT ALL PRIVILEGES ON `' . $db_root->escape($row_database['databasename']) .'`.* TO `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`');
$db_root->query('GRANT ALL PRIVILEGES ON `' . str_replace('_', '\_', $db_root->escape($row_database['databasename'])) . '` . * TO `' . $db_root->escape($row_database['databasename']) . '`@`' . $db_root->escape($mysql_access_host) . '`');
}
}
}
/* At last flush the new privileges */
$db_root->query('FLUSH PRIVILEGES;');
$db_root->close();
$log->logAction(ADM_ACTION, LOG_INFO, "deactivated user '" . $result['loginname'] . "'"); $log->logAction(ADM_ACTION, LOG_INFO, "deactivated user '" . $result['loginname'] . "'");
inserttask('1'); inserttask('1');
} }
@@ -1144,9 +1299,16 @@ if($page == 'customers'
$db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `imap`='" . (int)$email_imap . "' WHERE `customerid`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_MAIL_USERS . "` SET `imap`='" . (int)$email_imap . "' WHERE `customerid`='" . (int)$id . "'");
} }
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "' WHERE `customerid`='" . (int)$id . "'"); // $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "' WHERE `customerid`='" . (int)$id . "'");
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `name`='" . $db->escape($name) . "', `firstname`='" . $db->escape($firstname) . "', `gender`='" . $db->escape($gender) . "', `company`='" . $db->escape($company) . "', `street`='" . $db->escape($street) . "', `zipcode`='" . $db->escape($zipcode) . "', `city`='" . $db->escape($city) . "', `phone`='" . $db->escape($phone) . "', `fax`='" . $db->escape($fax) . "', `email`='" . $db->escape($email) . "', `customernumber`='" . $db->escape($customernumber) . "', `def_language`='" . $db->escape($def_language) . "', `password` = '" . $password . "', `diskspace`='" . $db->escape($diskspace) . "', `traffic`='" . $db->escape($traffic) . "', `subdomains`='" . $db->escape($subdomains) . "', `emails`='" . $db->escape($emails) . "', `email_accounts` = '" . $db->escape($email_accounts) . "', `email_forwarders`='" . $db->escape($email_forwarders) . "', `ftps`='" . $db->escape($ftps) . "', `tickets`='" . $db->escape($tickets) . "', `mysqls`='" . $db->escape($mysqls) . "', `deactivated`='" . $db->escape($deactivated) . "', `phpenabled`='" . $db->escape($phpenabled) . "', `email_quota`='" . $db->escape($email_quota) . "', `imap`='" . $db->escape($email_imap) . "', `pop3`='" . $db->escape($email_pop3) . "', `aps_packages`='" . (int)$number_of_aps_packages . "', `perlenabled`='" . $db->escape($perlenabled) . "', `email_autoresponder`='" . $db->escape($email_autoresponder) . "', `backup_allowed`='" . $db->escape($backup_allowed) . "' WHERE `customerid`='" . (int)$id . "'");
$admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` "; $admin_update_query = "UPDATE `" . TABLE_PANEL_ADMINS . "` SET `customers_used` = `customers_used` ";
# Using filesystem - quota, insert a task which cleans the filesystem - quota
if ($settings['system']['diskquota_enabled'])
{
inserttask('10');
}
if($mysqls != '-1' if($mysqls != '-1'
|| $result['mysqls'] != '-1') || $result['mysqls'] != '-1')
{ {
@@ -1430,15 +1592,19 @@ if($page == 'customers'
$result['aps_packages'] = ''; $result['aps_packages'] = '';
} }
$createstdsubdomain = makeyesno('createstdsubdomain', '1', '0', (($result['standardsubdomain'] != '0') ? '1' : '0')); #$createstdsubdomain = makeyesno('createstdsubdomain', '1', '0', (($result['standardsubdomain'] != '0') ? '1' : '0'));
$phpenabled = makeyesno('phpenabled', '1', '0', $result['phpenabled']); #$phpenabled = makeyesno('phpenabled', '1', '0', $result['phpenabled']);
$perlenabled = makeyesno('perlenabled', '1', '0', $result['perlenabled']); #$perlenabled = makeyesno('perlenabled', '1', '0', $result['perlenabled']);
$deactivated = makeyesno('deactivated', '1', '0', $result['deactivated']); #$deactivated = makeyesno('deactivated', '1', '0', $result['deactivated']);
$email_imap = makeyesno('email_imap', '1', '0', $result['imap']); #$email_imap = makeyesno('email_imap', '1', '0', $result['imap']);
$email_pop3 = makeyesno('email_pop3', '1', '0', $result['pop3']); #$email_pop3 = makeyesno('email_pop3', '1', '0', $result['pop3']);
$backup_allowed = makeyesno('backup_allowed', '1', '0', $result['backup_allowed']);
$result = htmlentities_array($result); $result = htmlentities_array($result);
$gender_options = makeoption($lng['gender']['undef'], 0, ($result['gender'] == '0' ? true : false), true, true);
$gender_options .= makeoption($lng['gender']['male'], 1, ($result['gender'] == '1' ? true : false), true, true);
$gender_options .= makeoption($lng['gender']['female'], 2, ($result['gender'] == '2' ? true : false), true, true);
$customer_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_edit.php'; $customer_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/customer/formfield.customer_edit.php';
$customer_edit_form = htmlform::genHTMLForm($customer_edit_data); $customer_edit_form = htmlform::genHTMLForm($customer_edit_data);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -194,7 +194,12 @@ if($page == 'domains'
$log->logAction(ADM_ACTION, LOG_INFO, "deleted domain/subdomains (#" . $result['id'] . ")"); $log->logAction(ADM_ACTION, LOG_INFO, "deleted domain/subdomains (#" . $result['id'] . ")");
updateCounters(); updateCounters();
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
elseif ($alias_check['count'] > 0) { elseif ($alias_check['count'] > 0) {
@@ -227,10 +232,23 @@ if($page == 'domains'
$domain = $idna_convert->encode(preg_replace(Array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['domain'], 'domain'))); $domain = $idna_convert->encode(preg_replace(Array('/\:(\d)+$/', '/^https?\:\/\//'), '', validate($_POST['domain'], 'domain')));
$subcanemaildomain = intval($_POST['subcanemaildomain']); $subcanemaildomain = intval($_POST['subcanemaildomain']);
$isemaildomain = 0;
if(isset($_POST['isemaildomain']))
$isemaildomain = intval($_POST['isemaildomain']); $isemaildomain = intval($_POST['isemaildomain']);
$email_only = 0;
if(isset($_POST['email_only']))
$email_only = intval($_POST['email_only']); $email_only = intval($_POST['email_only']);
$wwwserveralias = 0;
if(isset($_POST['wwwserveralias']))
$wwwserveralias = intval($_POST['wwwserveralias']); $wwwserveralias = intval($_POST['wwwserveralias']);
$speciallogfile = 0;
if(isset($_POST['speciallogfile']))
$speciallogfile = intval($_POST['speciallogfile']); $speciallogfile = intval($_POST['speciallogfile']);
$aliasdomain = intval($_POST['alias']); $aliasdomain = intval($_POST['alias']);
$issubof = intval($_POST['issubof']); $issubof = intval($_POST['issubof']);
$customerid = intval($_POST['customerid']); $customerid = intval($_POST['customerid']);
@@ -260,7 +278,8 @@ if($page == 'domains'
} }
$documentroot = $customer['documentroot']; $documentroot = $customer['documentroot'];
$registration_date = validate($_POST['registration_date'], 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', '')); $registration_date = trim($_POST['registration_date']);
$registration_date = validate($registration_date, 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', ''));
if($userinfo['change_serversettings'] == '1') if($userinfo['change_serversettings'] == '1')
{ {
@@ -362,12 +381,15 @@ if($page == 'domains'
if($settings['system']['use_ssl'] == "1" if($settings['system']['use_ssl'] == "1"
&& isset($_POST['ssl']) && isset($_POST['ssl'])
&& isset($_POST['ssl_redirect']) /*&& isset($_POST['ssl_redirect'])*/
&& isset($_POST['ssl_ipandport']) && isset($_POST['ssl_ipandport'])
&& $_POST['ssl'] != '0') && $_POST['ssl'] != '0')
{ {
$ssl = (int)$_POST['ssl']; $ssl = (int)$_POST['ssl'];
$ssl_redirect = 0;
if (isset($_POST['ssl_redirect'])) {
$ssl_redirect = (int)$_POST['ssl_redirect']; $ssl_redirect = (int)$_POST['ssl_redirect'];
}
$ssl_ipandport = (int)$_POST['ssl_ipandport']; $ssl_ipandport = (int)$_POST['ssl_ipandport'];
$ssl_ipandport_check = $db->query_first("SELECT `id`, `ip`, `port` FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id` = '" . $db->escape($ssl_ipandport) . "' AND `ssl` = '1'" . $additional_ip_condition); $ssl_ipandport_check = $db->query_first("SELECT `id`, `ip`, `port` FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id` = '" . $db->escape($ssl_ipandport) . "' AND `ssl` = '1'" . $additional_ip_condition);
@@ -473,7 +495,8 @@ if($page == 'domains'
{ {
standard_error(array('stringisempty', 'mydomain')); standard_error(array('stringisempty', 'mydomain'));
} }
elseif(!validateDomain($domain)) /* Check whether domain validation is enabled and if, validate the domain */
elseif($settings['system']['validate_domain'] && !validateDomain($domain))
{ {
standard_error(array('stringiswrong', 'mydomain')); standard_error(array('stringiswrong', 'mydomain'));
} }
@@ -527,7 +550,7 @@ if($page == 'domains'
); );
$security_questions = array( $security_questions = array(
'reallydisablesecuritysetting' => (($openbasedir == '0' || $safemode == '0') && $userinfo['change_serversettings'] == '1'), 'reallydisablesecuritysetting' => ($openbasedir == '0' && $userinfo['change_serversettings'] == '1'),
'reallydocrootoutofcustomerroot' => (substr($documentroot, 0, strlen($customer['documentroot'])) != $customer['documentroot'] && !preg_match('/^https?\:\/\//', $documentroot)) 'reallydocrootoutofcustomerroot' => (substr($documentroot, 0, strlen($customer['documentroot'])) != $customer['documentroot'] && !preg_match('/^https?\:\/\//', $documentroot))
); );
$question_nr = 1; $question_nr = 1;
@@ -552,7 +575,12 @@ if($page == 'domains'
$db->query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `domains_used` = `domains_used` + 1 WHERE `adminid` = '" . (int)$adminid . "'"); $db->query("UPDATE `" . TABLE_PANEL_ADMINS . "` SET `domains_used` = `domains_used` + 1 WHERE `adminid` = '" . (int)$adminid . "'");
$log->logAction(ADM_ACTION, LOG_INFO, "added domain '" . $domain . "'"); $log->logAction(ADM_ACTION, LOG_INFO, "added domain '" . $domain . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
} }
@@ -655,18 +683,18 @@ if($page == 'domains'
$phpconfigs.= makeoption($row['description'], $row['id'], $settings['system']['mod_fcgid_defaultini'], true, true); $phpconfigs.= makeoption($row['description'], $row['id'], $settings['system']['mod_fcgid_defaultini'], true, true);
} }
$isbinddomain = makeyesno('isbinddomain', '1', '0', '1'); #$isbinddomain = makeyesno('isbinddomain', '1', '0', '1');
$isemaildomain = makeyesno('isemaildomain', '1', '0', '1'); #$isemaildomain = makeyesno('isemaildomain', '1', '0', '1');
$email_only = makeyesno('email_only', '1', '0', '0'); #$email_only = makeyesno('email_only', '1', '0', '0');
$subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['always'], '3', '0', true, true); $subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', '0', true, true) . makeoption($lng['admin']['subcanemaildomain']['always'], '3', '0', true, true);
$dkim = makeyesno('dkim', '1', '0', '1'); #$dkim = makeyesno('dkim', '1', '0', '1');
$wwwserveralias = makeyesno('wwwserveralias', '1', '0', '1'); #$wwwserveralias = makeyesno('wwwserveralias', '1', '0', '1');
$caneditdomain = makeyesno('caneditdomain', '1', '0', '1'); #$caneditdomain = makeyesno('caneditdomain', '1', '0', '1');
$openbasedir = makeyesno('openbasedir', '1', '0', '1'); #$openbasedir = makeyesno('openbasedir', '1', '0', '1');
$safemode = makeyesno('safemode', '1', '0', '1'); #$safemode = makeyesno('safemode', '1', '0', '1');
$speciallogfile = makeyesno('speciallogfile', '1', '0', '0'); #$speciallogfile = makeyesno('speciallogfile', '1', '0', '0');
$ssl = makeyesno('ssl', '1', '0', '0'); #$ssl = makeyesno('ssl', '1', '0', '0');
$ssl_redirect = makeyesno('ssl_redirect', '1', '0', '0'); #$ssl_redirect = makeyesno('ssl_redirect', '1', '0', '0');
$add_date = date('Y-m-d'); $add_date = date('Y-m-d');
$domain_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/domains/formfield.domains_add.php'; $domain_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/domains/formfield.domains_add.php';
@@ -764,12 +792,22 @@ if($page == 'domains'
$aliasdomain = intval($_POST['alias']); $aliasdomain = intval($_POST['alias']);
$issubof = intval($_POST['issubof']); $issubof = intval($_POST['issubof']);
$isemaildomain = intval($_POST['isemaildomain']);
$email_only = intval($_POST['email_only']);
$subcanemaildomain = intval($_POST['subcanemaildomain']); $subcanemaildomain = intval($_POST['subcanemaildomain']);
$caneditdomain = intval($_POST['caneditdomain']); $caneditdomain = intval($_POST['caneditdomain']);
$registration_date = trim($_POST['registration_date']);
$registration_date = validate($registration_date, 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', ''));
$isemaildomain = 0;
if(isset($_POST['isemaildomain']))
$isemaildomain = intval($_POST['isemaildomain']);
$email_only = 0;
if(isset($_POST['email_only']))
$email_only = intval($_POST['email_only']);
$wwwserveralias = 0;
if(isset($_POST['wwwserveralias']))
$wwwserveralias = intval($_POST['wwwserveralias']); $wwwserveralias = intval($_POST['wwwserveralias']);
$registration_date = validate($_POST['registration_date'], 'registration_date', '/^(19|20)\d\d[-](0[1-9]|1[012])[-](0[1-9]|[12][0-9]|3[01])$/', '', array('0000-00-00', '0', ''));
if($userinfo['change_serversettings'] == '1') if($userinfo['change_serversettings'] == '1')
{ {
@@ -867,12 +905,15 @@ if($page == 'domains'
if($settings['system']['use_ssl'] == "1" if($settings['system']['use_ssl'] == "1"
&& isset($_POST['ssl']) && isset($_POST['ssl'])
&& isset($_POST['ssl_redirect']) /*&& isset($_POST['ssl_redirect'])*/
&& isset($_POST['ssl_ipandport']) && isset($_POST['ssl_ipandport'])
&& $_POST['ssl'] != '0') && $_POST['ssl'] != '0')
{ {
$ssl = (int)$_POST['ssl']; $ssl = (int)$_POST['ssl'];
$ssl_redirect = 0;
if (isset($_POST['ssl_redirect'])) {
$ssl_redirect = (int)$_POST['ssl_redirect']; $ssl_redirect = (int)$_POST['ssl_redirect'];
}
$ssl_ipandport = (int)$_POST['ssl_ipandport']; $ssl_ipandport = (int)$_POST['ssl_ipandport'];
$ssl_ipandport_check = $db->query_first("SELECT `id`, `ip`, `port` FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id` = '" . $db->escape($ssl_ipandport) . "' AND `ssl` = '1'" . $additional_ip_condition); $ssl_ipandport_check = $db->query_first("SELECT `id`, `ip`, `port` FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id` = '" . $db->escape($ssl_ipandport) . "' AND `ssl` = '1'" . $additional_ip_condition);
@@ -992,7 +1033,7 @@ if($page == 'domains'
); );
$security_questions = array( $security_questions = array(
'reallydisablesecuritysetting' => (($openbasedir == '0' || $safemode == '0') && $userinfo['change_serversettings'] == '1'), 'reallydisablesecuritysetting' => ($openbasedir == '0' && $userinfo['change_serversettings'] == '1'),
'reallydocrootoutofcustomerroot' => (substr($documentroot, 0, strlen($customer['documentroot'])) != $customer['documentroot'] && !preg_match('/^https?\:\/\//', $documentroot)) 'reallydocrootoutofcustomerroot' => (substr($documentroot, 0, strlen($customer['documentroot'])) != $customer['documentroot'] && !preg_match('/^https?\:\/\//', $documentroot))
); );
foreach($security_questions as $question_name => $question_launch) foreach($security_questions as $question_name => $question_launch)
@@ -1023,7 +1064,8 @@ if($page == 'domains'
|| $mod_fcgid_maxrequests != $result['mod_fcgid_maxrequests'] || $mod_fcgid_maxrequests != $result['mod_fcgid_maxrequests']
|| $specialsettings != $result['specialsettings'] || $specialsettings != $result['specialsettings']
|| $aliasdomain != $result['aliasdomain'] || $aliasdomain != $result['aliasdomain']
|| $issubof != $result['ismainbutsubto']) || $issubof != $result['ismainbutsubto']
|| $email_only != $result['email_only'])
{ {
inserttask('1'); inserttask('1');
} }
@@ -1186,20 +1228,20 @@ if($page == 'domains'
} }
$result['specialsettings'] = $result['specialsettings']; $result['specialsettings'] = $result['specialsettings'];
$isbinddomain = makeyesno('isbinddomain', '1', '0', $result['isbinddomain']); #$isbinddomain = makeyesno('isbinddomain', '1', '0', $result['isbinddomain']);
$wwwserveralias = makeyesno('wwwserveralias', '1', '0', $result['wwwserveralias']); #$wwwserveralias = makeyesno('wwwserveralias', '1', '0', $result['wwwserveralias']);
$isemaildomain = makeyesno('isemaildomain', '1', '0', $result['isemaildomain']); #$isemaildomain = makeyesno('isemaildomain', '1', '0', $result['isemaildomain']);
$email_only = makeyesno('email_only', '1', '0', $result['email_only']); #$email_only = makeyesno('email_only', '1', '0', $result['email_only']);
$ssl = makeyesno('ssl', '1', '0', $result['ssl']); #$ssl = makeyesno('ssl', '1', '0', $result['ssl']);
$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']); #$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']);
$subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', $result['subcanemaildomain'], true, true); $subcanemaildomain = makeoption($lng['admin']['subcanemaildomain']['never'], '0', $result['subcanemaildomain'], true, true);
$subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', $result['subcanemaildomain'], true, true); $subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableno'], '1', $result['subcanemaildomain'], true, true);
$subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', $result['subcanemaildomain'], true, true); $subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['choosableyes'], '2', $result['subcanemaildomain'], true, true);
$subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['always'], '3', $result['subcanemaildomain'], true, true); $subcanemaildomain.= makeoption($lng['admin']['subcanemaildomain']['always'], '3', $result['subcanemaildomain'], true, true);
$dkim = makeyesno('dkim', '1', '0', $result['dkim']); #$dkim = makeyesno('dkim', '1', '0', $result['dkim']);
$caneditdomain = makeyesno('caneditdomain', '1', '0', $result['caneditdomain']); #$caneditdomain = makeyesno('caneditdomain', '1', '0', $result['caneditdomain']);
$openbasedir = makeyesno('openbasedir', '1', '0', $result['openbasedir']); #$openbasedir = makeyesno('openbasedir', '1', '0', $result['openbasedir']);
$safemode = makeyesno('safemode', '1', '0', $result['safemode']); #$safemode = makeyesno('safemode', '1', '0', $result['safemode']);
$speciallogfile = ($result['speciallogfile'] == 1 ? $lng['panel']['yes'] : $lng['panel']['no']); $speciallogfile = ($result['speciallogfile'] == 1 ? $lng['panel']['yes'] : $lng['panel']['no']);
$result['add_date'] = date('Y-m-d', $result['add_date']); $result['add_date'] = date('Y-m-d', $result['add_date']);
@@ -1211,7 +1253,7 @@ if($page == 'domains'
$phpconfigs.= makeoption($phpconfigs_row['description'], $phpconfigs_row['id'], $result['phpsettingid'], true, true); $phpconfigs.= makeoption($phpconfigs_row['description'], $phpconfigs_row['id'], $result['phpsettingid'], true, true);
} }
$specialsettingsforsubdomains = makeyesno('specialsettingsforsubdomains', '1', '0', '1'); #$specialsettingsforsubdomains = makeyesno('specialsettingsforsubdomains', '1', '0', '1');
$result = htmlentities_array($result); $result = htmlentities_array($result);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -104,7 +104,12 @@ if($page == 'ipsandports'
$db->query("DELETE FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id`='" . (int)$id . "'"); $db->query("DELETE FROM `" . TABLE_PANEL_IPSANDPORTS . "` WHERE `id`='" . (int)$id . "'");
$log->logAction(ADM_ACTION, LOG_WARNING, "deleted IP/port '" . $result['ip'] . ":" . $result['port'] . "'"); $log->logAction(ADM_ACTION, LOG_WARNING, "deleted IP/port '" . $result['ip'] . ":" . $result['port'] . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
else else
@@ -245,17 +250,22 @@ if($page == 'ipsandports'
$log->logAction(ADM_ACTION, LOG_WARNING, "added IP/port '" . $ip . ":" . $port . "'"); $log->logAction(ADM_ACTION, LOG_WARNING, "added IP/port '" . $ip . ":" . $port . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
} }
else else
{ {
$enable_ssl = makeyesno('ssl', '1', '0', '0'); #$enable_ssl = makeyesno('ssl', '1', '0', '0');
$listen_statement = makeyesno('listen_statement', '1', '0', '1'); #$listen_statement = makeyesno('listen_statement', '1', '0', '1');
$namevirtualhost_statement = makeyesno('namevirtualhost_statement', '1', '0', '1'); #$namevirtualhost_statement = makeyesno('namevirtualhost_statement', '1', '0', '1');
$vhostcontainer = makeyesno('vhostcontainer', '1', '0', '1'); #$vhostcontainer = makeyesno('vhostcontainer', '1', '0', '1');
$vhostcontainer_servername_statement = makeyesno('vhostcontainer_servername_statement', '1', '0', '1'); #$vhostcontainer_servername_statement = makeyesno('vhostcontainer_servername_statement', '1', '0', '1');
$ipsandports_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/ipsandports/formfield.ipsandports_add.php'; $ipsandports_add_data = include_once dirname(__FILE__).'/lib/formfields/admin/ipsandports/formfield.ipsandports_add.php';
$ipsandports_add_form = htmlform::genHTMLForm($ipsandports_add_data); $ipsandports_add_form = htmlform::genHTMLForm($ipsandports_add_data);
@@ -391,18 +401,23 @@ if($page == 'ipsandports'
$log->logAction(ADM_ACTION, LOG_WARNING, "changed IP/port from '" . $result['ip'] . ":" . $result['port'] . "' to '" . $ip . ":" . $port . "'"); $log->logAction(ADM_ACTION, LOG_WARNING, "changed IP/port from '" . $result['ip'] . ":" . $result['port'] . "' to '" . $ip . ":" . $port . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
} }
else else
{ {
$enable_ssl = makeyesno('ssl', '1', '0', $result['ssl']); #$enable_ssl = makeyesno('ssl', '1', '0', $result['ssl']);
$result = htmlentities_array($result); $result = htmlentities_array($result);
$listen_statement = makeyesno('listen_statement', '1', '0', $result['listen_statement']); #$listen_statement = makeyesno('listen_statement', '1', '0', $result['listen_statement']);
$namevirtualhost_statement = makeyesno('namevirtualhost_statement', '1', '0', $result['namevirtualhost_statement']); #$namevirtualhost_statement = makeyesno('namevirtualhost_statement', '1', '0', $result['namevirtualhost_statement']);
$vhostcontainer = makeyesno('vhostcontainer', '1', '0', $result['vhostcontainer']); #$vhostcontainer = makeyesno('vhostcontainer', '1', '0', $result['vhostcontainer']);
$vhostcontainer_servername_statement = makeyesno('vhostcontainer_servername_statement', '1', '0', $result['vhostcontainer_servername_statement']); #$vhostcontainer_servername_statement = makeyesno('vhostcontainer_servername_statement', '1', '0', $result['vhostcontainer_servername_statement']);
$ipsandports_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/ipsandports/formfield.ipsandports_edit.php'; $ipsandports_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/ipsandports/formfield.ipsandports_edit.php';
$ipsandports_edit_form = htmlform::genHTMLForm($ipsandports_edit_data); $ipsandports_edit_form = htmlform::genHTMLForm($ipsandports_edit_data);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -65,6 +65,11 @@ if(($page == 'settings' || $page == 'overview')
$only_enabledisable = true; $only_enabledisable = true;
} }
// check if the session timeout is too low #815
if (isset($_POST['session_sessiontimeout']) && $_POST['session_sessiontimeout'] <= 60) {
standard_error($lng['error']['session_timeout'], $lng['error']['session_timeout_desc']);
}
if(processFormEx( if(processFormEx(
$settings_data, $settings_data,
$_POST, $_POST,
@@ -77,8 +82,14 @@ if(($page == 'settings' || $page == 'overview')
) { ) {
$log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles due to changed setting"); $log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles due to changed setting");
inserttask('1'); inserttask('1');
inserttask('4');
inserttask('5'); inserttask('5');
inserttask('9');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4');
}
standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page)); standard_success('settingssaved', '', array('filename' => $filename, 'action' => $action, 'page' => $page));
} }
} }
@@ -117,8 +128,15 @@ elseif($page == 'rebuildconfigs'
{ {
$log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles"); $log->logAction(ADM_ACTION, LOG_INFO, "rebuild configfiles");
inserttask('1'); inserttask('1');
inserttask('4');
inserttask('5'); inserttask('5');
inserttask('9');
inserttask('10');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4');
}
standard_success('rebuildingconfigs', '', array('filename' => 'admin_index.php')); standard_success('rebuildingconfigs', '', array('filename' => 'admin_index.php'));
} }
else else

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');
@@ -111,7 +111,7 @@ if($page == 'tickets'
} else { } else {
$customer = $lng['ticket']['nonexistingcustomer']; $customer = $lng['ticket']['nonexistingcustomer'];
} }
eval("\$tickets.=\"" . getTemplate("ticket/tickets_customer") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/tickets_customer") . "\";");
} }
$tickets_count++; $tickets_count++;
@@ -146,7 +146,7 @@ if($page == 'tickets'
$row['subject'] = substr($row['subject'], 0, 17) . '...'; $row['subject'] = substr($row['subject'], 0, 17) . '...';
} }
eval("\$tickets.=\"" . getTemplate("ticket/tickets_tickets") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/tickets_tickets") . "\";");
$count++; $count++;
$_cid = $row['customerid']; $_cid = $row['customerid'];
} }
@@ -155,7 +155,7 @@ if($page == 'tickets'
$i++; $i++;
} }
eval("echo \"" . getTemplate("ticket/tickets") . "\";"); eval("echo \"" . getTemplate("tickets/tickets") . "\";");
} }
elseif($action == 'new') elseif($action == 'new')
{ {
@@ -170,7 +170,7 @@ if($page == 'tickets'
$newticket->Set('priority', validate($_POST['priority'], 'priority'), true, false); $newticket->Set('priority', validate($_POST['priority'], 'priority'), true, false);
$newticket->Set('category', validate($_POST['category'], 'category'), true, false); $newticket->Set('category', validate($_POST['category'], 'category'), true, false);
$newticket->Set('customer', (int)$_POST['customer'], true, false); $newticket->Set('customer', (int)$_POST['customer'], true, false);
$newticket->Set('message', validate(str_replace("\r\n", "\n", $_POST['message']), 'message', '/^[^\0]*$/'), true, false); $newticket->Set('message', validate(htmlentities(str_replace("\r\n", "\n", $_POST['message'])), 'message', '/^[^\0]*$/'), true, false);
if($newticket->Get('subject') == null) if($newticket->Get('subject') == null)
{ {
@@ -224,17 +224,17 @@ if($page == 'tickets'
$customers.= makeoption(getCorrectFullUserDetails($row_customer) . ' (' . $row_customer['loginname'] . ')', $row_customer['customerid']); $customers.= makeoption(getCorrectFullUserDetails($row_customer) . ' (' . $row_customer['loginname'] . ')', $row_customer['customerid']);
} }
$priorities = makeoption($lng['ticket']['unf_high'], '1', $settings['ticket']['default_priority']); $priorities = makeoption($lng['ticket']['high'], '1', $settings['ticket']['default_priority']);
$priorities.= makeoption($lng['ticket']['unf_normal'], '2', $settings['ticket']['default_priority']); $priorities.= makeoption($lng['ticket']['normal'], '2', $settings['ticket']['default_priority']);
$priorities.= makeoption($lng['ticket']['unf_low'], '3', $settings['ticket']['default_priority']); $priorities.= makeoption($lng['ticket']['low'], '3', $settings['ticket']['default_priority']);
$ticket_new_data = include_once dirname(__FILE__).'/lib/formfields/admin/ticket/formfield.ticket_new.php'; $ticket_new_data = include_once dirname(__FILE__).'/lib/formfields/admin/tickets/formfield.ticket_new.php';
$ticket_new_form = htmlform::genHTMLForm($ticket_new_data); $ticket_new_form = htmlform::genHTMLForm($ticket_new_data);
$title = $ticket_new_data['ticket_new']['title']; $title = $ticket_new_data['ticket_new']['title'];
$image = $ticket_new_data['ticket_new']['image']; $image = $ticket_new_data['ticket_new']['image'];
eval("echo \"" . getTemplate("ticket/tickets_new") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_new") . "\";");
} }
} }
else else
@@ -251,7 +251,7 @@ if($page == 'tickets'
$replyticket = ticket::getInstanceOf($userinfo, $db, $settings, -1); $replyticket = ticket::getInstanceOf($userinfo, $db, $settings, -1);
$replyticket->Set('subject', validate($_POST['subject'], 'subject'), true, false); $replyticket->Set('subject', validate($_POST['subject'], 'subject'), true, false);
$replyticket->Set('priority', validate($_POST['priority'], 'priority'), true, false); $replyticket->Set('priority', validate($_POST['priority'], 'priority'), true, false);
$replyticket->Set('message', validate(str_replace("\r\n", "\n", $_POST['message']), 'message', '/^[^\0]*$/'), true, false); $replyticket->Set('message', validate(htmlentities(str_replace("\r\n", "\n", $_POST['message'])), 'message', '/^[^\0]*$/'), true, false);
if($replyticket->Get('message') == null) if($replyticket->Get('message') == null)
{ {
@@ -313,7 +313,7 @@ if($page == 'tickets'
$subject = $mainticket->Get('subject'); $subject = $mainticket->Get('subject');
$message = $mainticket->Get('message'); $message = $mainticket->Get('message');
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_main") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_main") . "\";");
$result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` $result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '`
WHERE `id`="' . (int)$mainticket->Get('category') . '"'); WHERE `id`="' . (int)$mainticket->Get('category') . '"');
$row = $db->fetch_array($result); $row = $db->fetch_array($result);
@@ -335,7 +335,7 @@ if($page == 'tickets'
$subject = $subticket->Get('subject'); $subject = $subticket->Get('subject');
$message = $subticket->Get('message'); $message = $subticket->Get('message');
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_list") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_list") . "\";");
} }
$priorities = makeoption($lng['ticket']['high'], '1', $mainticket->Get('priority'), true, true); $priorities = makeoption($lng['ticket']['high'], '1', $mainticket->Get('priority'), true, true);
@@ -345,13 +345,13 @@ if($page == 'tickets'
$ticket_replies_count = $db->num_rows($andere) + 1; $ticket_replies_count = $db->num_rows($andere) + 1;
// don't forget the main-ticket! // don't forget the main-ticket!
$ticket_reply_data = include_once dirname(__FILE__).'/lib/formfields/admin/ticket/formfield.ticket_reply.php'; $ticket_reply_data = include_once dirname(__FILE__).'/lib/formfields/admin/tickets/formfield.ticket_reply.php';
$ticket_reply_form = htmlform::genHTMLForm($ticket_reply_data); $ticket_reply_form = htmlform::genHTMLForm($ticket_reply_data);
$title = $ticket_reply_data['ticket_reply']['title']; $title = $ticket_reply_data['ticket_reply']['title'];
$image = $ticket_reply_data['ticket_reply']['image']; $image = $ticket_reply_data['ticket_reply']['image'];
eval("echo \"" . getTemplate("ticket/tickets_reply") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_reply") . "\";");
} }
} }
elseif($action == 'close' elseif($action == 'close'
@@ -466,14 +466,14 @@ elseif($page == 'categories'
{ {
$row = htmlentities_array($row); $row = htmlentities_array($row);
$closedtickets_count = ($row['ticketcount'] - $row['ticketcountnotclosed']); $closedtickets_count = ($row['ticketcount'] - $row['ticketcountnotclosed']);
eval("\$ticketcategories.=\"" . getTemplate("ticket/tickets_categories") . "\";"); eval("\$ticketcategories.=\"" . getTemplate("tickets/tickets_categories") . "\";");
$count++; $count++;
} }
$i++; $i++;
} }
eval("echo \"" . getTemplate("ticket/categories") . "\";"); eval("echo \"" . getTemplate("tickets/categories") . "\";");
} }
elseif($action == 'addcategory') elseif($action == 'addcategory')
{ {
@@ -504,13 +504,13 @@ elseif($page == 'categories'
{ {
$order = ticket::getHighestOrderNumber($db) + 1; $order = ticket::getHighestOrderNumber($db) + 1;
$category_new_data = include_once dirname(__FILE__).'/lib/formfields/admin/ticket/formfield.category_new.php'; $category_new_data = include_once dirname(__FILE__).'/lib/formfields/admin/tickets/formfield.category_new.php';
$category_new_form = htmlform::genHTMLForm($category_new_data); $category_new_form = htmlform::genHTMLForm($category_new_data);
$title = $category_new_data['category_new']['title']; $title = $category_new_data['category_new']['title'];
$image = $category_new_data['category_new']['image']; $image = $category_new_data['category_new']['image'];
eval("echo \"" . getTemplate("ticket/tickets_newcategory") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_newcategory") . "\";");
} }
} }
elseif($action == 'editcategory' elseif($action == 'editcategory'
@@ -542,13 +542,13 @@ elseif($page == 'categories'
{ {
$row = $db->query_first('SELECT * FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `id` = "' . (int)$id . '"'); $row = $db->query_first('SELECT * FROM `' . TABLE_PANEL_TICKET_CATS . '` WHERE `id` = "' . (int)$id . '"');
$category_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/ticket/formfield.category_edit.php'; $category_edit_data = include_once dirname(__FILE__).'/lib/formfields/admin/tickets/formfield.category_edit.php';
$category_edit_form = htmlform::genHTMLForm($category_edit_data); $category_edit_form = htmlform::genHTMLForm($category_edit_data);
$title = $category_edit_data['category_edit']['title']; $title = $category_edit_data['category_edit']['title'];
$image = $category_edit_data['category_edit']['image']; $image = $category_edit_data['category_edit']['image'];
eval("echo \"" . getTemplate("ticket/tickets_editcategory") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_editcategory") . "\";");
} }
} }
elseif($action == 'deletecategory' elseif($action == 'deletecategory'
@@ -597,8 +597,7 @@ elseif($page == 'archive'
{ {
$categories[$x] = isset($_POST['category' . $x]) ? $_POST['category' . $x] : ''; $categories[$x] = isset($_POST['category' . $x]) ? $_POST['category' . $x] : '';
} }
$query = ticket::getArchiveSearchStatement($db, $subject, $priority, $fromdate, $todate, $message, $customer, $userinfo['adminid'], $categories);
$query = ticket::getArchiveSearchStatement($subject, $priority, $fromdate, $todate, $message, $customer, $userinfo['adminid'], $categories);
$fields = array( $fields = array(
'lastchange' => $lng['ticket']['lastchange'], 'lastchange' => $lng['ticket']['lastchange'],
'ticket_answers' => $lng['ticket']['ticket_answers'], 'ticket_answers' => $lng['ticket']['ticket_answers'],
@@ -656,7 +655,6 @@ elseif($page == 'archive'
{ {
if($paging->checkDisplay($i)) if($paging->checkDisplay($i))
{ {
$ticket = htmlentities_array($ticket);
$ticket['lastchange'] = date("d.m.y H:i", $ticket['lastchange']); $ticket['lastchange'] = date("d.m.y H:i", $ticket['lastchange']);
if($_cid != $ticket['customerid']) if($_cid != $ticket['customerid'])
@@ -671,10 +669,20 @@ elseif($page == 'archive'
$customer = $lng['ticket']['nonexistingcustomer']; $customer = $lng['ticket']['nonexistingcustomer'];
} }
eval("\$tickets.=\"" . getTemplate("ticket/tickets_customer") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/tickets_customer") . "\";");
} }
$tickets_count++; $tickets_count++;
switch ($ticket['priority'])
{
case 1: $ticket['display'] = 'high';
break;
case 2: $ticket['display'] = 'normal';
break;
case 3: $ticket['display'] = 'low';
break;
default: $ticket['display'] = 'unknown';
}
$ticket['priority'] = ticket::getPriorityText($lng, $ticket['priority']); $ticket['priority'] = ticket::getPriorityText($lng, $ticket['priority']);
if($ticket['lastreplier'] == '1') if($ticket['lastreplier'] == '1')
@@ -690,8 +698,8 @@ elseif($page == 'archive'
{ {
$ticket['subject'] = substr($ticket['subject'], 0, 17) . '...'; $ticket['subject'] = substr($ticket['subject'], 0, 17) . '...';
} }
$ticket = htmlentities_array($ticket);
eval("\$tickets.=\"" . getTemplate("ticket/archived_tickets") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/archived_tickets") . "\";");
$count++; $count++;
$_cid = $ticket['customerid']; $_cid = $ticket['customerid'];
} }
@@ -700,7 +708,7 @@ elseif($page == 'archive'
$i++; $i++;
} }
eval("echo \"" . getTemplate("ticket/archivesearch") . "\";"); eval("echo \"" . getTemplate("tickets/archivesearch") . "\";");
} }
else else
{ {
@@ -729,13 +737,13 @@ elseif($page == 'archive'
$ticket['subject'] = substr($ticket['subject'], 0, 17) . '...'; $ticket['subject'] = substr($ticket['subject'], 0, 17) . '...';
} }
eval("\$tickets.=\"" . getTemplate("ticket/archived_tickets") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/archived_tickets") . "\";");
} }
} }
$priorities_options = makecheckbox('priority1', $lng['ticket']['unf_high'], '1'); $priorities_options = makecheckbox('priority1', $lng['ticket']['high'], '1');
$priorities_options.= makecheckbox('priority2', $lng['ticket']['unf_normal'], '2'); $priorities_options.= makecheckbox('priority2', $lng['ticket']['normal'], '2');
$priorities_options.= makecheckbox('priority3', $lng['ticket']['unf_low'], '3'); $priorities_options.= makecheckbox('priority3', $lng['ticket']['low'], '3');
$category_options = ''; $category_options = '';
$ccount = 0; $ccount = 0;
$result = $db->query('SELECT * FROM `' . TABLE_PANEL_TICKET_CATS . '` ORDER BY `name` ASC'); $result = $db->query('SELECT * FROM `' . TABLE_PANEL_TICKET_CATS . '` ORDER BY `name` ASC');
@@ -754,7 +762,7 @@ elseif($page == 'archive'
$customers.= makeoption(getCorrectFullUserDetails($row_customer) . ' (' . $row_customer['loginname'] . ')', $row_customer['customerid']); $customers.= makeoption(getCorrectFullUserDetails($row_customer) . ' (' . $row_customer['loginname'] . ')', $row_customer['customerid']);
} }
eval("echo \"" . getTemplate("ticket/archive") . "\";"); eval("echo \"" . getTemplate("tickets/archive") . "\";");
} }
} }
elseif($action == 'view' elseif($action == 'view'
@@ -777,9 +785,9 @@ elseif($page == 'archive'
$by = $lng['ticket']['customer']; $by = $lng['ticket']['customer'];
} }
$subject = $mainticket->Get('subject'); $subject = htmlentities($mainticket->Get('subject'));
$message = $mainticket->Get('message'); $message = htmlentities($mainticket->Get('message'));
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_main") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_main") . "\";");
$result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` $result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '`
WHERE `id`="' . (int)$mainticket->Get('category') . '"'); WHERE `id`="' . (int)$mainticket->Get('category') . '"');
$row = $db->fetch_array($result); $row = $db->fetch_array($result);
@@ -799,20 +807,20 @@ elseif($page == 'archive'
$by = $lng['ticket']['customer']; $by = $lng['ticket']['customer'];
} }
$subject = $subticket->Get('subject'); $subject = htmlentities($subticket->Get('subject'));
$message = $subticket->Get('message'); $message = htmlentities($subticket->Get('message'));
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_list") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_list") . "\";");
} }
$priorities = makeoption($lng['ticket']['high'], '1', $mainticket->Get('priority'), true, true); $priorities = makeoption($lng['ticket']['high'], '1', htmlentities($mainticket->Get('priority')), true, true);
$priorities.= makeoption($lng['ticket']['normal'], '2', $mainticket->Get('priority'), true, true); $priorities.= makeoption($lng['ticket']['normal'], '2', htmlentities($mainticket->Get('priority')), true, true);
$priorities.= makeoption($lng['ticket']['low'], '3', $mainticket->Get('priority'), true, true); $priorities.= makeoption($lng['ticket']['low'], '3', htmlentities($mainticket->Get('priority')), true, true);
$subject = $mainticket->Get('subject'); $subject = htmlentities($mainticket->Get('subject'));
$ticket_replies_count = $db->num_rows($andere) + 1; $ticket_replies_count = $db->num_rows($andere) + 1;
// don't forget the main-ticket! // don't forget the main-ticket!
eval("echo \"" . getTemplate("ticket/tickets_view") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_view") . "\";");
} }
elseif($action == 'delete' elseif($action == 'delete'
&& $id != 0) && $id != 0)

148
admin_traffic.php Normal file
View File

@@ -0,0 +1,148 @@
<?php
/**
* This file is part of the Froxlor project.
* Copyright (c) 2003-2009 the SysCP Team (see authors).
* Copyright (c) 2010 the Froxlor Team (see authors).
*
* For the full copyright and license information, please view the COPYING
* file that was distributed with this source code. You can also view the
* COPYING file online at http://files.froxlor.org/misc/COPYING.txt
*
* @copyright (c) the authors
* @author Morton Jonuschat <m.jonuschat@chrome-it.de>
* @license GPLv2 http://files.syscp.org/misc/COPYING.txt
* @package Panel
*
*/
define('AREA', 'admin');
/**
* Include our init.php, which manages Sessions, Language etc.
*/
require ("./lib/init.php");
if($action == 'logout')
{
$db->query("DELETE FROM `" . TABLE_PANEL_SESSIONS . "` WHERE `userid` = '" . (int)$userinfo['adminid'] . "' AND `adminsession` = '1'");
redirectTo('index.php');
exit;
}
if(isset($_POST['id']))
{
$id = intval($_POST['id']);
}
elseif(isset($_GET['id']))
{
$id = intval($_GET['id']);
}
$months = array(
'0' => 'empty',
'1' => 'jan',
'2' => 'feb',
'3' => 'mar',
'4' => 'apr',
'5' => 'may',
'6' => 'jun',
'7' => 'jul',
'8' => 'aug',
'9' => 'sep',
'10' => 'oct',
'11' => 'nov',
'12' => 'dec',
);
if($page == 'overview' || $page == 'customers')
{
if($action == 'su' && $id != 0)
{
$result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$id . "' " . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . (int)$userinfo['adminid'] . "' "));
if($result['loginname'] != '')
{
$result = $db->query_first("SELECT * FROM `" . TABLE_PANEL_SESSIONS . "` WHERE `userid`='" . (int)$userinfo['userid'] . "'");
$s = md5(uniqid(microtime(), 1));
$db->query("INSERT INTO `" . TABLE_PANEL_SESSIONS . "` (`hash`, `userid`, `ipaddress`, `useragent`, `lastactivity`, `language`, `adminsession`) VALUES ('" . $db->escape($s) . "', '" . (int)$id . "', '" . $db->escape($result['ipaddress']) . "', '" . $db->escape($result['useragent']) . "', '" . time() . "', '" . $db->escape($result['language']) . "', '0')");
redirectTo('customer_traffic.php', Array(
's' => $s
));
}
else
{
redirectTo('index.php', Array(
'action' => 'login'
));
}
}
$customerview = 1;
$stats_tables = '';
$minyear = $db->query_first("SELECT `year` FROM `". TABLE_PANEL_TRAFFIC . "` ORDER BY `year` ASC LIMIT 1");
if (!isset($minyear['year']) || $minyear['year'] == 0)
{
$maxyears = 0;
}
else
{
$maxyears = date("Y") - $minyear['year'];
}
for($years = 0; $years<=$maxyears; $years++) {
$overview['year'] = date("Y")-$years;
$overview['type'] = $lng['traffic']['customer'];
$domain_list = '';
$customer_name_list = $db->query("SELECT `customerid`,`company`,`name`,`firstname` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `deactivated`='0'" . ($userinfo['customers_see_all'] ? '' : " AND `adminid` = '" . (int)$userinfo['adminid'] . "' ") . " ORDER BY name");
$totals = array(
'jan' => 0,
'feb' => 0,
'mar' => 0,
'apr' => 0,
'may' => 0,
'jun' => 0,
'jul' => 0,
'aug' => 0,
'sep' => 0,
'oct' => 0,
'nov' => 0,
'dec' => 0,
);
while($customer_name = $db->fetch_array($customer_name_list)) {
$virtual_host = array(
'name' => ($customer_name['company'] == '' ? $customer_name['name'] . ", " . $customer_name['firstname'] : $customer_name['company']),
'customerid' => $customer_name['customerid'],
'jan' => '-',
'feb' => '-',
'mar' => '-',
'apr' => '-',
'may' => '-',
'jun' => '-',
'jul' => '-',
'aug' => '-',
'sep' => '-',
'oct' => '-',
'nov' => '-',
'dec' => '-',
);
$traffic_list = $db->query("SELECT month, SUM(http+ftp_up+ftp_down+mail)*1024 AS traffic FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE year = " . (date("Y")-$years) . " AND `customerid` = '" . $customer_name['customerid'] . "' GROUP BY month ORDER BY month");
while($traffic_month = $db->fetch_array($traffic_list)) {
$virtual_host[$months[(int)$traffic_month['month']]] = size_readable($traffic_month['traffic'], 'GiB', 'bi', '%01.3f %s');
$totals[$months[(int)$traffic_month['month']]] += $traffic_month['traffic'];
}
eval("\$domain_list .= sprintf(\"%s\", \"" . getTemplate("traffic/index_table_row") . "\");");
}
// sum up totals
$virtual_host = array(
'name' => $lng['traffic']['months']['total'],
);
foreach($totals as $month => $bytes) {
$virtual_host[$month] = ($bytes == 0 ? '-' : size_readable($bytes, 'GiB', 'bi', '%01.3f %s'));
}
$customerview = 0;
eval("\$total_list = sprintf(\"%s\", \"" . getTemplate("traffic/index_table_row") . "\");");
eval("\$stats_tables .= sprintf(\"%s\", \"" . getTemplate("traffic/index_table") . "\");");
}
eval("echo \"" . getTemplate("traffic/index") . "\";");
}

View File

@@ -12,7 +12,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'admin'); define('AREA', 'admin');

1
cache/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
*

0
cache/.keep vendored Normal file
View File

226
css/jquery.jqplot.css Normal file
View File

@@ -0,0 +1,226 @@
/*rules for the plot target div. These will be cascaded down to all plot elements according to css rules*/
.jqplot-target {
position: relative;
color: #666666;
font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
font-size: 1em;
/* height: 300px;
width: 400px;*/
}
/*rules applied to all axes*/
.jqplot-axis {
font-size: 0.75em;
}
.jqplot-xaxis {
margin-top: 10px;
}
.jqplot-x2axis {
margin-bottom: 10px;
}
.jqplot-yaxis {
margin-right: 10px;
}
.jqplot-y2axis, .jqplot-y3axis, .jqplot-y4axis, .jqplot-y5axis, .jqplot-y6axis, .jqplot-y7axis, .jqplot-y8axis, .jqplot-y9axis {
margin-left: 10px;
margin-right: 10px;
}
/*rules applied to all axis tick divs*/
.jqplot-axis-tick, .jqplot-xaxis-tick, .jqplot-yaxis-tick, .jqplot-x2axis-tick, .jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick {
position: absolute;
}
.jqplot-xaxis-tick {
top: 0px;
/* initial position untill tick is drawn in proper place */
left: 15px;
/* padding-top: 10px;*/
vertical-align: top;
}
.jqplot-x2axis-tick {
bottom: 0px;
/* initial position untill tick is drawn in proper place */
left: 15px;
/* padding-bottom: 10px;*/
vertical-align: bottom;
}
.jqplot-yaxis-tick {
right: 0px;
/* initial position untill tick is drawn in proper place */
top: 15px;
/* padding-right: 10px;*/
text-align: right;
}
.jqplot-yaxis-tick.jqplot-breakTick {
right: -20px;
margin-right: 0px;
padding:1px 5px 1px 5px;
/* background-color: white;*/
z-index: 2;
font-size: 1.5em;
}
.jqplot-y2axis-tick, .jqplot-y3axis-tick, .jqplot-y4axis-tick, .jqplot-y5axis-tick, .jqplot-y6axis-tick, .jqplot-y7axis-tick, .jqplot-y8axis-tick, .jqplot-y9axis-tick {
left: 0px;
/* initial position untill tick is drawn in proper place */
top: 15px;
/* padding-left: 10px;*/
/* padding-right: 15px;*/
text-align: left;
}
.jqplot-meterGauge-tick {
font-size: 0.75em;
color: #999999;
}
.jqplot-meterGauge-label {
font-size: 1em;
color: #999999;
}
.jqplot-xaxis-label {
margin-top: 10px;
font-size: 11pt;
position: absolute;
}
.jqplot-x2axis-label {
margin-bottom: 10px;
font-size: 11pt;
position: absolute;
}
.jqplot-yaxis-label {
margin-right: 10px;
/* text-align: center;*/
font-size: 11pt;
position: absolute;
}
.jqplot-y2axis-label, .jqplot-y3axis-label, .jqplot-y4axis-label, .jqplot-y5axis-label, .jqplot-y6axis-label, .jqplot-y7axis-label, .jqplot-y8axis-label, .jqplot-y9axis-label {
/* text-align: center;*/
font-size: 11pt;
position: absolute;
}
table.jqplot-table-legend {
margin-top: 12px;
margin-bottom: 12px;
margin-left: 12px;
margin-right: 12px;
}
table.jqplot-table-legend, table.jqplot-cursor-legend {
background-color: rgba(255,255,255,0.6);
border: 1px solid #cccccc;
position: absolute;
font-size: 0.75em;
}
td.jqplot-table-legend {
vertical-align:middle;
}
td.jqplot-seriesToggle:hover, td.jqplot-seriesToggle:active {
cursor: pointer;
}
td.jqplot-table-legend > div {
border: 1px solid #cccccc;
padding:1px;
}
div.jqplot-table-legend-swatch {
width:0px;
height:0px;
border-top-width: 5px;
border-bottom-width: 5px;
border-left-width: 6px;
border-right-width: 6px;
border-top-style: solid;
border-bottom-style: solid;
border-left-style: solid;
border-right-style: solid;
}
.jqplot-title {
top: 0px;
left: 0px;
padding-bottom: 0.5em;
font-size: 1.2em;
}
table.jqplot-cursor-tooltip {
border: 1px solid #cccccc;
font-size: 0.75em;
}
.jqplot-cursor-tooltip {
border: 1px solid #cccccc;
font-size: 0.75em;
white-space: nowrap;
background: rgba(208,208,208,0.5);
padding: 1px;
}
.jqplot-highlighter-tooltip {
border: 1px solid #cccccc;
font-size: 0.75em;
white-space: nowrap;
background: rgba(208,208,208,0.5);
padding: 1px;
}
.jqplot-point-label {
font-size: 0.75em;
z-index: 2;
}
td.jqplot-cursor-legend-swatch {
vertical-align:middle;
text-align:center;
}
div.jqplot-cursor-legend-swatch {
width:1.2em;
height:0.7em;
}
.jqplot-error {
/* Styles added to the plot target container when there is an error go here.*/
text-align: center;
}
.jqplot-error-message {
/* Styling of the custom error message div goes here.*/
position: relative;
top: 46%;
display: inline-block;
}
div.jqplot-bubble-label {
font-size: 0.8em;
/* background: rgba(90%, 90%, 90%, 0.15);*/
padding-left: 2px;
padding-right: 2px;
color: rgb(20%, 20%, 20%);
}
div.jqplot-bubble-label.jqplot-bubble-label-highlight {
background: rgba(90%, 90%, 90%, 0.7);
}
div.jqplot-noData-container {
text-align: center;
background-color: rgba(96%, 96%, 96%, 0.3);
}

1
css/jquery.jqplot.min.css vendored Normal file
View File

@@ -0,0 +1 @@
.jqplot-target{position:relative;color:#666;font-family:"Trebuchet MS",Arial,Helvetica,sans-serif;font-size:1em;}.jqplot-axis{font-size:.75em;}.jqplot-xaxis{margin-top:10px;}.jqplot-x2axis{margin-bottom:10px;}.jqplot-yaxis{margin-right:10px;}.jqplot-y2axis,.jqplot-y3axis,.jqplot-y4axis,.jqplot-y5axis,.jqplot-y6axis,.jqplot-y7axis,.jqplot-y8axis,.jqplot-y9axis{margin-left:10px;margin-right:10px;}.jqplot-axis-tick,.jqplot-xaxis-tick,.jqplot-yaxis-tick,.jqplot-x2axis-tick,.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{position:absolute;}.jqplot-xaxis-tick{top:0;left:15px;vertical-align:top;}.jqplot-x2axis-tick{bottom:0;left:15px;vertical-align:bottom;}.jqplot-yaxis-tick{right:0;top:15px;text-align:right;}.jqplot-yaxis-tick.jqplot-breakTick{right:-20px;margin-right:0;padding:1px 5px 1px 5px;z-index:2;font-size:1.5em;}.jqplot-y2axis-tick,.jqplot-y3axis-tick,.jqplot-y4axis-tick,.jqplot-y5axis-tick,.jqplot-y6axis-tick,.jqplot-y7axis-tick,.jqplot-y8axis-tick,.jqplot-y9axis-tick{left:0;top:15px;text-align:left;}.jqplot-meterGauge-tick{font-size:.75em;color:#999;}.jqplot-meterGauge-label{font-size:1em;color:#999;}.jqplot-xaxis-label{margin-top:10px;font-size:11pt;position:absolute;}.jqplot-x2axis-label{margin-bottom:10px;font-size:11pt;position:absolute;}.jqplot-yaxis-label{margin-right:10px;font-size:11pt;position:absolute;}.jqplot-y2axis-label,.jqplot-y3axis-label,.jqplot-y4axis-label,.jqplot-y5axis-label,.jqplot-y6axis-label,.jqplot-y7axis-label,.jqplot-y8axis-label,.jqplot-y9axis-label{font-size:11pt;position:absolute;}table.jqplot-table-legend{margin-top:12px;margin-bottom:12px;margin-left:12px;margin-right:12px;}table.jqplot-table-legend,table.jqplot-cursor-legend{background-color:rgba(255,255,255,0.6);border:1px solid #ccc;position:absolute;font-size:.75em;}td.jqplot-table-legend{vertical-align:middle;}td.jqplot-seriesToggle:hover,td.jqplot-seriesToggle:active{cursor:pointer;}td.jqplot-table-legend>div{border:1px solid #ccc;padding:1px;}div.jqplot-table-legend-swatch{width:0;height:0;border-top-width:5px;border-bottom-width:5px;border-left-width:6px;border-right-width:6px;border-top-style:solid;border-bottom-style:solid;border-left-style:solid;border-right-style:solid;}.jqplot-title{top:0;left:0;padding-bottom:.5em;font-size:1.2em;}table.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em;}.jqplot-cursor-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,0.5);padding:1px;}.jqplot-highlighter-tooltip{border:1px solid #ccc;font-size:.75em;white-space:nowrap;background:rgba(208,208,208,0.5);padding:1px;}.jqplot-point-label{font-size:.75em;z-index:2;}td.jqplot-cursor-legend-swatch{vertical-align:middle;text-align:center;}div.jqplot-cursor-legend-swatch{width:1.2em;height:.7em;}.jqplot-error{text-align:center;}.jqplot-error-message{position:relative;top:46%;display:inline-block;}div.jqplot-bubble-label{font-size:.8em;padding-left:2px;padding-right:2px;color:rgb(20%,20%,20%);}div.jqplot-bubble-label.jqplot-bubble-label-highlight{background:rgba(90%,90%,90%,0.7);}div.jqplot-noData-container{text-align:center;background-color:rgba(96%,96%,96%,0.3);}

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
// Required code // Required code

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
// Required code // Required code
@@ -110,15 +110,15 @@ if($action == "add")
$date_from_off = makecheckbox('date_from_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true); $date_from_off = makecheckbox('date_from_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true);
$date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true); $date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, '-1', true, true);
$isactive = makeyesno('active', '1', '0', '1'); #$isactive = makeyesno('active', '1', '0', '1');
$autoresponder_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_addautoresponder.php'; $autoresponder_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/autoresponder/formfield.autoresponder_add.php';
$autoresponder_add_form = htmlform::genHTMLForm($autoresponder_add_data); $autoresponder_add_form = htmlform::genHTMLForm($autoresponder_add_data);
$title = $autoresponder_add_data['autoresponder_add']['title']; $title = $autoresponder_add_data['autoresponder_add']['title'];
$image = $autoresponder_add_data['autoresponder_add']['image']; $image = $autoresponder_add_data['autoresponder_add']['image'];
eval("echo \"" . getTemplate("email/autoresponder_add") . "\";"); eval("echo \"" . getTemplate("autoresponder/autoresponder_add") . "\";");
} }
// Edit autoresponder // Edit autoresponder
@@ -241,15 +241,15 @@ if($action == "edit")
} }
$date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, $deactivated, true, true); $date_until_off = makecheckbox('date_until_off', $lng['panel']['not_activated'], '-1', false, $deactivated, true, true);
$isactive = makeyesno('active', '1', '0', $row['enabled']); #$isactive = makeyesno('active', '1', '0', $row['enabled']);
$autoresponder_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_editautoresponder.php'; $autoresponder_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/autoresponder/formfield.autoresponder_edit.php';
$autoresponder_edit_form = htmlform::genHTMLForm($autoresponder_edit_data); $autoresponder_edit_form = htmlform::genHTMLForm($autoresponder_edit_data);
$title = $autoresponder_edit_data['autoresponder_edit']['title']; $title = $autoresponder_edit_data['autoresponder_edit']['title'];
$image = $autoresponder_edit_data['autoresponder_edit']['image']; $image = $autoresponder_edit_data['autoresponder_edit']['image'];
eval("echo \"" . getTemplate("email/autoresponder_edit") . "\";"); eval("echo \"" . getTemplate("autoresponder/autoresponder_edit") . "\";");
} }
// Delete autoresponder // Delete autoresponder
@@ -310,9 +310,9 @@ else
{ {
$activated_date = date('d-m-Y', $row['date_from']) . ' - ' . date('d-m-Y', $row['date_until']); $activated_date = date('d-m-Y', $row['date_from']) . ' - ' . date('d-m-Y', $row['date_until']);
} }
eval("\$autoresponder.=\"" . getTemplate("email/autoresponder_autoresponder") . "\";"); eval("\$autoresponder.=\"" . getTemplate("autoresponder/autoresponder_autoresponder") . "\";");
$count++; $count++;
} }
eval("echo \"" . getTemplate("email/autoresponder") . "\";"); eval("echo \"" . getTemplate("autoresponder/autoresponder") . "\";");
} }

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -196,7 +196,12 @@ elseif($page == 'domains')
$result = $db->query("DELETE FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'"); $result = $db->query("DELETE FROM `" . TABLE_PANEL_DOMAINS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
$result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`-1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'"); $result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`-1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
else else
@@ -346,7 +351,12 @@ elseif($page == 'domains')
$result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'"); $result = $db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `subdomains_used`=`subdomains_used`+1 WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
$log->logAction(USR_ACTION, LOG_INFO, "added subdomain '" . $completedomain . "'"); $log->logAction(USR_ACTION, LOG_INFO, "added subdomain '" . $completedomain . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
} }
@@ -378,7 +388,7 @@ elseif($page == 'domains')
} }
} }
$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']); #$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']);
$openbasedir = makeoption($lng['domain']['docroot'], 0, NULL, true) . makeoption($lng['domain']['homedir'], 1, NULL, true); $openbasedir = makeoption($lng['domain']['docroot'], 0, NULL, true) . makeoption($lng['domain']['homedir'], 1, NULL, true);
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']); $pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
@@ -521,8 +531,13 @@ elseif($page == 'domains')
$log->logAction(USR_ACTION, LOG_INFO, "edited domain '" . $idna_convert->decode($result['domain']) . "'"); $log->logAction(USR_ACTION, LOG_INFO, "edited domain '" . $idna_convert->decode($result['domain']) . "'");
$result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `documentroot`='" . $db->escape($path) . "', `isemaildomain`='" . (int)$isemaildomain . "', `iswildcarddomain`='" . (int)$iswildcarddomain . "', `aliasdomain`=" . (($aliasdomain != 0 && $alias_check == 0) ? '\'' . $db->escape($aliasdomain) . '\'' : 'NULL') . ",`openbasedir_path`='" . $db->escape($openbasedir_path) . "', `ssl_redirect`='" . $ssl_redirect . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'"); $result = $db->query("UPDATE `" . TABLE_PANEL_DOMAINS . "` SET `documentroot`='" . $db->escape($path) . "', `isemaildomain`='" . (int)$isemaildomain . "', `iswildcarddomain`='" . (int)$iswildcarddomain . "', `aliasdomain`=" . (($aliasdomain != 0 && $alias_check == 0) ? '\'' . $db->escape($aliasdomain) . '\'' : 'NULL') . ",`openbasedir_path`='" . $db->escape($openbasedir_path) . "', `ssl_redirect`='" . $ssl_redirect . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
inserttask('1'); inserttask('1');
# Using nameserver, insert a task which rebuilds the server config
if ($settings['system']['bind_enable'])
{
inserttask('4'); inserttask('4');
} }
}
redirectTo($filename, Array('page' => $page, 's' => $s)); redirectTo($filename, Array('page' => $page, 's' => $s));
} }
@@ -541,12 +556,19 @@ elseif($page == 'domains')
if(preg_match('/^https?\:\/\//', $result['documentroot']) if(preg_match('/^https?\:\/\//', $result['documentroot'])
&& validateUrl($idna_convert->encode($result['documentroot'])) && validateUrl($idna_convert->encode($result['documentroot']))
&& $settings['panel']['pathedit'] == 'Dropdown') ) {
if($settings['panel']['pathedit'] == 'Dropdown')
{ {
$urlvalue = $result['documentroot']; $urlvalue = $result['documentroot'];
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']); $pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
} }
else else
{
$urlvalue = '';
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $result['documentroot'], true);
}
}
else
{ {
$urlvalue = ''; $urlvalue = '';
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $result['documentroot']); $pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit'], $result['documentroot']);
@@ -563,9 +585,9 @@ elseif($page == 'domains')
} }
} }
$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']); #$ssl_redirect = makeyesno('ssl_redirect', '1', '0', $result['ssl_redirect']);
$iswildcarddomain = makeyesno('iswildcarddomain', '1', '0', $result['iswildcarddomain']); #$iswildcarddomain = makeyesno('iswildcarddomain', '1', '0', $result['iswildcarddomain']);
$isemaildomain = makeyesno('isemaildomain', '1', '0', $result['isemaildomain']); #$isemaildomain = makeyesno('isemaildomain', '1', '0', $result['isemaildomain']);
$openbasedir = makeoption($lng['domain']['docroot'], 0, $result['openbasedir_path'], true) . makeoption($lng['domain']['homedir'], 1, $result['openbasedir_path'], true); $openbasedir = makeoption($lng['domain']['docroot'], 0, $result['openbasedir_path'], true) . makeoption($lng['domain']['homedir'], 1, $result['openbasedir_path'], true);
$result_ipandport = $db->query_first("SELECT `ip` FROM `".TABLE_PANEL_IPSANDPORTS."` WHERE `id`='".(int)$result['ipandport']."'"); $result_ipandport = $db->query_first("SELECT `ip` FROM `".TABLE_PANEL_IPSANDPORTS."` WHERE `id`='".(int)$result['ipandport']."'");

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -281,7 +281,7 @@ elseif($page == 'emails')
$domains.= makeoption($idna_convert->decode($row['domain']), $row['domain']); $domains.= makeoption($idna_convert->decode($row['domain']), $row['domain']);
} }
$iscatchall = makeyesno('iscatchall', '1', '0', '0'); #$iscatchall = makeyesno('iscatchall', '1', '0', '0');
$email_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_add.php'; $email_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/email/formfield.emails_add.php';
$email_add_form = htmlform::genHTMLForm($email_add_data); $email_add_form = htmlform::genHTMLForm($email_add_data);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -39,6 +39,31 @@ if($page == 'overview')
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras"); $log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras");
eval("echo \"" . getTemplate("extras/extras") . "\";"); eval("echo \"" . getTemplate("extras/extras") . "\";");
} }
elseif($page == 'backup')
{
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_extras_backup");
$result = $db->query("SELECT `backup_enabled` FROM `" . TABLE_PANEL_CUSTOMERS . "` WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
$row = $db->fetch_array($result);
$backup_enabled = makeyesno('backup_enabled', '1', '0', $row['backup_enabled']);
if(isset($_POST['send']) && $_POST['send'] == 'send'){
$backup_enabled = ($_POST['backup_enabled'] == '1' ? '1' : '0');
$backup_ftp_enabled = ($_POST['backup_ftp_enabled'] == '1' ? '1' : '0');
$db->query("UPDATE `" . TABLE_PANEL_CUSTOMERS . "` SET `backup_enabled`='" . $backup_enabled . "' WHERE `customerid`='" . (int)$userinfo['customerid'] . "'");
redirectTo($filename, Array('page' => $page, 's' => $s));
}
$backup_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.backup.php';
$backup_form = htmlform::genHTMLForm($backup_data);
$title = $backup_data['backup']['title'];
$image = $backup_data['backup']['image'];
eval("echo \"" . getTemplate("extras/backup") . "\";");
}
elseif($page == 'htpasswds') elseif($page == 'htpasswds')
{ {
if($action == '') if($action == '')
@@ -368,9 +393,9 @@ elseif($page == 'htaccess')
else else
{ {
$pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']); $pathSelect = makePathfield($userinfo['documentroot'], $userinfo['guid'], $userinfo['guid'], $settings['panel']['pathedit']);
$options_indexes = makeyesno('options_indexes', '1', '0', '0'); #$options_indexes = makeyesno('options_indexes', '1', '0', '0');
$cperlenabled = customerHasPerlEnabled($userinfo['customerid']); $cperlenabled = customerHasPerlEnabled($userinfo['customerid']);
$options_cgi = makeyesno('options_cgi', '1', '0', '0'); #$options_cgi = makeyesno('options_cgi', '1', '0', '0');
$htaccess_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_add.php'; $htaccess_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_add.php';
$htaccess_add_form = htmlform::genHTMLForm($htaccess_add_data); $htaccess_add_form = htmlform::genHTMLForm($htaccess_add_data);
@@ -435,9 +460,9 @@ elseif($page == 'htaccess')
$result['error404path'] = $result['error404path']; $result['error404path'] = $result['error404path'];
$result['error403path'] = $result['error403path']; $result['error403path'] = $result['error403path'];
$result['error500path'] = $result['error500path']; $result['error500path'] = $result['error500path'];
$options_indexes = makeyesno('options_indexes', '1', '0', $result['options_indexes']); #$options_indexes = makeyesno('options_indexes', '1', '0', $result['options_indexes']);
$cperlenabled = customerHasPerlEnabled($userinfo['customerid']); $cperlenabled = customerHasPerlEnabled($userinfo['customerid']);
$options_cgi = makeyesno('options_cgi', '1', '0', $result['options_cgi']); #$options_cgi = makeyesno('options_cgi', '1', '0', $result['options_cgi']);
$result = htmlentities_array($result); $result = htmlentities_array($result);
$htaccess_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_edit.php'; $htaccess_edit_data = include_once dirname(__FILE__).'/lib/formfields/customer/extras/formfield.htaccess_edit.php';

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -49,7 +49,7 @@ elseif($page == 'accounts')
'homedir' => $lng['panel']['path'] 'homedir' => $lng['panel']['path']
); );
$paging = new paging($userinfo, $db, TABLE_FTP_USERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']); $paging = new paging($userinfo, $db, TABLE_FTP_USERS, $fields, $settings['panel']['paging'], $settings['panel']['natsorting']);
$result = $db->query("SELECT `id`, `username`, `homedir` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . $userinfo['customerid'] . "' " . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit()); $result = $db->query("SELECT `id`, `username`, `homedir` FROM `" . TABLE_FTP_USERS . "` WHERE `customerid`='" . $userinfo['customerid'] . "' AND `username` NOT LIKE '%_backup'" . $paging->getSqlWhere(true) . " " . $paging->getSqlOrderBy() . " " . $paging->getSqlLimit());
$paging->setEntries($db->num_rows($result)); $paging->setEntries($db->num_rows($result));
$sortcode = $paging->getHtmlSortCode($lng); $sortcode = $paging->getHtmlSortCode($lng);
$arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s); $arrowcode = $paging->getHtmlArrowCode($filename . '?page=' . $page . '&s=' . $s);
@@ -268,7 +268,7 @@ elseif($page == 'accounts')
} }
} }
$sendinfomail = makeyesno('sendinfomail', '1', '0', '0'); #$sendinfomail = makeyesno('sendinfomail', '1', '0', '0');
$ftp_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/ftp/formfield.ftp_add.php'; $ftp_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/ftp/formfield.ftp_add.php';
$ftp_add_form = htmlform::genHTMLForm($ftp_add_data); $ftp_add_form = htmlform::genHTMLForm($ftp_add_data);
@@ -312,6 +312,11 @@ elseif($page == 'accounts')
{ {
$log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account password for '" . $result['username'] . "'"); $log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account password for '" . $result['username'] . "'");
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `password`=ENCRYPT('" . $db->escape($password) . "') WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'"); $db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `password`=ENCRYPT('" . $db->escape($password) . "') WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `id`='" . (int)$id . "'");
// also update customers backup user password if password of main ftp user is changed
if(!preg_match('/' . $settings['customer']['ftpprefix'] . '/', $result['username'])){
$db->query("UPDATE `" . TABLE_FTP_USERS . "` SET `password`=ENCRYPT('" . $db->escape($password) . "') WHERE `customerid`='" . (int)$userinfo['customerid'] . "' AND `username`='" . $result['username'] . "_backup'");
}
} }
} }
@@ -324,6 +329,7 @@ elseif($page == 'accounts')
if(!file_exists($path)) if(!file_exists($path))
{ {
mkDirWithCorrectOwnership($userinfo['documentroot'], $path, $result['uid'], $result['gid']); mkDirWithCorrectOwnership($userinfo['documentroot'], $path, $result['uid'], $result['gid']);
inserttask(5); /* Let the cronjob do the rest */
} }
$log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account homdir for '" . $result['username'] . "'"); $log->logAction(USR_ACTION, LOG_INFO, "updated ftp-account homdir for '" . $result['username'] . "'");

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -97,8 +97,8 @@ elseif($page == 'change_password')
exit; exit;
} }
$new_password = validate($_POST['new_password'], 'new password'); $new_password = validatePassword($_POST['new_password'], 'new password');
$new_password_confirm = validate($_POST['new_password_confirm'], 'new password confirm'); $new_password_confirm = validatePassword($_POST['new_password_confirm'], 'new password confirm');
if($old_password == '') if($old_password == '')
{ {

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -62,17 +62,24 @@ elseif($page == 'mysqls')
$count = 0; $count = 0;
$mysqls = ''; $mysqls = '';
// Begin root-session
$db_root = new db($sql_root[0]['host'], $sql_root[0]['user'], $sql_root[0]['password'], '');
unset($db_root->password);
while($row = $db->fetch_array($result)) while($row = $db->fetch_array($result))
{ {
if($paging->checkDisplay($i)) if($paging->checkDisplay($i))
{ {
$row = htmlentities_array($row); $row = htmlentities_array($row);
$mbdata = $db_root->query_first("SELECT SUM( data_length + index_length) / 1024 / 1024 'MB' FROM information_schema.TABLES WHERE table_schema = '" . $db_root->escape($row['databasename']) . "' GROUP BY table_schema ;");
$row['size'] = number_format($mbdata['MB'], 3, '.', '');
eval("\$mysqls.=\"" . getTemplate("mysql/mysqls_database") . "\";"); eval("\$mysqls.=\"" . getTemplate("mysql/mysqls_database") . "\";");
$count++; $count++;
} }
$i++; $i++;
} }
$db_root->close();
// End root-session
$mysqls_count = $db->num_rows($result); $mysqls_count = $db->num_rows($result);
eval("echo \"" . getTemplate("mysql/mysqls") . "\";"); eval("echo \"" . getTemplate("mysql/mysqls") . "\";");
@@ -254,7 +261,7 @@ elseif($page == 'mysqls')
$mysql_servers .= makeoption($mysql_server_details['caption'], $mysql_server); $mysql_servers .= makeoption($mysql_server_details['caption'], $mysql_server);
} }
$sendinfomail = makeyesno('sendinfomail', '1', '0', '0'); #$sendinfomail = makeyesno('sendinfomail', '1', '0', '0');
$mysql_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/mysql/formfield.mysql_add.php'; $mysql_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/mysql/formfield.mysql_add.php';
$mysql_add_form = htmlform::genHTMLForm($mysql_add_data); $mysql_add_form = htmlform::genHTMLForm($mysql_add_data);

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -37,7 +37,7 @@ elseif(isset($_GET['id']))
if($page == 'overview') if($page == 'overview')
{ {
$log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_tickets"); $log->logAction(USR_ACTION, LOG_NOTICE, "viewed customer_tickets");
eval("echo \"" . getTemplate("ticket/ticket") . "\";"); eval("echo \"" . getTemplate("tickets/ticket") . "\";");
} }
elseif($page == 'tickets') elseif($page == 'tickets')
{ {
@@ -104,7 +104,7 @@ elseif($page == 'tickets')
$row['subject'] = substr($row['subject'], 0, 17) . '...'; $row['subject'] = substr($row['subject'], 0, 17) . '...';
} }
eval("\$tickets.=\"" . getTemplate("ticket/tickets_tickets") . "\";"); eval("\$tickets.=\"" . getTemplate("tickets/tickets_tickets") . "\";");
$count++; $count++;
} }
@@ -157,7 +157,7 @@ elseif($page == 'tickets')
} }
$ticketsopen = (int)$opentickets['count']; $ticketsopen = (int)$opentickets['count'];
eval("echo \"" . getTemplate("ticket/tickets") . "\";"); eval("echo \"" . getTemplate("tickets/tickets") . "\";");
} }
elseif($action == 'new') elseif($action == 'new')
{ {
@@ -227,9 +227,9 @@ elseif($page == 'tickets')
$categories = makeoption($lng['ticket']['no_cat'], '0'); $categories = makeoption($lng['ticket']['no_cat'], '0');
} }
$priorities = makeoption($lng['ticket']['unf_high'], '1', $settings['ticket']['default_priority']); $priorities = makeoption($lng['ticket']['high'], '1', $settings['ticket']['default_priority']);
$priorities.= makeoption($lng['ticket']['unf_normal'], '2', $settings['ticket']['default_priority']); $priorities.= makeoption($lng['ticket']['normal'], '2', $settings['ticket']['default_priority']);
$priorities.= makeoption($lng['ticket']['unf_low'], '3', $settings['ticket']['default_priority']); $priorities.= makeoption($lng['ticket']['low'], '3', $settings['ticket']['default_priority']);
$ticketsopen = 0; $ticketsopen = 0;
$opentickets = $db->query_first('SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '` $opentickets = $db->query_first('SELECT COUNT(`id`) as `count` FROM `' . TABLE_PANEL_TICKETS . '`
WHERE `customerid` = "' . $userinfo['customerid'] . '" WHERE `customerid` = "' . $userinfo['customerid'] . '"
@@ -248,13 +248,13 @@ elseif($page == 'tickets')
$ticketsopen = (int)$opentickets['count']; $ticketsopen = (int)$opentickets['count'];
$ticket_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/ticket/formfield.ticket_add.php'; $ticket_add_data = include_once dirname(__FILE__).'/lib/formfields/customer/tickets/formfield.ticket_add.php';
$ticket_add_form = htmlform::genHTMLForm($ticket_add_data); $ticket_add_form = htmlform::genHTMLForm($ticket_add_data);
$title = $ticket_add_data['ticket_add']['title']; $title = $ticket_add_data['ticket_add']['title'];
$image = $ticket_add_data['ticket_add']['image']; $image = $ticket_add_data['ticket_add']['image'];
eval("echo \"" . getTemplate("ticket/tickets_new") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_new") . "\";");
} }
} }
else else
@@ -334,7 +334,7 @@ elseif($page == 'tickets')
$subject = $mainticket->Get('subject'); $subject = $mainticket->Get('subject');
$message = $mainticket->Get('message'); $message = $mainticket->Get('message');
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_main") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_main") . "\";");
$result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '` $result = $db->query('SELECT `name` FROM `' . TABLE_PANEL_TICKET_CATS . '`
WHERE `id`="' . (int)$mainticket->Get('category') . '"'); WHERE `id`="' . (int)$mainticket->Get('category') . '"');
$row = $db->fetch_array($result); $row = $db->fetch_array($result);
@@ -356,7 +356,7 @@ elseif($page == 'tickets')
$subject = $subticket->Get('subject'); $subject = $subticket->Get('subject');
$message = $subticket->Get('message'); $message = $subticket->Get('message');
eval("\$ticket_replies.=\"" . getTemplate("ticket/tickets_tickets_list") . "\";"); eval("\$ticket_replies.=\"" . getTemplate("tickets/tickets_tickets_list") . "\";");
} }
$priorities = makeoption($lng['ticket']['high'], '1', $mainticket->Get('priority'), true, true); $priorities = makeoption($lng['ticket']['high'], '1', $mainticket->Get('priority'), true, true);
@@ -367,13 +367,13 @@ elseif($page == 'tickets')
// don't forget the main-ticket! // don't forget the main-ticket!
$ticket_reply_data = include_once dirname(__FILE__).'/lib/formfields/customer/ticket/formfield.ticket_reply.php'; $ticket_reply_data = include_once dirname(__FILE__).'/lib/formfields/customer/tickets/formfield.ticket_reply.php';
$ticket_reply_form = htmlform::genHTMLForm($ticket_reply_data); $ticket_reply_form = htmlform::genHTMLForm($ticket_reply_data);
$title = $ticket_reply_data['ticket_reply']['title']; $title = $ticket_reply_data['ticket_reply']['title'];
$image = $ticket_reply_data['ticket_reply']['image']; $image = $ticket_reply_data['ticket_reply']['image'];
eval("echo \"" . getTemplate("ticket/tickets_reply") . "\";"); eval("echo \"" . getTemplate("tickets/tickets_reply") . "\";");
} }
} }
elseif($action == 'close' elseif($action == 'close'

View File

@@ -14,7 +14,7 @@
* @author Froxlor team <team@froxlor.org> (2010-) * @author Froxlor team <team@froxlor.org> (2010-)
* @license GPLv2 http://files.froxlor.org/misc/COPYING.txt * @license GPLv2 http://files.froxlor.org/misc/COPYING.txt
* @package Panel * @package Panel
* @version $Id$ *
*/ */
define('AREA', 'customer'); define('AREA', 'customer');
@@ -22,7 +22,7 @@ define('AREA', 'customer');
/** /**
* Include our init.php, which manages Sessions, Language etc. * Include our init.php, which manages Sessions, Language etc.
*/ */
$intrafficpage = 1;
require ("./lib/init.php"); require ("./lib/init.php");
$traffic = ''; $traffic = '';
$month = null; $month = null;
@@ -70,14 +70,6 @@ if(!is_null($month)
&& !is_null($year)) && !is_null($year))
{ {
$traf['byte'] = 0; $traf['byte'] = 0;
$result = $db->query("SELECT MAX(`http`), MAX(`ftp_up`+`ftp_down`), MAX(`mail`)
FROM `" . TABLE_PANEL_TRAFFIC . "`
WHERE `customerid`='" . $userinfo['customerid'] . "'
AND `month` = '" . $month . "'
AND `year` = '" . $year . "'");
$row = mysql_fetch_row($result);
rsort($row);
$traf['max'] = ($row[0] > $row[1] ? ($row[0] > $row[2] ? $row[0] : $row[2]) : ($row[1] > $row[2] ? $row[1] : $row[2]));;
$result = $db->query("SELECT $result = $db->query("SELECT
SUM(`http`) as 'http', SUM(`ftp_up`) AS 'ftp_up', SUM(`ftp_down`) as 'ftp_down', SUM(`mail`) as 'mail', SUM(`http`) as 'http', SUM(`ftp_up`) AS 'ftp_up', SUM(`ftp_down`) as 'ftp_down', SUM(`mail`) as 'mail',
`day`, `month`, `year` `day`, `month`, `year`
@@ -99,57 +91,26 @@ if(!is_null($month)
$traffic_complete['http']+= $http; $traffic_complete['http']+= $http;
$traffic_complete['ftp']+= $ftp; $traffic_complete['ftp']+= $ftp;
$traffic_complete['mail']+= $mail; $traffic_complete['mail']+= $mail;
$traf['day'] = $row['day']; $traf['day'] = $row['day'] . ".";
if(extension_loaded('bcmath')) if(extension_loaded('bcmath'))
{ {
$traf['ftptext'] = bcdiv($row['ftp_up'], 1024, $settings['panel']['decimal_places']) . " MB up/ " . bcdiv($row['ftp_down'], 1024, $settings['panel']['decimal_places']) . " MB down (FTP)"; $traf['ftptext'] = bcdiv($row['ftp_up'], 1024, $settings['panel']['decimal_places']) . " MB up/ " . bcdiv($row['ftp_down'], 1024, $settings['panel']['decimal_places']) . " MB down (FTP)";
$traf['httptext'] = bcdiv($http, 1024, $settings['panel']['decimal_places']) . " MB (HTTP)"; $traf['httptext'] = bcdiv($http, 1024, $settings['panel']['decimal_places']) . " MB (HTTP)";
$traf['mailtext'] = bcdiv($mail, 1024, $settings['panel']['decimal_places']) . " MB (Mail)"; $traf['mailtext'] = bcdiv($mail, 1024, $settings['panel']['decimal_places']) . " MB (Mail)";
$traf['ftp'] = bcdiv($ftp, 1024, $settings['panel']['decimal_places']);
$traf['http'] = bcdiv($http, 1024, $settings['panel']['decimal_places']);
$traf['mail'] = bcdiv($mail, 1024, $settings['panel']['decimal_places']);
$traf['byte'] = bcdiv($traf['byte'], 1024, $settings['panel']['decimal_places']);
} }
else else
{ {
$traf['ftptext'] = round($row['ftp_up'] / 1024, $settings['panel']['decimal_places']) . " MB up/ " . round($row['ftp_down'] / 1024, $settings['panel']['decimal_places']) . " MB down (FTP)"; $traf['ftptext'] = round($row['ftp_up'] / 1024, $settings['panel']['decimal_places']) . " MB up/ " . round($row['ftp_down'] / 1024, $settings['panel']['decimal_places']) . " MB down (FTP)";
$traf['httptext'] = round($http / 1024, $settings['panel']['decimal_places']) . " MB (HTTP)"; $traf['httptext'] = round($http / 1024, $settings['panel']['decimal_places']) . " MB (HTTP)";
$traf['mailtext'] = round($mail / 1024, $settings['panel']['decimal_places']) . " MB (Mail)"; $traf['mailtext'] = round($mail / 1024, $settings['panel']['decimal_places']) . " MB (Mail)";
} $traf['http'] = round($http, $settings['panel']['decimal_places']);
$traf['ftp'] = round($ftp, $settings['panel']['decimal_places']);
if($traf['byte'] != 0 $traf['mail'] = round($mail, $settings['panel']['decimal_places']);
&& $traf['max'] != 0)
{
$proz = $traf['max'] / 100;
$traf['http'] = round($http / $proz, 0);
$traf['ftp'] = round($ftp / $proz, 0);
$traf['mail'] = round($mail / $proz, 0);
if($traf['http'] == 0)
{
$traf['http'] = 1;
}
if($traf['ftp'] == 0)
{
$traf['ftp'] = 1;
}
if($traf['mail'] == 0)
{
$traf['mail'] = 1;
}
}
else
{
$traf['http'] = 0;
$traf['ftp'] = 0;
$traf['mail'] = 0;
}
if(extension_loaded('bcmath'))
{
$traf['byte'] = bcdiv($traf['byte'], 1024, $settings['panel']['decimal_places']);
}
else
{
$traf['byte'] = round($traf['byte'] / 1024, $settings['panel']['decimal_places']); $traf['byte'] = round($traf['byte'] / 1024, $settings['panel']['decimal_places']);
} }
@@ -174,21 +135,6 @@ if(!is_null($month)
} }
else else
{ {
$result = $db->query("SELECT MAX(`http`), MAX(`ftp_up`+`ftp_down`), MAX(`mail`)
FROM `" . TABLE_PANEL_TRAFFIC . "`
WHERE `customerid`='" . $userinfo['customerid'] . "'
GROUP BY CONCAT(`year`,`month`) ORDER BY CONCAT(`year`,`month`) DESC LIMIT 12");
$nums = mysql_num_rows($result);
if($nums > 0)
{
$row = mysql_fetch_row($result);
rsort($row);
$traf['max'] = ($row[0] > $row[1] ? ($row[0] > $row[2] ? $row[0] : $row[2]) : ($row[1] > $row[2] ? $row[1] : $row[2]));
} else {
// no records yet
$traf['max'] = 0;
}
$result = $db->query("SELECT `month`, `year`, SUM(`http`) AS http, SUM(`ftp_up`) AS ftp_up, SUM(`ftp_down`) AS ftp_down, SUM(`mail`) AS mail $result = $db->query("SELECT `month`, `year`, SUM(`http`) AS http, SUM(`ftp_up`) AS ftp_up, SUM(`ftp_down`) AS ftp_down, SUM(`mail`) AS mail
FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid` = '" . $userinfo['customerid'] . "' FROM `" . TABLE_PANEL_TRAFFIC . "` WHERE `customerid` = '" . $userinfo['customerid'] . "'
@@ -213,53 +159,23 @@ else
if(extension_loaded('bcmath')) if(extension_loaded('bcmath'))
{ {
$traf['ftptext'] = bcdiv($ftp_up, 1024 * 1024, $settings['panel']['decimal_places']) . " GB up/ " . bcdiv($ftp_down, 1024 * 1024, $settings['panel']['decimal_places']) . " GB down (FTP)"; $traf['ftptext'] = bcdiv($ftp_up, 1024, $settings['panel']['decimal_places']) . " MB up/ " . bcdiv($ftp_down, 1024, $settings['panel']['decimal_places']) . " MB down (FTP)";
$traf['httptext'] = bcdiv($http, 1024 * 1024, $settings['panel']['decimal_places']) . " GB (HTTP)"; $traf['httptext'] = bcdiv($http, 1024, $settings['panel']['decimal_places']) . " MB (HTTP)";
$traf['mailtext'] = bcdiv($mail, 1024 * 1024, $settings['panel']['decimal_places']) . " GB (Mail)"; $traf['mailtext'] = bcdiv($mail, 1024, $settings['panel']['decimal_places']) . " MB (Mail)";
$traf['ftp'] = bcdiv(($ftp_up + $ftp_down), 1024, $settings['panel']['decimal_places']);
$traf['http'] = bcdiv($http, 1024, $settings['panel']['decimal_places']);
$traf['mail'] = bcdiv($mail, 1024, $settings['panel']['decimal_places']);
$traf['byte'] = bcdiv($traf['byte'], 1024 * 1024, $settings['panel']['decimal_places']);
} }
else else
{ {
$traf['ftptext'] = round($ftp_up / 1024 * 1024, $settings['panel']['decimal_places']) . " GB up/ " . round($ftp_down / 1024 * 1024, $settings['panel']['decimal_places']) . " GB down (FTP)"; $traf['ftptext'] = round($ftp_up / 1024, $settings['panel']['decimal_places']) . " MB up/ " . round($ftp_down / 1024, $settings['panel']['decimal_places']) . " MB down (FTP)";
$traf['httptext'] = round($http / 1024 * 1024, $settings['panel']['decimal_places']) . " GB (HTTP)"; $traf['httptext'] = round($http / 1024, $settings['panel']['decimal_places']) . " MB (HTTP)";
$traf['mailtext'] = round($mail / 1024 * 1024, $settings['panel']['decimal_places']) . " GB (Mail)"; $traf['mailtext'] = round($mail / 1024, $settings['panel']['decimal_places']) . " MB (Mail)";
} $traf['ftp'] = round(($ftp_up + $ftp_down) / 1024, $settings['panel']['decimal_places']);
$traf['http'] = round($http / 1024, $settings['panel']['decimal_places']);
if($traf['max'] != 0) $traf['mail'] = round($mail / 1024, $settings['panel']['decimal_places']);
{ $traf['byte'] = round($traf['byte'] / (1024 * 1024), $settings['panel']['decimal_places']);
$proz = $traf['max'] / 100;
$traf['ftp'] = round(($ftp_up + $ftp_down) / $proz, 0);
$traf['http'] = round($http / $proz, 0);
$traf['mail'] = round($mail / $proz, 0);
if($traf['http'] == 0)
{
$traf['http'] = 1;
}
if($traf['ftp'] == 0)
{
$traf['ftp'] = 1;
}
if($traf['mail'] == 0)
{
$traf['mail'] = 1;
}
}
else
{
$traf['ftp'] = 0;
$traf['http'] = 0;
$traf['mail'] = 0;
}
if(extension_loaded('bcmath'))
{
$traf['byte'] = bcadd($traf['byte'] / (1024 * 1024), 0.0000, 4);
}
else
{
$traf['byte'] = round($traf['byte'] + (1024 * 1024), 4);
} }
eval("\$traffic.=\"" . getTemplate("traffic/traffic_traffic") . "\";"); eval("\$traffic.=\"" . getTemplate("traffic/traffic_traffic") . "\";");
@@ -273,9 +189,9 @@ else
} }
else else
{ {
$traffic_complete['http'] = round($traffic_complete['http'] / 1024 * 1024, $settings['panel']['decimal_places']); $traffic_complete['http'] = round($traffic_complete['http'] / (1024 * 1024), $settings['panel']['decimal_places']);
$traffic_complete['ftp'] = round($traffic_complete['ftp'] / 1024 * 1024, $settings['panel']['decimal_places']); $traffic_complete['ftp'] = round($traffic_complete['ftp'] / (1024 * 1024), $settings['panel']['decimal_places']);
$traffic_complete['mail'] = round($traffic_complete['mail'] / 1024 * 1024, $settings['panel']['decimal_places']); $traffic_complete['mail'] = round($traffic_complete['mail'] / (1024 * 1024), $settings['panel']['decimal_places']);
} }
eval("echo \"" . getTemplate("traffic/traffic") . "\";"); eval("echo \"" . getTemplate("traffic/traffic") . "\";");

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 281 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 985 B

After

Width:  |  Height:  |  Size: 983 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 892 B

After

Width:  |  Height:  |  Size: 889 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 976 B

After

Width:  |  Height:  |  Size: 973 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1016 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1017 B

After

Width:  |  Height:  |  Size: 1014 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1009 B

After

Width:  |  Height:  |  Size: 1006 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1015 B

After

Width:  |  Height:  |  Size: 1013 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 882 B

After

Width:  |  Height:  |  Size: 879 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 925 B

After

Width:  |  Height:  |  Size: 924 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 952 B

After

Width:  |  Height:  |  Size: 945 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 967 B

After

Width:  |  Height:  |  Size: 966 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 953 B

After

Width:  |  Height:  |  Size: 952 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 959 B

After

Width:  |  Height:  |  Size: 950 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 927 B

After

Width:  |  Height:  |  Size: 921 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 943 B

After

Width:  |  Height:  |  Size: 940 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 740 B

After

Width:  |  Height:  |  Size: 739 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 3.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More