Ionut Filip
8fc2846924
Added regex validation for alias username
2018-12-18 17:06:39 +02:00
Tim Möhlmann
3c4ee1b31e
Merge pull request #743 from kaiyou/master
...
Fixes #738 regarding application context
2018-12-14 11:09:27 +02:00
ofthesun9
97b3a85090
Merge pull request #737 from hoellen/fix-alias-match-behaviour
...
fix alias match behaviour
2018-12-13 20:34:09 +01:00
mergify-bot
09a50b6cfc
Merge branch 'master' into 'master'
2018-12-13 19:14:20 +01:00
kaiyou
4060ac2223
Remove some forgotten debugging
2018-12-13 15:19:34 +01:00
kaiyou
087841d5b7
Fix the way we handle the application context
...
The init script was pushing an application context, which maked
flask.g global and persisted across requests. This was evaluated
to have a minimal security impact.
This explains/fixes #738 : flask_wtf caches the csrf token in the
application context to have a single token per request, and only
sets the session attribute after the first generation.
2018-12-13 14:23:17 +01:00
kaiyou
8707b0fcd7
Use a dictionary of db connection string templates
2018-12-10 15:30:53 +01:00
kaiyou
7e388e472a
Handle relay name as an Idna domain
2018-12-10 15:16:30 +01:00
kaiyou
b8282b1d46
Support named constraints for multiple backends
...
Supporting multiple backends requires that specific sqlite
collations are not used, thus lowercase is applied to all non
case-sensitive columns. However, lowercasing the database requires
temporary disabling foreign key constraints, which is not possible
on SQLite and requires we specify the constraint names.
This migration specific to sqlite and postgresql drops every
constraint, whether it is named or not, and recreates all of them
with known names so we can later disable them.
2018-12-10 15:16:30 +01:00
kaiyou
e022513a94
Fix support for postgres and mysql
2018-12-10 15:16:30 +01:00
kaiyou
a881a1a839
Revert "Make current migrations work with postgresql"
...
This reverts commit 9b9f3731f6
.
2018-12-10 15:03:12 +01:00
kaiyou
76925e82f3
Revert "Implement CIText as NOCASE alternative in postgresql"
...
This reverts commit 0f3c1b9d15
.
2018-12-10 15:01:27 +01:00
kaiyou
f52ae5535c
Revert "Created function for returning email type"
...
This reverts commit 436055f02c
.
2018-12-10 14:58:18 +01:00
kaiyou
f6520eace6
Merge branch 'feat-psql-support' of https://github.com/usrpro/Mailu into usrpro-feat-psql-support
2018-12-10 14:50:38 +01:00
hoellen
8fe9e695f3
prefer non-wildcard aliases over wildcard aliases
2018-12-10 08:40:10 +01:00
hoellen
79768c09f6
fix alias matching behaviour
2018-12-09 19:49:23 +01:00
Tim Möhlmann
8172f3eab8
Move the Mailu Docker network to a fixed subnet.
...
This will make network configuration and host based authentication
more robust, across different deployment platforms.
The options `RELAYNETS` and`POD_ADDRESS_RANGE` are kept for compatibility.
However, their usage have become optional.
2018-12-06 12:08:22 +02:00
kaiyou
b6aaf57be1
Merge branch 'refactor-config' of github.com:kaiyou/mailu into refactor-config
2018-12-06 10:33:21 +01:00
kaiyou
d0f07984b0
Merge remote-tracking branch 'upstream/master' into refactor-config
2018-12-06 10:23:43 +01:00
mergify[bot]
a382f74680
Merge pull request #705 from usrpro/fix-recaptcha
...
Fix recaptcha
2018-12-05 18:05:22 +00:00
mergify[bot]
37027cfce7
Merge pull request #633 from kaiyou/fix-sender-checks
...
Improve sender checks
2018-12-05 16:03:24 +00:00
Tim Möhlmann
c9df311a0d
Set forward_destination to an empty list
...
The value of `None` resulted in an error, since a list was expected.
2018-12-04 16:22:18 +02:00
Tim Möhlmann
eff6c34632
Catch asterisk before resolve_domain
...
Asterisk results in IDNA error and a 500 return code.
2018-12-04 15:40:07 +02:00
David Rothera
88c174fb7a
Query alternative table for domain matches
...
At present postfix checks this view for matches in the domain table and is used to accept/deny messages sent into it however it never checks for matches in the alternative table.
Fixes #718
2018-12-02 11:21:42 +00:00
Ionut Filip
436055f02c
Created function for returning email type
2018-11-21 13:43:06 +01:00
Tim Möhlmann
47a3fd47b5
Fix DB_FLAVOR condition testing for models.py
2018-11-20 18:18:33 +02:00
Tim Möhlmann
0f3c1b9d15
Implement CIText as NOCASE alternative in postgresql
2018-11-20 14:41:17 +02:00
Tim Möhlmann
9b9f3731f6
Make current migrations work with postgresql
2018-11-19 19:10:38 +02:00
Tim Möhlmann
8bdc0c71af
Allow for setting a different DB flavor
2018-11-14 14:58:54 +02:00
Ionut Filip
fed7146873
Captcha check on signup form
2018-11-09 12:30:49 +02:00
Tim Möhlmann
4783e61693
Fix password context
...
Fixes the following error:
```
admin_1 | [2018-11-09 09:44:10,533] ERROR in app: Exception on /internal/auth/email [GET]
admin_1 | Traceback (most recent call last):
admin_1 | File "/usr/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
admin_1 | response = self.full_dispatch_request()
admin_1 | File "/usr/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
admin_1 | rv = self.handle_user_exception(e)
admin_1 | File "/usr/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
admin_1 | reraise(exc_type, exc_value, tb)
admin_1 | File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
admin_1 | raise value
admin_1 | File "/usr/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
admin_1 | rv = self.dispatch_request()
admin_1 | File "/usr/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
admin_1 | return self.view_functions[rule.endpoint](**req.view_args)
admin_1 | File "/usr/lib/python3.6/site-packages/flask_limiter/extension.py", line 544, in __inner
admin_1 | return obj(*a, **k)
admin_1 | File "/app/mailu/internal/views/auth.py", line 18, in nginx_authentication
admin_1 | headers = nginx.handle_authentication(flask.request.headers)
admin_1 | File "/app/mailu/internal/nginx.py", line 48, in handle_authentication
admin_1 | if user.check_password(password):
admin_1 | File "/app/mailu/models.py", line 333, in check_password
admin_1 | context = User.pw_context
admin_1 | AttributeError: type object 'User' has no attribute 'pw_context'
```
2018-11-09 11:45:08 +02:00
kaiyou
5b769e23da
Merge branch 'master' into refactor-config
2018-11-08 21:43:05 +01:00
kaiyou
02995f0a15
Add a mailu command line to flask
2018-11-08 21:29:30 +01:00
kaiyou
4a7eb1eb6c
Explicitely declare flask migrate
2018-11-08 20:32:23 +01:00
kaiyou
2a8808bdec
Add the configuration table migration
2018-11-08 20:32:06 +01:00
kaiyou
f57d4859f3
Provide an in-context wrapper for getting users
2018-11-08 20:30:41 +01:00
kaiyou
206cce0b47
Finish the configuration bits
2018-11-08 20:29:52 +01:00
Ionut Filip
1bbf3f235d
Using a new class when captcha is enabled
2018-11-07 09:58:49 +02:00
hoellen
680ad4b67a
Catching only ValueError
...
Co-Authored-By: ionutfilip <ionut.philip@gmail.com>
2018-11-05 19:36:28 +02:00
Ionut Filip
6dcc33e390
Fixed admin_1 errors in the logs
...
Fixed errors when trying to log in with an account without domain.
This closes #585
2018-11-02 12:14:23 +02:00
Tim Möhlmann
5fa2aac569
Fix imap login when no webmail selected
2018-10-31 17:47:05 +02:00
Scott
56fb74c502
Fix typo (duplicate self). Fixes #683
2018-10-23 10:47:31 -05:00
Tim Möhlmann
ed81c076f2
Take out "models" path, as we are already in it
2018-10-23 11:53:52 +03:00
Tim Möhlmann
aed80a74fa
Rectify decleration of domain_name
2018-10-23 11:52:15 +03:00
Tim Möhlmann
2d382f2d67
Merge branch 'master' into fix-sender-checks
2018-10-23 10:58:29 +03:00
kaiyou
1fcaef7c7e
Merge branch 'master' into fix-sender-checks
2018-10-20 10:18:36 +02:00
hoellen
72d4fa2bc9
remove empty line from merge conflict
2018-10-19 22:13:38 +02:00
hoellen
857ad50509
Merge branch 'master' into feat-reply-startdate
2018-10-19 22:06:56 +02:00
kaiyou
82069ea3f0
Clean most of the refactored code
2018-10-18 17:55:07 +02:00
kaiyou
f40fcd7ac0
Use click for the manager command
2018-10-18 16:20:56 +02:00
kaiyou
fc24426291
First batch of refactoring, using the app factory pattern
2018-10-18 15:57:43 +02:00
kaiyou
01fa179767
Update the user password in database when needed
2018-10-17 21:22:22 +02:00
kaiyou
988e09e65e
Add a profiler in debug mode for improving performance
2018-10-17 21:22:15 +02:00
kaiyou
dba8f1810d
Do not check the password another time in Dovecot
2018-10-17 21:22:09 +02:00
kaiyou
ed3388ed6e
Merge branch 'master' into feat-reply-startdate
2018-10-16 23:53:43 +02:00
kaiyou
e784556330
Fix an edge case with old values containing None for coma separated lists
2018-10-16 20:47:38 +02:00
kaiyou
5ada669f43
Rebase reply startdate on master
2018-10-16 20:38:18 +02:00
kaiyou
c6846fd8db
Merge branch 'master' into feat-reply-startdate
2018-10-15 21:52:06 +02:00
Thomas Sänger
c8b39c5d4a
support bcrypt and use it as default
2018-10-10 19:29:23 +02:00
kaiyou
508e519a34
Refactor the postfix views and implement sender checks
2018-10-07 16:24:48 +02:00
kaiyou
fc99eb7b34
Re-enable sender access check to prevent source spoofing
2018-10-07 01:52:01 +02:00
kaiyou
fcad52b145
Implement a start date filter for autoreply, fixes #362
2018-09-27 22:45:16 +02:00
kaiyou
f5668dea51
Handle relays as virtual transports through podop
2018-09-27 16:30:20 +02:00
kaiyou
42c6bdb4df
Split the internal blueprint into multiple view files
2018-09-27 16:09:38 +02:00
kaiyou
f9c6c98180
Remove fetchmail dependency to the databse
2018-09-27 15:54:08 +02:00
kaiyou
542793260b
Handle wildcard aliases using podop
2018-09-27 14:53:23 +02:00
kaiyou
0d52364eac
Fix alias resolution through podop
2018-09-27 14:38:10 +02:00
kaiyou
6ba55ee377
Implement the sieve script name resolution pattern
2018-09-27 14:10:53 +02:00
kaiyou
3c725bf634
Only support generating the default sieve script
2018-09-27 08:18:22 +02:00
kaiyou
ca6c0bc8fd
Fix the user sieve script generation
2018-09-27 08:18:03 +02:00
kaiyou
4d25083847
Move sieve script generation to the admin container
2018-09-27 08:11:26 +02:00
kaiyou
cfeaa189f9
Use proper 404 return codes for missing objects
2018-09-27 08:00:31 +02:00
kaiyou
d8365bfbcf
Use simpler routes for Dovecot
2018-09-27 07:55:54 +02:00
kaiyou
7143fb8c47
Implement some basic views for podop
2018-09-26 00:15:03 +02:00
kaiyou
68aa797720
Merge branch 'master' into feat-abstract-db
2018-09-25 21:46:12 +02:00
kaiyou
73ca5fb3d3
Provide a more generic skeletton for postfix virtual lookups
2018-09-24 23:19:06 +02:00
kaiyou
313b79538e
Merge pull request #513 from mprihoda/feature/better-ratelimit-error
...
Return correct status codes from auth rate limiter failure.
2018-09-16 19:58:34 +02:00
Pierre Jaury
5ad02ae2e5
Use a more uniform 'Save' for most form submits, fixes #523
2018-08-01 21:24:13 +02:00
Pierre Jaury
809fe78f82
Add dovecot views to the internal API
2018-07-26 21:40:44 +02:00
Pierre Jaury
28001213d4
Remove the redis-based quota code
2018-07-26 21:39:30 +02:00
Pierre Jaury
76617a3c97
Store the quota status in database
2018-07-26 21:38:21 +02:00
Michal Prihoda
f5e7751835
Return correct status codes from auth rate limiter failure.
2018-07-02 21:41:40 +02:00
kaiyou
74b72375cb
Merge pull request #493 from MFAshby/user_validation
...
Made User and UserSignup validation consistent for the local part of
2018-06-28 14:16:01 +02:00
hoellen
9091e54fda
Hide administration header in sidebar for normal users.
2018-06-25 21:35:40 +02:00
mfashby
0284b6a8e9
Made User and UserSignup validation consistent for the local part of the email address
2018-06-10 15:15:36 +00:00
Pierre Jaury
14687d09ba
Fix announcements for idna domains
2018-06-02 10:59:57 +02:00
Pierre Jaury
1371ba5f5e
Add the keep field to fetch forms, fixes #479
2018-05-30 00:40:50 +02:00
Pierre Jaury
ea658a174d
Fix a typo in the base html template
2018-05-30 00:37:34 +02:00
kaiyou
91e51a24c8
Merge pull request #465 from sanduhrs/feature/463
...
Remove services status page
2018-05-28 22:57:43 +02:00
Thomas Sänger
7d661ab80d
don't require BootstrapCDN for FontAwesome (GDPR-compliance)
2018-05-22 03:33:27 +02:00
Stefan Auditor
6177571e4d
Remove services status localization
2018-04-23 18:59:46 +02:00
Stefan Auditor
b541d4c257
Remove services status sidebar link
2018-04-23 18:56:48 +02:00
Stefan Auditor
e89b32a3f4
Remove services route
2018-04-23 18:55:37 +02:00
Stefan Auditor
ec8e82aaca
Remove services status template
2018-04-23 18:55:13 +02:00
kaiyou
f55e5e26cd
Update messages.po (POEditor.com)
2018-04-22 12:19:35 +02:00
kaiyou
2b96abbef4
Update messages.po (POEditor.com)
2018-04-22 12:15:40 +02:00
kaiyou
af38d5ab0c
Update messages.po (POEditor.com)
2018-04-22 12:15:38 +02:00
kaiyou
fc89b30e8a
Update messages.po (POEditor.com)
2018-04-22 12:15:36 +02:00
kaiyou
791fab688a
Update messages.po (POEditor.com)
2018-04-22 12:15:33 +02:00
kaiyou
c9b0832899
Update messages.po (POEditor.com)
2018-04-22 12:15:31 +02:00
kaiyou
fa1b0ac32c
Update messages.po (POEditor.com)
2018-04-22 12:15:28 +02:00
kaiyou
75f0791965
Update messages.po (POEditor.com)
2018-04-22 12:15:26 +02:00
kaiyou
c91c5c7493
Update messages.po (POEditor.com)
2018-04-22 12:15:24 +02:00
kaiyou
299a654e97
Update messages.po (POEditor.com)
2018-04-22 12:15:22 +02:00
kaiyou
494e52d8f0
Update messages.po (POEditor.com)
2018-04-22 12:15:20 +02:00
kaiyou
3b7014d563
Add dummy spanish and russion languages
2018-04-22 12:13:25 +02:00
kaiyou
be0a0b4ac8
Update translation strings
2018-04-22 12:10:39 +02:00
kaiyou
8bad30cd59
Move the domain MX status to the detail page
2018-04-22 10:15:09 +02:00
kaiyou
7f0447514c
Finish storing the user quota to redis
2018-04-21 17:19:44 +02:00
kaiyou
80893be68b
Add a missing import to dnspython
2018-04-21 16:37:30 +02:00
kaiyou
091369915b
Display the user quota in the admin interface
2018-04-21 15:48:07 +02:00
kaiyou
e13593f29a
Switch to database 2 for rate limiting
2018-04-21 15:07:04 +02:00
kaiyou
62d1a0c104
Add a status field to the domain list
2018-04-21 13:56:20 +02:00
kaiyou
dfaedb76f1
Merge pull request #447 from sanduhrs/feature/446
...
Add a sqlalchemy custom type for unicode to idna conversion of domain names
2018-04-21 11:46:43 +02:00
kaiyou
381e76511d
Add self-service domain registration
2018-04-18 20:34:21 +02:00
Stefan Auditor
c688970b32
Respect user enabled flag in admin authentication
2018-04-16 08:57:35 +02:00
Stefan Auditor
d3064579f4
Respect user enabled flag in basic authentication
2018-04-16 08:57:35 +02:00
Stefan Auditor
92f4858323
Respect user.enabled status in internal authentication
2018-04-16 08:57:35 +02:00
Stefan Auditor
d2c6cecca6
Remove is_enabled method and use the enabled attribute instead
2018-04-16 08:57:35 +02:00
Stefan Auditor
5bfdd75738
Respect user enabled flag on user.login
2018-04-16 08:57:35 +02:00
Stefan Auditor
78f4fa7db9
Add field to ui for user enabled flag
2018-04-16 08:57:35 +02:00
Stefan Auditor
20d6fbae48
Add enabled flag to user model
2018-04-16 08:57:35 +02:00
Scott
2c2a1ed042
Remove stale link to old auto-forward settings. Fixes #450
...
Also update a reference to 'smtp' to use HOST_AUTHSMTP
2018-04-16 08:57:35 +02:00
kaiyou
a51416a4af
Merge pull request #452 from sanduhrs/feature/449
...
Add enabled flag to user model
2018-04-15 23:15:20 +02:00
Stefan Auditor
e843f7ef1f
Respect user enabled flag in admin authentication
2018-04-15 19:53:24 +02:00
Stefan Auditor
c8540ddba7
Respect user enabled flag in basic authentication
2018-04-15 14:02:15 +02:00
Stefan Auditor
6fc22e5432
Respect user.enabled status in internal authentication
2018-04-15 13:43:30 +02:00
Stefan Auditor
733b89bff5
Remove is_enabled method and use the enabled attribute instead
2018-04-15 13:42:19 +02:00
Stefan Auditor
3b66fcada7
Respect user enabled flag on user.login
2018-04-15 13:00:38 +02:00
Stefan Auditor
7139a27bf1
Add field to ui for user enabled flag
2018-04-15 11:35:37 +02:00
Stefan Auditor
f585197e52
Add enabled flag to user model
2018-04-15 11:23:58 +02:00
Scott
e5c25c395f
Remove stale link to old auto-forward settings. Fixes #450
...
Also update a reference to 'smtp' to use HOST_AUTHSMTP
2018-04-14 16:48:08 -05:00
Stefan Auditor
7f5bd98a2e
Add parameters to database field
2018-04-14 13:02:00 +02:00
Stefan Auditor
93d5254b3f
Add another type decorator for idna email support
2018-04-14 13:00:29 +02:00
Stefan Auditor
792c720c13
Save user email domain_name as idna representation
2018-04-13 08:13:26 +02:00
Stefan Auditor
c40e255f3b
Reset relay columns to string
2018-04-12 22:21:28 +02:00
Stefan Auditor
d9ea64fac7
Import idna library and move code a bit upwards
2018-04-12 21:35:38 +02:00
Stefan Auditor
5a7272ff12
Replace other occurences of domain names with idna
2018-04-12 20:30:19 +02:00
Stefan Auditor
1b666cd25b
Add a sqlalchemy custom type for unicode to idna conersion of domain names
2018-04-12 19:07:48 +02:00
kaiyou
db0cd8efb4
Fix the client setup page when not logged in
2018-04-11 22:45:04 +02:00
kaiyou
b4134b7774
Add a client setup page, fixes #342
2018-04-11 21:45:17 +02:00
kaiyou
fa0bda7b69
Merge the auto-forward and antispam settings
2018-04-11 21:28:36 +02:00
kaiyou
3ef4e1f6b7
Add support for recaptcha upon signup
2018-04-11 21:08:59 +02:00
Mildred Ki'Lya
f538e33dcf
Parametrize hosts
...
Allows to use mailu without docker-compose when hostnames are not set up
by docker itself but provided via a separate resolver.
Use case: use mailu using nomad scheduler and consul resolver instead of
docker-compose. Other servers are provided by the DNS resolver that
resolves names like admin.service.consul or webmail.service.consul.
These names needs to be configurable.
2018-01-24 22:54:41 +01:00
kaiyou
d8ebfbe020
Display infinite user quotas correctly, fixes #368
2018-01-16 20:03:07 +01:00
kaiyou
d98f16333a
Display an infinite quota when necessary for users, fixes #345
2017-12-17 15:13:47 +01:00
kaiyou
8d224824ea
Display a conditional button for generation dkim keys, fixes #346
2017-12-17 15:11:08 +01:00
kaiyou
42314d3d75
Remove a remaining rebug print() statement
2017-12-04 21:55:40 +01:00
kaiyou
a4f46ced49
Properly use x-forwarded-proto with redirects in the webui, related to #347
2017-12-04 21:16:08 +01:00
kaiyou
319965a4af
Add a format check for the email localpart when signing up
2017-12-03 19:37:36 +01:00