100 Коммитов (538d46760414eb995712e192afb7858f4ef4e43e)

Автор SHA1 Сообщение Дата
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.
9 лет назад
Pierre Jaury c007b37df7 Display error messages when Docker is unreachable properly, related to #78 9 лет назад
Pierre Jaury acf4addae0 Add initial translations, fix #37 9 лет назад
Pierre Jaury c37ad3557f Missing translations 9 лет назад
Pierre Jaury 3ade5641d9 Fix the confirmation form 9 лет назад
Pierre Jaury 0beeeade41 Enable Babel for all views 9 лет назад
Pierre Jaury a3ad45c8ac Use babel for base views 9 лет назад
Pierre Jaury fe035114e9 Enable Babel for forms 9 лет назад
Pierre Jaury d3436668d8 Enable Babel 9 лет назад
Pierre Jaury 676a9a5d2c Do not redirect users to admin pages, fix #74 9 лет назад
Pierre Jaury c028a3799d Write an equivalence test for domains, fixes #65
(cherry picked from commit 144f427088acf9439fd9971898296137b8339f9a)
9 лет назад
kaiyou 1ae8fe6af1 Merge pull request #73 from diresi/junk_filter
dovecot: use rspamd X-Spamd-Result percentage to evaluate spam
9 лет назад
Pierre Jaury c02faada94 Remove deprecated references to flask_wtf.Form, fix #72 9 лет назад
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%
9 лет назад
Pierre Jaury 525089a531 Do not leak information about existing domains or users 9 лет назад
Pierre Jaury 2cb4a44b5a Display fetchmail errors to the user, fixes #23 9 лет назад
Victor Felder 97d952d7f1 Fix a typo 9 лет назад
Pierre Jaury e24da96e58 Add some documentation to access decorators 9 лет назад
Pierre Jaury 09bec055fd Fix domain deletion permissions 9 лет назад
Pierre Jaury c1f9b61dac Add a simple permission audit script 9 лет назад
Pierre Jaury f8dcef22ef Fix the manager deletion behaviour 9 лет назад
Pierre Jaury f541a951de Remove obsolete utils module 9 лет назад
Pierre Jaury 713318f097 Clean imports and remove calls to the utils module 9 лет назад
Pierre Jaury ee9a416696 Implement the decorator-based access control for all views 9 лет назад
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.
9 лет назад
Pierre Jaury 3ea3bc1d8e Enforce permission checks for admin management 9 лет назад
Pierre Jaury e3197f9156 Have the admin interface listen on localhost 9 лет назад
Pierre Jaury 8601d5b8db Fix #49 when deleting a global admin 9 лет назад
Pierre Jaury 0d3c75aa89 Fix a migration issue with wildcard aliases 9 лет назад
Pierre Jaury 84769cab3e Switch to form-based confirmations, fixes #20 9 лет назад
Pierre Jaury 5a69ada041 Add an action confirmation form, related to #20 9 лет назад
Pierre Jaury 58337d7dd6 Set a proper default for spam thresholds 9 лет назад
Pierre Jaury 1ce0bf2ef7 Update the user settings view with a slider 9 лет назад
XYunknown 6d4243ec66 Adding SQL Like format for aliases 9 лет назад
Pierre Jaury b3d7b657ab Remove deprecated flask.ext imports 9 лет назад
Pierre Jaury 9640d59aca Fix #25, serve static resources locally 9 лет назад
Pierre Jaury 689c022a4a Get back to a single forward destination 9 лет назад
Pierre Jaury 678a5c8065 Fix #22, use ellipsis for overflowing text 10 лет назад
Pierre Jaury c07211677c Fix the default value for comma separated lists 10 лет назад
Pierre Jaury 163494cb78 Use readonly attribute instead of disabled 10 лет назад
Pierre Jaury 6af7a07e77 Avoid having an empty entry in destionation fields 10 лет назад
Pierre Jaury 5581f1b0d9 Related to #19, fix the alias creation page 10 лет назад
Pierre Jaury dcaf3e3473 Fix #30, use cascade deletion on domains 10 лет назад
Pierre Jaury 49a1281976 Display the alias list properly 10 лет назад
Pierre Jaury 5f36e6f4f2 Related to #19, implement domain specific field and database type 10 лет назад
Pierre Jaury aace1c2d78 Get back to serving CDN assets, related to #25 10 лет назад
Pierre Jaury 1673631e69 Fix the columns in the fetch list 10 лет назад
Pierre Jaury f8a220e72a Serve local assets only 10 лет назад
Pierre Jaury 21bec865b3 Fix permission management when editing/deleting fetches 10 лет назад
Pierre Jaury 58ec3597ab Fix te DKIM DNS example 10 лет назад