Commit Graph

562 Commits

Author SHA1 Message Date
Sybren A. Stüvel 1c03ea8dec Don't encode video and don't send uploaded files to GCS when TESTING.
Unittests shouldn't connect to external systems. We could mock GCS and
Zencoder, but that's a lot more work, and takes time to maintain.
2016-07-08 12:34:49 +02:00
Sybren A. Stüvel bfba44e5b8 Merged test_home_project.py and test_bcloud_home_project.py 2016-07-08 12:34:49 +02:00
Sybren A. Stüvel 1c18699de8 Importing werkzeug.exceptions instead of each individual exception 2016-07-08 12:34:49 +02:00
Sybren A. Stüvel 78e4474f94 Disabled uninteresting debug log 2016-07-08 12:32:37 +02:00
Sybren A. Stüvel 0b8aff1054 sync_project_groups: gracefully handle invalid object IDs.
Otherwise a mistake at the CLI will create a bugsnag.
2016-07-08 12:08:52 +02:00
Sybren A. Stüvel f6eab4878f Log ensure_valid_link() stuff to separate logger. 2016-07-08 12:08:01 +02:00
Sybren A. Stüvel 896e2bc147 Override content type before creating file document in MongoDB 2016-07-07 19:05:42 +02:00
Sybren A. Stüvel d357345db6 Missed one more 'theatre_link' 2016-07-07 19:05:14 +02:00
Sybren A. Stüvel a1b26fe911 Removed 'theatre link' from short link info.
The short link should always link to the theatre mode anyway.
2016-07-07 17:00:24 +02:00
Sybren A. Stüvel 0f8cfc89b3 Nodes now have only one short code 2016-07-07 15:41:42 +02:00
Sybren A. Stüvel 3f3e9ac7db Nodes can now be shared with /nodes/<node_id>/share endpoint.
A POST will create a short link (if it doesn't exist already), whereas
a GET will return the short link for the node.

The endpoint will return a dict like:

{'short_code': 'XXXXXX',
 'short_link': 'https://blender.cloud/r/XXXXX',
 'theatre_link': 'https://blender.cloud/r/XXXXX?t'}
2016-07-07 15:17:56 +02:00
Sybren A. Stüvel 2bdfbaea13 Test tearDown: remove all 'application.xxx' submodules from sys.modules
This ensures that the modules are reloaded for every test, for better
test separation.
2016-07-07 14:59:22 +02:00
Sybren A. Stüvel c871089eab Added AbstractPillarTest.{get,post,put,post,delete} utility functions.
These functions set the correct Content-Type header when JSON is given,
add a resp.json() function that also checks the response mime type,
and adds the correct Authorization header.
2016-07-07 14:58:34 +02:00
Sybren A. Stüvel 251f5ac86a Added app.utils.str2id() to convert IDs on URLs to ObjectId.
Raises a BadRequest exception when the ID is malformed.
2016-07-07 14:56:30 +02:00
Sybren A. Stüvel be1deb7eb6 Moved MongoDB index creation to app startup.
At the first request to Pillar, the application will create all missing
indices. This also happens in unittests, so that we get the correct
behaviour for 'unique' indices.
2016-07-07 14:55:07 +02:00
Sybren A. Stüvel d5683afb84 manager command 'setup_db_indices': Adds missing database indices.
This does NOT drop and recreate existing indices, nor does it reconfigure
existing indices. If you want that, drop them manually first.
2016-07-07 12:44:06 +02:00
Sybren A. Stüvel 6a7d3bd972 Removed obsolete node_types_schema 2016-07-07 11:59:28 +02:00
Sybren A. Stüvel ff99134ac4 PEP8 formatting 2016-07-07 11:57:59 +02:00
Sybren A. Stüvel ff8d5c96b7 stream_to_gcs: Return a BadRequest(400) error when content type is missing
We're using uploaded_file.content_type.startswith('image/'), which
fails with an AttributeError if uploaded_file.content_type is None. We
now check for this and properly return info about the missing conten type
to the caller.
2016-07-07 11:11:06 +02:00
Francesco Siddi 782ac9ac1e Disable webm variation creation for video assets
Encoding webm video is very time consuming and currently h264 is
supported by most browsers. Once we switch to a different encoding
backend we can reintroduce it, if needed, along with multiple
resolutions.
2016-07-07 10:42:05 +02:00
Sybren A. Stüvel 694016f58b Fixed issue creating non-sync nodes on home project. 2016-07-06 15:19:41 +02:00
Sybren A. Stüvel d95004e62e Node 'user' property now defaults to the current user ID. 2016-07-06 15:19:28 +02:00
Sybren A. Stüvel 447473303a sync_project_groups: mention user ID in bad/ok group count
Makes it easier to grep & process the output
2016-07-06 14:12:32 +02:00
Sybren A. Stüvel 51a51e5782 sync_project_groups: also support identifying user by user ID 2016-07-06 12:55:40 +02:00
Sybren A. Stüvel 2be94bd504 Reformat 2016-07-06 12:50:07 +02:00
Sybren A. Stüvel 5b60dad831 Added script to add users to admin groups of projects they created.
For now, can only be run on individual users, identified by email address.

./manage.py sync_project_groups user@domain true

Replace 'true' with 'false' to just see the status and not update the DB.
2016-07-06 12:49:51 +02:00
Sybren A. Stüvel 57e2f01153 Bug fix: users loose their project groups after getting role.
The badger service erased the user's groups when assigning subscriber
group membership.
2016-07-06 12:35:16 +02:00
Sybren A. Stüvel 40b29d7d40 Send Blinker signal when user roles change due to a PUT on the user. 2016-07-06 11:53:26 +02:00
Sybren A. Stüvel 3a33475efc Refactored blender_id.validate_create_user()
Semantically still the same code.
2016-07-06 11:53:10 +02:00
Sybren A. Stüvel 91238aacb7 Managing home project permissions when granting/revoking subscriber/demo role.
This is hooked into the badger service using a Blinker signal. This signal
also needs to be sent from a PUT on the user document.
2016-07-06 11:05:24 +02:00
Sybren A. Stüvel 4b1b02318b Explicitly pass the application path to Git.
Without this, it doesn't work on our production environment.
2016-07-05 13:05:47 +02:00
Sybren A. Stüvel def1a3d080 Send the Git revision to Bugsnag
This allows us to use the "ignore until a new version is deployed" feature.
2016-07-05 13:01:19 +02:00
Sybren A. Stüvel dda0e2c868 When creating user from BlenderID, full_name defaults to username. 2016-07-05 12:36:32 +02:00
Sybren A. Stüvel 8a0fa8afd6 Log error when unable to create new user in mongodb. 2016-07-04 13:19:02 +02:00
Sybren A. Stüvel 7e85b32fc7 Gracefully handle missing node types when validating custom fields. 2016-07-04 12:36:54 +02:00
Sybren A. Stüvel b507216d23 Increased log level for dynamic property validation errors 2016-06-30 18:38:57 +02:00
Sybren A. Stüvel 27d6289f17 Fixed KeyError in user_has_role() 2016-06-30 18:10:11 +02:00
Sybren A. Stüvel 1cd201dc89 Fix encoding issue in mng.py sync_role_groups 2016-06-30 17:48:13 +02:00
Sybren A. Stüvel 387cee227a Set default picture on image asset and texture nodes. 2016-06-30 11:55:36 +02:00
Sybren A. Stüvel c3e9d43838 Also deduct asset node content type on POST. 2016-06-30 11:55:20 +02:00
Sybren A. Stüvel 45a5019ba4 Embed project id/name/url in latest assets 2016-06-30 11:00:25 +02:00
Sybren A. Stüvel b601644cca Update parent node's _updated when updating/creating an asset 2016-06-29 16:44:00 +02:00
Sybren A. Stüvel 3bb0e588d8 Fixed unittests for disabled AB-testing 2016-06-29 16:43:41 +02:00
Sybren A. Stüvel 1e404351b0 Allow uploading files by any logged-in user, regardless of role 2016-06-29 15:33:56 +02:00
Sybren A. Stüvel c9337b8d15 Taken out AB-testing for home project.
Home project is available to everybody!
2016-06-29 11:54:58 +02:00
Sybren A. Stüvel 4c73f98047 Revert "Tiny typo in comment (iff instead of if)"
'iff' means 'if and only if', it's not a typo.

This reverts commit 5355e4e359.
2016-06-28 15:11:11 +02:00
Pablo Vazquez 5355e4e359 Tiny typo in comment (iff instead of if) 2016-06-28 15:07:56 +02:00
Pablo Vazquez 5a4d98b352 Include parent in the projection for latest_assets 2016-06-28 15:07:21 +02:00
Sybren A. Stüvel 036d7a1b1e Removed some superfluous debug logging. 2016-06-28 15:01:11 +02:00
Sybren A. Stüvel 57cf9a3547 Prevent home project without URL. 2016-06-28 15:01:02 +02:00