Pierre Jaury
e6c18e6ac3
Use relative path for certificates, fixes #35
2017-02-12 16:58:58 +01:00
Pierre Jaury
be5562620e
Enable https and --preload on the admin to improve letsencrypt support
2017-02-12 16:32:46 +01:00
Pierre Jaury
0ff6dc892d
Install certbot from pip instead of source
2017-02-03 00:07:49 +01:00
Pierre Jaury
25d8b9e614
Add a keep option per fetch, fixes #60
2017-02-02 22:45:43 +01:00
Pierre Jaury
38f291bc5d
Implement a maximum quota per domain, fixes #106
2017-02-02 22:29:33 +01:00
Pierre Jaury
41b1666609
Fix the behaviour from Wtforms Components regarding readonly, related to #152
2017-01-25 00:05:03 +01:00
Pierre Jaury
182e844ae6
Set password properly when using the CLI, fixes, #136
2016-12-28 22:46:04 +01:00
kaiyou
020ec8ef6b
Merge pull request #131 from sanduhrs/german-translation-update
...
Update german translation from poeditor.com
2016-12-16 18:51:49 +01:00
Stefan Auditor
f043e50983
Add method to create an alias
2016-12-14 10:49:26 +01:00
Stefan Auditor
2c3c52a2ec
Add method to create a normal user
2016-12-14 08:16:48 +01:00
Stefan Auditor
9f8051f6e7
Update german translation from poeditor.com: add some missing strings, a few wording corrections, fix typo
2016-12-14 08:08:07 +01:00
Pierre Jaury
764b9e209b
Bug when redirecting after deleting a fetch, related to #120
2016-11-22 11:38:05 +01:00
Pierre Jaury
a5f061a8b2
Fix a typo when renaming the domain variable
2016-11-13 18:37:09 +01:00
Pierre Jaury
720db8e72a
Generate a certificate for the proper hostname
2016-11-13 18:19:01 +01:00
Pierre Jaury
373998ea99
Do not use objects after deleting them, fixes #112
2016-11-12 15:48:02 +01:00
kaiyou
08e4e2ee86
Update messages.po (POEditor.com)
2016-11-10 10:56:55 +01:00
Pierre Jaury
8ac9400c85
Add some missing translations
2016-11-10 10:53:36 +01:00
Pierre Jaury
c3b9756000
Announcement to all users, fixes #16
2016-11-10 10:48:37 +01:00
Stefan Auditor
eacf2a363b
Add german translation
2016-11-09 21:47:56 +01:00
Pierre Jaury
9ef706517a
Add the Docker client helper
2016-11-09 16:49:18 +01:00
Pierre Jaury
9e0718b00f
Speed up local builds of the admin container
2016-11-09 16:46:38 +01:00
Pierre Jaury
a8bc8e9d4b
Reload Docker containers when certificates are generated
2016-11-09 16:38:30 +01:00
Pierre Jaury
bbf71b262e
Move docker related features to a separate module
2016-11-09 16:38:17 +01:00
Pierre Jaury
4246179b88
First working certificate generation code, related to #35
2016-11-09 16:18:16 +01:00
Pierre Jaury
a9cb1e2d11
Change the spam threshold to an integer, related to #103
2016-11-08 20:34:38 +01:00
Pierre Jaury
afbcb9b8c6
Remove an exception trigger in the main init file
2016-11-08 20:34:38 +01:00
d-fens
40820e4701
Fix admin template to reference github repository
2016-11-08 13:35:49 +00:00
Pierre Jaury
c9aff0691b
Add a scheduler to the Flask application
2016-11-06 17:00:10 +01:00
Pierre Jaury
d4f93e39db
Select translation based on browser configuration, fixes #100
2016-11-06 12:48:24 +01:00
kaiyou
9f09e0c8e0
Update messages.po (POEditor.com)
2016-11-06 12:33:30 +01:00
Pierre Jaury
013286b8e1
Rename the freeposte/mailu directory and database
2016-10-29 13:42:39 +02:00
Pierre Jaury
7be2d458d9
Use Email as a mixin and explicitely specify table names
...
This also fixes #77 , as explained in the ticket, because Flask
SQlAlchemy is not accessing declared attributes early anymore.
2016-10-16 17:21:01 +02:00
Pierre Jaury
c7fe29c957
Push the missing messages.pot
2016-10-13 09:37:24 +02:00
Pierre Jaury
c007b37df7
Display error messages when Docker is unreachable properly, related to #78
2016-10-13 09:32:27 +02:00
Pierre Jaury
984b605d05
Compile translations when building the admin container
2016-10-02 17:38:10 +02:00
Pierre Jaury
acf4addae0
Add initial translations, fix #37
2016-10-02 17:35:11 +02:00
Pierre Jaury
c37ad3557f
Missing translations
2016-10-02 17:33:34 +02:00
Pierre Jaury
3fa44613b1
Add a default babel configuration
2016-10-02 14:56:33 +02:00
Pierre Jaury
3ade5641d9
Fix the confirmation form
2016-10-02 14:53:01 +02:00
Pierre Jaury
0beeeade41
Enable Babel for all views
2016-10-02 14:52:50 +02:00
Pierre Jaury
a3ad45c8ac
Use babel for base views
2016-10-02 14:43:48 +02:00
Pierre Jaury
fe035114e9
Enable Babel for forms
2016-10-02 14:37:06 +02:00
Pierre Jaury
d3436668d8
Enable Babel
2016-10-02 14:23:44 +02:00
Pierre Jaury
676a9a5d2c
Do not redirect users to admin pages, fix #74
2016-10-02 10:14:53 +02:00
Pierre Jaury
c028a3799d
Write an equivalence test for domains, fixes #65
...
(cherry picked from commit 144f427088
)
2016-10-02 10:13:45 +02:00
kaiyou
1ae8fe6af1
Merge pull request #73 from diresi/junk_filter
...
dovecot: use rspamd X-Spamd-Result percentage to evaluate spam
2016-10-02 09:46:48 +02:00
Pierre Jaury
c02faada94
Remove deprecated references to flask_wtf.Form, fix #72
2016-10-02 09:33:07 +02:00
Pierre Jaury
e7399e6926
Add a development run.py script
2016-10-02 09:19:34 +02:00
Christoph Rissner
b9de28e910
dovecot: use rspamd X-Spamd-Result percentage to evaluate spam
...
- configures dovecot to use the spamtest sieve plugins
- configures sieve to read the score from X-Spamd-Result: headers
- before.sieve applies the ${spam_threshold} to the spamtest percentage
- freeposte.db stores a percentage for ${spam_threshold}
- migrate freeposte.db spam_threshold from X/15 to percentages
the filter investigates the overall ratio of the `rspamd` header
`X-Spamd-Result` that looks something like this:
X-Spamd-Result: default: True [12.36 / 15.00]
RBL_SPAMHAUS_XBL(4.00)[]
BAYES_SPAM(3.06)[92.67%]
RBL_SPAMHAUS_XBL_ANY(4.00)[]
ONCE_RECEIVED_STRICT(4.00)[]
HFILTER_HELO_BAREIP(3.00)[]
RBL_SORBS_DUL(2.00)[]
HFILTER_HOSTNAME_UNKNOWN(2.50)[]
RBL_SPAMHAUS_PBL(2.00)[]
RBL_SORBS_RECENT(1.50)[]
MIME_UNKNOWN(0.10)[application/x-rar-compressed]
RDNS_NONE(1.00)[]
RBL_SORBS(0.00)[]
R_SPF_NEUTRAL(0.00)[?all]
ONCE_RECEIVED(0.10)[]
RBL_SEM(1.00)[]
MIME_HTML_ONLY(0.20)[]
RBL_UCEPROTECT_LEVEL1(1.00)[]
MIME_GOOD(-0.10)[multipart/mixed]
the sieve `spamtest :percent :value` in this case would be
100*12.36/15 = 82.4%
2016-09-30 11:21:29 +02:00
Pierre Jaury
525089a531
Do not leak information about existing domains or users
2016-09-13 20:59:25 +02:00
Pierre Jaury
2cb4a44b5a
Display fetchmail errors to the user, fixes #23
2016-09-10 13:05:55 +02:00
kaiyou
18253b1dd3
Merge pull request #61 from vhf/admin-creation
...
Allow admin creation after initial setup
2016-09-09 12:36:02 +02:00
Victor Felder
3976a5b38e
Allow admin creation after initial setup
2016-09-09 11:07:05 +02:00
Victor Felder
97d952d7f1
Fix a typo
2016-09-09 11:06:43 +02:00
Pierre Jaury
e24da96e58
Add some documentation to access decorators
2016-08-29 20:30:59 +02:00
Pierre Jaury
09bec055fd
Fix domain deletion permissions
2016-08-29 20:22:44 +02:00
Pierre Jaury
c1f9b61dac
Add a simple permission audit script
2016-08-29 20:18:00 +02:00
Pierre Jaury
f8dcef22ef
Fix the manager deletion behaviour
2016-08-29 19:40:18 +02:00
Pierre Jaury
f541a951de
Remove obsolete utils module
2016-08-29 19:36:37 +02:00
Pierre Jaury
713318f097
Clean imports and remove calls to the utils module
2016-08-29 19:35:09 +02:00
Pierre Jaury
ee9a416696
Implement the decorator-based access control for all views
2016-08-29 19:24:39 +02:00
Pierre Jaury
4e4f2b8037
First shot at improving access control, related to #42
...
A couple of things are important to note for this commit:
- it only implements the new access control for alias and admin management
- the access control code is located in access.py
The idea behind simpler access control is auditability. There have been a
couple of bugs related to functions not checking permissions properly. If
checking permissions is as simple as decorating a function, exporting the
permission scheme for an audit should be simple.
Also, this still does not address the information leakage related to 404 errors
when an object does not exist, independently of permissions the user has over
the domain.
2016-08-28 15:23:57 +02:00
Pierre Jaury
3ea3bc1d8e
Enforce permission checks for admin management
2016-08-27 15:05:30 +02:00
Pierre Jaury
6dc9131b97
Fix the wildcard migration script, fixes #53
2016-08-23 22:46:21 +02:00
Pierre Jaury
e3197f9156
Have the admin interface listen on localhost
2016-08-21 15:01:07 +02:00
Pierre Jaury
8601d5b8db
Fix #49 when deleting a global admin
2016-08-20 12:46:29 +02:00
Pierre Jaury
0d3c75aa89
Fix a migration issue with wildcard aliases
2016-08-20 12:23:55 +02:00
Pierre Jaury
84769cab3e
Switch to form-based confirmations, fixes #20
2016-08-19 10:49:05 +02:00
Pierre Jaury
5a69ada041
Add an action confirmation form, related to #20
2016-08-19 10:36:13 +02:00
Pierre Jaury
58337d7dd6
Set a proper default for spam thresholds
2016-08-18 20:42:55 +02:00
Pierre Jaury
1ce0bf2ef7
Update the user settings view with a slider
2016-08-18 20:42:35 +02:00
Pierre Jaury
0371da6307
Add the migration script for wildcard aliases, related to #38
2016-08-15 22:35:25 +02:00
XYunknown
6d4243ec66
Adding SQL Like format for aliases
2016-08-15 21:01:53 +02:00
Pierre Jaury
b3d7b657ab
Remove deprecated flask.ext imports
2016-08-13 20:51:54 +02:00
Pierre Jaury
9640d59aca
Fix #25 , serve static resources locally
2016-08-13 20:39:36 +02:00
Pierre Jaury
689c022a4a
Get back to a single forward destination
2016-08-13 20:01:40 +02:00
Pierre Jaury
678a5c8065
Fix #22 , use ellipsis for overflowing text
2016-08-11 16:56:50 +02:00
Pierre Jaury
c07211677c
Fix the default value for comma separated lists
2016-08-11 16:32:50 +02:00
Pierre Jaury
163494cb78
Use readonly attribute instead of disabled
2016-08-11 16:06:52 +02:00
Pierre Jaury
6af7a07e77
Avoid having an empty entry in destionation fields
2016-08-11 15:41:12 +02:00
Pierre Jaury
5581f1b0d9
Related to #19 , fix the alias creation page
2016-08-11 14:27:01 +02:00
Pierre Jaury
dcaf3e3473
Fix #30 , use cascade deletion on domains
2016-08-11 14:13:56 +02:00
Pierre Jaury
49a1281976
Display the alias list properly
2016-08-11 13:52:03 +02:00
Pierre Jaury
5f36e6f4f2
Related to #19 , implement domain specific field and database type
2016-08-11 13:33:04 +02:00
Pierre Jaury
aace1c2d78
Get back to serving CDN assets, related to #25
2016-06-26 13:48:56 +02:00
Pierre Jaury
1673631e69
Fix the columns in the fetch list
2016-06-26 12:41:25 +02:00
Pierre Jaury
f8a220e72a
Serve local assets only
2016-06-26 11:18:14 +02:00
Pierre Jaury
21bec865b3
Fix permission management when editing/deleting fetches
2016-06-25 19:48:10 +02:00
Pierre Jaury
58ec3597ab
Fix te DKIM DNS example
2016-06-25 19:08:21 +02:00
Pierre Jaury
6a3af51785
Add a confirmation modal when regenerating keys
2016-06-25 16:10:30 +02:00
Pierre Jaury
66a1b50cc9
Sign outgoing emails using DKIM
2016-06-25 16:06:52 +02:00
Pierre Jaury
24680957f7
Handle DKIM key generation and storage
2016-06-25 15:50:05 +02:00
Pierre Jaury
2fa8b879db
Display domain SPF and DMARC example entries, fixes #15
2016-06-25 14:51:02 +02:00
Pierre Jaury
1c132fe92e
Add migratoin scripts to the docker container
2016-06-25 14:25:53 +02:00
Pierre Jaury
2095b3f189
Fix the admin creation command
2016-06-25 14:25:22 +02:00
Pierre Jaury
ec12ee9703
Fix a last typo in the migration script, fixes #17
2016-06-25 14:17:45 +02:00
Pierre Jaury
cc013560d9
Perform automatic database migration
2016-06-25 14:11:34 +02:00
Pierre Jaury
fa30a71e66
Remove deprecated initdb script
2016-06-25 14:05:04 +02:00
Pierre Jaury
cca6eee8db
Add the first database revision
2016-06-25 14:04:30 +02:00
Pierre Jaury
014993ee6e
Add utility functions to manage.py
2016-06-25 14:02:50 +02:00