Commit Graph

1172 Commits

Author SHA1 Message Date
eca5f48d41 Fix project_blog_archive pagination
Was missing the 'page' argument.

Fixed by Dr. Sybren
2017-10-05 17:32:55 +02:00
73b50556be Added blog archive.
May still need some style tweaking.
2017-10-05 17:32:55 +02:00
2603c4f44f Deduplicated blog templates by using macros. 2017-10-05 17:32:55 +02:00
f17453ba10 Added 'operations hash_auth_tokens' CLI command. 2017-10-05 13:04:44 +02:00
c57aefd48b Hash authentication tokens before storing in the database. 2017-10-05 12:57:16 +02:00
e9233ff7c0 Introducing embed_project
By specifying the 'embed_project' argument, the node's Project will be fetched and embedded in the document. This is useful in specific cases, where a project property needs to be accessed when rendering the view_embed template.
2017-09-30 22:13:10 +02:00
2d01cd8761 Simplified posts_view a bit
Removed some redundancy, avoided rendering attachments for posts that'll
never be shown, and made the flow a bit clearer.
2017-09-29 10:45:29 +02:00
45a44d08eb Don't manually construct JSON as strings, just use dicts. The modernity! 2017-09-29 10:45:29 +02:00
ddc52b969e Make it possible for node types to have a 'custom view'
This 'custom view' means that the URL to view the node (as returned by
url_for_node(…)) cannot be loaded via XHR and embedded in the project
viewer, but should rather be used as the actual browser URL instead.

Currently only blogs use this.
2017-09-29 10:45:29 +02:00
8ad2ee8729 Registered 'node finder' for blog nodes. 2017-09-28 17:47:41 +02:00
d160999535 Removed unused import 2017-09-28 17:46:34 +02:00
6a541e0662 Improved bugsnag reporting
- Include release stage, which should be 'production' or 'development',
  and gets postfixed by '-debug' when running in debug mode.
- Properly logging remote IP address when proxied through HAProxy;
- Log user ID, email, username, roles, and capabilities;
- Remove authentication tokens from logged session;
- Log request data and JSON separately.
- Added request endpoint.
2017-09-28 13:28:19 +02:00
bc5a8fba61 Prevent node edit form display if PUT is not allowed for the node 2017-09-20 16:40:06 +02:00
bd976e6c2e Fixed user switching. 2017-09-19 13:38:48 +02:00
9cce441f6c Removed unused code 2017-09-19 13:38:30 +02:00
b98771f067 Improvements to image thumbnailing
- Optimize JPEGs and increase quality from 75 to 95
- Don't always convert to RGB, first check if RGBA and save as PNG optimized

Thanks to Dr. Sybren and Francesco for review and feedback
2017-09-17 21:49:55 +02:00
Dalai Felinto
7d48c02fa3 Expand user schema to support extension_props 2017-09-17 00:25:09 +02:00
1177f516ba Set status as 'published' when creating a blog
If a blog is not set as published it won't be visible in the navbar.
2017-09-16 19:20:12 +02:00
2d18057c6e Added DB index for latest assets/comments 2017-09-15 17:09:15 +02:00
970376ed56 Removed debug print 2017-09-15 17:04:23 +02:00
e2ea8d491b Added a bit of input validation 2017-09-15 16:50:27 +02:00
62954ac157 Latest assets/comments: using Mongo aggregation instead of Python code 2017-09-15 16:47:40 +02:00
1c70d80b99 Removed unused imports 2017-09-15 15:26:43 +02:00
dc50d6e941 Add more logging to find cause of KeyError
There can be a KeyError accessing permission['methods'], but our current
logging doesn't provide enough information as to determine when this
happens. Rather than bluntly fixing the issue, I added logging to try and
find out how we get a 'methods'-less permission dict in the first place.
2017-09-15 11:02:31 +02:00
8377dc63c0 Fix attribute error accessing response.text
The response object *should* be a requests.Response object, which *should*
have a .text property. However, there are situations where this is not the
case, and in those cases we now won't produce an AttributeError.
2017-09-15 10:06:06 +02:00
54bb506e10 Orphan finder: also interpret 24-char hex strings as ObjectIDs
This is necessary as some dynamic node properties have ObjectIDs saved
as strings.
2017-09-14 17:43:23 +02:00
d4facbf2e3 Orphan finder: store the orphan-files.txt file in STORAGE_DIR
This allows running the orphan finder inside a docker container.
2017-09-14 17:34:02 +02:00
ddc8fc0f5e Clarify celery beat schedule a bit 2017-09-14 17:15:11 +02:00
82d2921424 Added support for periodic Celery tasks.
You have to run "manage.py celery beat" for this to work too. Run
"manage.py celery beat -- --help" to get CLI option help.
2017-09-14 16:00:59 +02:00
5d137ac997 Added Celery task for refreshing file links
This includes a CLI command to kick off a single run for the Celery task.

