Sybren A. Stüvel
72ca0fe69c
Add .blend to mimetypes module at import of file_storage.py
...
Previously we added this in override_content_type() when
`not mimetypes.inited`. However, it seems that this is never performed
when running at production, probably due to some WSGI container also using
the mimetypes module.
2016-05-09 15:31:43 +02:00
Sybren A. Stüvel
82608e60d3
Fixed bug for project['node_type'] permission fetching.
2016-05-09 14:33:55 +02:00
Sybren A. Stüvel
a90f13486a
Fixed typo call to check_permissions()
...
Also added unit test to cover the function containing the typo.
2016-05-09 12:52:44 +02:00
Sybren A. Stüvel
4316c4d450
moved modules.mongo_utils to utils.mongo
2016-05-09 11:41:53 +02:00
Sybren A. Stüvel
369f75c689
Allow project creation by users with role=demo
2016-05-09 11:38:26 +02:00
Sybren A. Stüvel
8d273de4d8
Reduced noisy logging when auth tokens have expired.
2016-05-09 11:28:12 +02:00
Sybren A. Stüvel
d57bad36d5
Revert production hack, as it's no longer necessary.
2016-05-09 11:21:45 +02:00
Sybren A. Stüvel
042b744b6e
Handle JSON request to /p/create
...
The Pillar Python SDK posts JSON, so we should handle that too.
2016-05-09 11:16:20 +02:00
Sybren A. Stüvel
8bb98aa280
Merge branch 'production'
2016-05-07 00:56:27 +02:00
Sybren A. Stüvel
3a4754d28b
Hot fix for the fix.
2016-05-07 00:39:54 +02:00
Sybren A. Stüvel
666a5842a5
Fix for setting is_private on new permission-less projects
2016-05-06 19:11:58 +02:00
Sybren A. Stüvel
402981a6b1
Small fixes
2016-05-06 19:11:21 +02:00
Sybren A. Stüvel
2cdde04a8b
Small code clarifications
2016-05-06 18:28:08 +02:00
Sybren A. Stüvel
899497b3b1
Implemented merging of permissions.
...
Permissions are now merged between project, node type and node, instead
of having the lower-level permissions override the higher-level
permissions.
2016-05-06 18:15:50 +02:00
Sybren A. Stüvel
4dc5b4dbbf
Added manage.py project_stats command.
...
It counts file size, nr of nodes and nr of top-level nodes per project.
2016-05-06 17:41:00 +02:00
Sybren A. Stüvel
879a18ee68
Added 'manage.py refresh_file_sizes' to update all aggregate sizes.
...
Computes & stores the 'length_aggregate_in_bytes' fields of all files.
2016-05-06 12:43:45 +02:00
Sybren A. Stüvel
410ecac78c
Reformatted manage.py
2016-05-06 12:43:45 +02:00
Sybren A. Stüvel
6f193da89d
Added entry point /p/<project_id>/quotas
...
At the moment this entry point only returns the total file size of all
files belonging to the project. It can be extended to return more info,
such as nr. of nodes/groups/etc.
2016-05-06 12:43:45 +02:00
Sybren A. Stüvel
bbc30b9d99
Compute & store aggregate file size.
2016-05-06 12:43:45 +02:00
Sybren A. Stüvel
1bb2979428
Slight improvement to project group mgmnt tests
2016-05-06 12:43:45 +02:00
Sybren A. Stüvel
a2ce18196a
Simplified permissions for projects.
...
Instead of the additional 'is_private' field, we now just use
the permission system and set/remove world GET permissions.
'is_private' is still kept for backward compatibility and possibly
easy querying for public projects, and is always set based on
world GET permissions.
2016-05-06 12:42:16 +02:00
Francesco Siddi
758273edab
Return target user after adding or removing it from project
2016-05-06 11:56:52 +02:00
Francesco Siddi
2580466469
User management for projects
...
Support for retrieving user of a project.
2016-05-06 10:30:05 +02:00
Francesco Siddi
ffa98d72e6
Sort fetched nodes by creation date
2016-05-04 18:28:45 +02:00
Francesco Siddi
0b1664a83c
Add project_manage_users endpoint
...
Manage users of a project. In this initial implementation, we handle
addition and removal of a user to the admin group of a project. No
changes are done on the project itself.
2016-05-04 17:04:10 +02:00
Francesco Siddi
d93d1091f9
Fix for indexing if project is private
2016-05-04 15:55:20 +02:00
Sybren A. Stüvel
7b0c037529
Debug-log the subclient ID too
2016-05-04 14:06:27 +02:00
Sybren A. Stüvel
c248e8c11b
Moved modules/latest/__init__.py to modules/latest.py
2016-05-04 09:34:58 +02:00
Francesco Siddi
fb0629dcb0
Make logging less verbose for blender_id in production
2016-05-03 15:19:29 +02:00
Francesco Siddi
80919dacb3
New add_license_props in manage.py
2016-05-03 14:47:33 +02:00
Sybren A. Stüvel
d0d8b7d11d
Added missing unit test for content type overrides.
2016-05-03 11:23:26 +02:00
Sybren A. Stüvel
0389b05b14
Save temporary files in STORAGE_DIR
...
This makes it trivial to save uploaded files to STORAGE_DIR, as the
temporary files Flask saves them in are already there.
2016-05-03 11:22:54 +02:00
Sybren A. Stüvel
0580d3fa65
Removed some whitespace
2016-05-03 11:11:36 +02:00
Sybren A. Stüvel
54a2176d7c
Override browser-given content type for certain types.
...
If the browser gives us audio/xxx, video/xxx or image/xxx, we just use
it. Otherwise the mimetypes package is used to guess the mime type
based on the file's extension.
Also ensures the content type of the file is updated in MongoDB. Does
NOT update any nodes that link to this file.
2016-05-03 10:57:56 +02:00
Sybren A. Stüvel
950a12048b
More and more and more projections and embeddings
2016-05-02 19:46:05 +02:00
Sybren A. Stüvel
d4e5fab087
Moar projections!
2016-05-02 19:42:35 +02:00
Sybren A. Stüvel
eaa67d1271
Embed comment parents
2016-05-02 19:17:26 +02:00
Sybren A. Stüvel
b18675e746
New projects are marked private by default.
2016-05-02 19:07:31 +02:00
Sybren A. Stüvel
a216e5c00d
Special entry points for getting latest assets etc. from public projects.
2016-05-02 19:07:21 +02:00
Sybren A. Stüvel
3e8494e3bf
Use soft-delete for nodes
2016-05-02 17:06:59 +02:00
Sybren A. Stüvel
b9367f9944
Removed node_types Eve collection
2016-05-02 17:05:21 +02:00
Sybren A. Stüvel
445bf601dc
Don't double-x mime types
2016-05-02 17:04:18 +02:00
Sybren A. Stüvel
6394d83da2
Prevent video processing for non-admin users.
2016-05-02 16:21:06 +02:00
Sybren A. Stüvel
b4327f22e8
Disallow node status 'deleted' for node type asset
2016-05-02 15:57:26 +02:00
Sybren A. Stüvel
6c7ad6f6f0
Marked Flask as primary requirement.
2016-05-02 15:38:02 +02:00
Sybren A. Stüvel
24c5936751
Fetch the new etag after updating file links.
...
It's stupid and goes to MongoDB again, but it works for now.
2016-05-02 15:38:02 +02:00
Sybren A. Stüvel
42ff638b48
Allow cross-site requests
...
See https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
2016-05-02 15:37:58 +02:00
Sybren A. Stüvel
57375bd0c4
Gracefully handle bad ObjectId passed on URL
2016-05-02 13:23:52 +02:00
Sybren A. Stüvel
53aa0dae3b
Deducting asset node content type from file content type.
2016-05-02 12:30:52 +02:00
Sybren A. Stüvel
32ad39aeb1
Moved node management to modules/node.py
...
No semantic changes, all should work identically as before.
2016-05-02 11:35:17 +02:00