Commit Graph

1336 Commits

Author SHA1 Message Date
243442694c Log warning when someone is denied a project sharing action
This indicates that the web frontend showed something that wasn't allowed.
2017-10-25 14:59:17 +02:00
a4addbfd22 Log as error when project admin group isn't properly configured. 2017-10-25 14:58:02 +02:00
ed55a73d04 VideoJS: Upgrade and stuff
* Upgrade to the latest stable version 6.2.8
* Move JS files to blender-cloud
* Introducing Hotkeys support (a'la YouTube)
* Introducing Loop button (and a way to easily add new buttons)
* Fix Analytics plugin to work with the VideoJS 6
* Minor style tweaks to work with the latest update
2017-10-24 12:49:39 +02:00
53fe047bca Fix bug in getting Blender ID error response 2017-10-17 12:44:26 +02:00
d9c3705c47 Fix tuples in existing session['blender_id_oauth_token']
In a past version of Pillar we accidentally stored tuples in the session.
Such sessions should be actively fixed.
2017-10-17 12:40:33 +02:00
88ffd64706 get_blender_id_oauth_token() now consistently returns a str
Before it could return either of str, tuple, or None.
2017-10-17 12:16:56 +02:00
a897282400 Added some type checks before assigning to session['blender_id_oauth_token']
There were some sporadic TypeErrors where the session var was set to a
tuple instead of a string; this is a way to figure out where that happens.
2017-10-17 12:16:20 +02:00
cfbb05530a Taken unrelated code out of try-body.
The try-body should only contain code that can actually raise the caught
exception.
2017-10-17 12:14:12 +02:00
72f440f509 Fix AttributeError
Exceptions aren't guaranteed to have a 'message' attribute. It does have
'args', but str(ex) is probably more useful as it's likely to include
the exception type.
2017-10-17 11:32:25 +02:00
9c3667b51f Include HTTP method in bugsnag report 2017-10-17 11:32:25 +02:00
3bcf4eaebd Icons
New: pi-social-youtube, pi-social-reddit, pi-moon, pi-off
Replaced: pi-spin, pi-comment, pi-download
Removed: pi-log-in, pi-log-out, pi-circle-notch
2017-10-14 03:15:12 +02:00
be4ce024f4 Introducing public and private extension_props for users
- public: they will be visible to the world (for example as result of the User.find() query)
- private: visible only to their user
2017-10-06 00:13:22 +02:00
98527c72f4 Support for extra_template_args in node view
This allows for wrapping the view function in another function which will provide additional args. Originally implemented in order to allow Dillo post view to provide the Project object to the view_embed template.
2017-10-05 23:46:24 +02:00
053e681d00 Create MongoDB index on tokens.token_hashed 2017-10-05 19:40:41 +02:00
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