This does *NOT* include a check to see whether the task is already running!
2017-09-14 15:12:25 +02:00
b06e17acf0 Added a little reminder about what to do when you add a Celery module 2017-09-14 15:10:54 +02:00
c272b5d4bb refresh_backend_links CLI: don't convert str → int multiple times 2017-09-14 15:10:32 +02:00
eba28b4eb4 File link refresh: report on every N refreshed links
This makes it easier to see what the Celery worker is actually working on
when refreshing a large number of links.

It'll report on every N refreshed links, where N = link_count/25 but
clamped to N ∈ [5, 100]
2017-09-14 15:10:09 +02:00
44f473221f File link refresh: ignore soft-deleted files 2017-09-14 15:06:37 +02:00
3be47056a0 Orphan finder: drop the per-project finding
Overall finding is much faster, at the expense of a bit more RAM.
2017-09-14 12:18:10 +02:00
be6746f7ab Fixed bug when parsing node without content type property 2017-09-14 12:09:54 +02:00
8cb506731f find_for_other: fail early when no project is given 2017-09-14 12:08:32 +02:00
e09649586f find_url_for_node: fail early when node has no valid project 2017-09-14 12:08:08 +02:00
230c15d51c Fix snag that happens when PUTting a user document without roles key. 2017-09-14 11:23:35 +02:00
c4a765e73b Change url of EXAMPLE_PROJECT
This prevents tests from breaking as we start implementing the concept of 'main' project.
2017-09-13 23:30:23 +02:00
18eb84fa9d Log capabilities at DEBUG level. 2017-09-13 16:36:36 +02:00
1a505bb0a2 Work around bugsnag issue
3263f0a551 didn't fix it in production.
2017-09-13 16:36:29 +02:00
8aa6bb61dd Slightly nicer initialisation of Bugsnag 2017-09-13 16:02:48 +02:00
f89bec5089 Allow <pre> tags in comments
This is useful for code blocks.
2017-09-13 15:34:36 +02:00
896784a351 Clear session when token is invalid
Before this, the user's authentication token would still be stored in
the session even when it's found to be invalid. This caused a login
action to fail, but not in such a way that we would redirect to the login
page of Blender ID. Rather, it would keep you not logged in. By clearing
the session we're sure that the invalid token is forgotten, and the next
request will handle the login properly.
2017-09-13 15:23:38 +02:00
6488f4677e Be more graceful when URLer service isn't configured properly.
Errors are still logged, but find_url_for_node() will just act as if the
node doesn't exist when the URLer authentication token is invalid.
2017-09-13 15:22:04 +02:00
f650835c07 Orphan finder: soft-delete orphan files
This uses the orphan-files.txt file output by find_orphan_files() to
mark those files as deleted. This allows for a two-stage approach, where
file IDs are found on one machine (against a read-only MongoDB slave, for
example) and soft-deleted on another machine (against a writable master).
2017-09-13 14:05:28 +02:00
33feaa81ca Orphan finder: refuse to find orphans when orphan-files.txt exists. 2017-09-13 14:05:28 +02:00
16bf193b0e Added soft-delete to the files schema.
This allows us to soft-delete orphan files, at least until we know
that the orphan file detection is solid and can really be trusted.
2017-09-13 14:05:28 +02:00
ce59bc3335 Orphan finder: write file object IDs to orphan-files.txt 2017-09-13 14:05:28 +02:00