Age | Commit message (Collapse) | Author |
|
|
|
There is still a weird mix between what's in migrations and what's in
schema.sql, but at least they should try to be mostly in sync.
Author: Jelte Fennema-Nio <github-tech@jeltef.nl>
|
|
Without this you would get an error like this:
Failed to parse mbox:
b'/bin/sh: 1: Syntax error: "(" unexpected\n'
This especially matters when loading files downloaded with a browser,
since those often contain (1) or (2) if a file with the same name was
downloaded earlier.
|
|
Previously we'd generate links for each individual email, when clicking
the link on the emails. This generates a huge number of URLs that
contain basically the same thing, which has an adverse effect on both
caching and (stupid) bots. So round it off to even days which puts at
least some level of a cap on it.
Also, when a hit comes in that specifies the full hour, redirect it back
to the rounded-off value.
|
|
Unfortunately at this time we still cannot drop the jquery dependency as
it's needed by the menubar from bootstrap.
|
|
This makes a tiny javascript run to convert it into a POST and then
receive that POST. The idea behind this is to remove the links from view
of crawlers (hello AI bots!) that completely ignore robots.txt, causing
lots of redirect chains on account of logins.
We still allow GET requests on those endpoints, as there are external
links pointing to them as well as people having scripts. But those are
at least to fewer emails than all.
|
|
At least GMail will show the Message-ID including the < > characters.
|
|
|
|
This was missed when pgweb@8b420bfd4 was added.
Reported-by: Sehrope Sarkuni <sehrope@jackdb.com>
|
|
|
|
When an attachment is downloaded, add the http header
X-attached-to-message with the message-id of the message that the
attachment belongs to.
|
|
|
|
pep8 has been a deprecated name for a long time...
|
|
|
|
|
|
We're supposed to feed django bytes, and by feeding it a string it got
converted bytes->string by the mail end and then string->bytes by
django. Which promptly blew up on bad encodings. By keeping it as bytes
all the way, the problem is ignored.
|
|
Too many browsers have changed the wrong way and doesn't actually prompt
people properly, which means they try to log in with a bunch of random
things, none of them being "archives/antispam". So instead, send them
off to do a community login, now that we have support for this (which
was added when we added message re-sending).
If the request comes in with the authentication header already on it and
it being a valid archives/antispam combination, keep allowing that so we
don't break scripts and plugins that we don't have to break.
|
|
This was broken in the python 2->3 migration, but is apparently an
uncommon enough case that it wasn't properly spotted until now.
Reported and pointers in the right direction from Andres Freund
|
|
This has a default=False set in the django model, but django does not
propagate that into the database which would cause the insert of new
lists to fail with a not-null-violation.
Spotted by Célestin Matte
|
|
Add the required authentication backend configuration and include an
example for how to set up the pgauth plugin.
|
|
Search forms currently point to the hardcoded address of www.postgresql.org.
Add a parameter in the settings to make it possible to configure the domain
hosting the /search/ function.
Originally from Célestin Matte, but in the end not his patch
|
|
|
|
This section is expected by pglister_sync.py but missing from the sample file
|
|
|
|
Spotted by Célestin Matte
|
|
Allows the use of IP ranges in CIDR format in the SEARCH_CLIENTS
parameter. Individual addresses can still be specified and continue to
work like before.
|
|
Back in 2018, commit 4d159ca accidentally included unrelated
functionality which was not completed. This causes the database to be
out of sync with the models defined in the code.
This commit reverts those parts that were not supposed to be included
and leaves the changes that actually were. The code can be re-added once
completed...
Spotted by Célestin Matte
|
|
The lack of this would result in a 404 for any users who clicked a
resend link when (1) they were not logged in, and (2) the messageid
cotnained a plus character. This would then end up getting unescaped
one too many times in the authentication flow and came out as a space on
the other end instead of a plus.
Reported by Justin Pryzby (and several others, but Justin was persistant
in tracking down good examples)
|
|
When suggesting which lists people should use first, we should use the
recommended name for the list.
|
|
This was done in pgweb at a0583746, but should be done here as well to
serve the browsers with what they primarily ask for.
|
|
There were cases that the fixed width for this box would cause the
thread selector to explode outside of the email header table in the
thread viewer. We should keep the select dropdown itself to the width
of the overall list of email addresses in the chain.
|
|
|
|
Without the proper quoting, having a + sign in a message-id would get
unquoted to a space before sending the user off to the community
authentication, which in turn would then redirect back to the incorrect
url.
Reported by Noah Misch
|
|
The specification is a bit unclear on which it should be and completely
unclear about what should go in the field, but at least it seems most
implementations use article:author rather than og:article:author, so try
changing it.
Also change og:published_time to be article:published_time.
|
|
This makes for nicer "previews" on for example twitter when posting
links.
Suggested by Andres Freund
|
|
This includes support for receiving updates through the push api.
|
|
|
|
|
|
|
|
Rename title above Tips to be about Tips, add paragraph talking about
how to Unsubscribe.
|
|
This was pointing to the Wiki page, which was pointing to
a different page on .org
|
|
Previously overwriting was only allowed from reparse_messages.py, in
which case it would only reparse the existing message. For the usecase
of overwriting the raw contents and then also reparsing the result, the
--overwrite switch can now be passed to load_messages.py.
|
|
If the next URL contained a + django would helpfully change that into a
space, which broke things further down the chain. So put back this
escaping, in the hope that the redirect will be correct down the road.
This fixes is for spaces, let's hope it doesn't instead break it for
something else.
|
|
It seems older django implicitly added a bytes() around bytea fields
returned from psycopg2. The actual change happened around the python3
move, but django painted over the differences so we didn't realize it
needed to be changed.
|
|
|
|
|
|
|
|
|
|
Timeout error is better than hanging forever. Set a timeout for 30
seconds which is with a big margin longer than should ever be needed.
|
|
Broken in python3 migration, shows how often we have load errors these
days.
|