Commit Graph

211 Commits

Author SHA1 Message Date
cbe182a298 Gravatar: support None email addresses 2017-05-18 15:46:02 +02:00
59a95450e5 Updated Eve, Flask, and Werkzeug. Adjusted code to make Pillar work again.
Eve     : 0.6.3   → 0.7.3
Flask   : 0.10.1  → 0.12.2
Werkzeug: 0.11.10 → 0.11.15

Also updated some secondary requirements.
2017-05-18 15:46:02 +02:00
ad9a981cda Added p.a.users.add_user_to_group() function 2017-05-12 13:55:55 +02:00
7c5aef033d Some more checks on p.a.project.utils.get_admin_group_id() 2017-05-12 13:55:55 +02:00
c66a6e67c8 Added p.a.project.utils.user_rights_in_project()
This returns the allowed HTTP method for the current user in the given
project. This is used for access control on Flamenco, for example.
2017-05-10 12:09:48 +02:00
a139e8c41a Added p.a.projects.utils.get_admin_group_id() 2017-05-10 12:09:09 +02:00
ee7af393a0 Use annotations to declare types (instead of docstring) 2017-05-10 12:08:45 +02:00
319f815985 Some more logging in pillar.api.blender_cloud.subscription.update_subscription 2017-05-10 12:04:34 +02:00
c77a6b9d21 More logging in pillar.api.service.do_badger() 2017-05-10 11:15:29 +02:00
c854ccbb4b Generic PATCH handler class.
A class-based approach is easier to extend than the function-based approach
used in the nodes. That one is still there, though -- might look at it
at a later time. This handler is primarily for Flamenco.
2017-05-09 14:08:35 +02:00
69d7c5c5ce Allow service accounts to be email-less
This removes the ability of updating service accounts through the CLI
(something we never used anyway), now that service accounts cannot be
uniquely identified by their email address.
2017-05-05 14:34:18 +02:00
095f1cda0c Added "Switch user" functionality.
The user isn't logged out until the new user logs in. This allows you to
click on "Log in as different user", hit the back button, and still be
logged in.
2017-05-05 12:56:19 +02:00
b1b91a7b29 Timeout (10s) on store API calls + better exception handling
We now log connection errors, timeouts, and other Requests errors, and
return None so that the login flow of the user can continue.
2017-05-05 12:55:05 +02:00
379d40837b Fixed issues logging in.
The API call to /api/bcloud/update-subscription is now performed via the
SDK, to ensure proper authentication. Also streamlined some other code.
2017-05-05 10:29:16 +02:00
10a40ddabd Make Blender ID URL work with live URL too 2017-05-04 18:29:11 +02:00
118de12712 Always return a HTTP response 2017-05-04 18:24:08 +02:00
1a54b723aa Reworked subscription/demo role management from web to API level.
In the old situation, users had to be able to change their own roles. This
is inherently insecure.
2017-05-04 17:49:18 +02:00
d0557445cd Fix privilege escalation leak
A PUT request on /api/user/{user-id} by the user themselves would allow
too much, and would allow self-granting of roles (including admin),
group membership (so join any arbitrary project) and pretend to be
service accounts.
2017-05-04 12:48:30 +02:00
1ad3e7910c Upgrade algoliasearch 2017-04-11 12:08:57 +02:00
bd3f8d597a Allow upload of videos > 1080p
Videos that are larger than 1920x1080 pixels are scaled down so that they
fit that size. Care is taken to keep the width a multiple of 16 pixels and
the height a multiple of 8.
2017-03-31 14:52:58 +02:00
c711a04e6c Added some type annotations (no functional differences) 2017-03-31 13:14:07 +02:00
1cb7a92e40 Removed old mock-EncoderJob and replaced it with a dict
The real value is a dict too, anyway.
2017-03-31 13:12:08 +02:00
fcaa4fb936 Upgraded VRViewer:
- upgraded vrviewer to latest master (ffbc9ff4bf0c550cc79003ec188ca16e9e83c31e)
- added some notes on how to upgrade to the readme
- added support for setting default yaw angle
- added support for float properties
2017-03-28 16:04:26 +02:00
c02c6d89b0 Removed unused import 2017-03-22 16:43:04 +01:00
6b526f6b53 Fixed bug in local file storage URL generation. 2017-03-22 16:05:38 +01:00
cce388049d Big refactoring of file storage handling
- Moved pillar.api.utils.{gcs,storage} to pillar.api.file_storage_backends
- Implemented GCS and local storage using abstract Bucket and Blob classes
- Removed file processing from the Blob class, and kept it in the
  file_storage/__init__.py class. That way storage and processing are
  kept separate.
2017-03-22 15:49:56 +01:00
fdfdd38c38 Removed route for direct GCS storage browsing 2017-03-22 15:49:52 +01:00
56b631d4a2 Added type annotations 2017-03-22 15:49:52 +01:00
6eadc09c10 Use __init_subclass__ to register storage backends
See https://docs.python.org/3.6/whatsnew/3.6.html#pep-487-simpler-customization-of-class-creation
2017-03-22 15:49:52 +01:00
1f3d699a0c Ran 2to3 on pillar/api/utils/storage.py 2017-03-22 15:49:52 +01:00
0eb2f17624 Raise exception on not-implemented methods, instead of just pass'ing 2017-03-22 15:49:52 +01:00
47eba6786a Renamed 'file_in_storage' to 'blob' 2017-03-22 15:49:52 +01:00
ae5009c9ef Python 3.6: Fixed issue with gravatar function
Hashing of string object doesn't work. Also added a deprecation warning
that pillar.api.utils.gravatar should be used; pillar.web.utils.gravatar
is just a copy.
2017-03-22 15:49:51 +01:00
dcdcd99393 Python 3.6 compatibility: random bits & bcrypt
Switched from Sybren's RSA library to the new stdlib module 'secrets' to
generate secret tokens. This also means that the rsa library was demoted
to secondary requirement.
2017-03-22 15:49:51 +01:00
2e41c074b5 Python 3.6 compatibility: bytes vs strings stuff
These changes mostly revolve around the change in ObjectId constructor
when running on Python 3.6. Where on 2.7 the constructor would accept
12- and 24-byte strings, now only 12-byte bytes and 24-character strings
are accepted. Good thing, but required some changes in our code.

Other changes include hashing of strings, which isn't supported, so they
are converted to bytes first, and sometimes converted back afterwards.
2017-03-22 15:49:51 +01:00
c2206e6b27 Python 3.6 compatibility: Prevent comparison with None 2017-03-22 15:49:51 +01:00
4e138d38a1 Removed no longer compatibility thingy for Python 3 2017-03-22 15:49:51 +01:00
663627358f Ran 2to3 on pillar + some manual fixups
The 'manual fixups' are:

- incorrect use of dict.items() where dict.iteritems() was meant; this
  results in list(dict.items()), which I changed to dict.items().
- removal of 'from __future__ import' lines, which 2to3 changes into
  empty lines; I removed the empty lines.
2017-03-22 15:49:51 +01:00
647ae0f3d6 Fixed create_from_file(filename) bug (should be file obj, not name) 2017-03-01 08:56:26 +01:00
e5b4ce0890 GoogleCloudStorageBucket.gcs_bucket → _gcs_bucket
Added a few FIXME comments where _gcs_bucket is used outside of the class.
2017-03-01 08:56:26 +01:00
27df603299 Started moving processing function in subclasses 2017-03-01 08:56:26 +01:00
4d6bf65a99 Attempt at proper naming
Using Bucket and Blob as base classes.
2017-03-01 08:56:26 +01:00
c06533db5b Breaking stuff by introducting decorator & abstract base class stuff. 2017-03-01 08:56:26 +01:00
b3b9c68486 Fixed uploading of images.
Thumbnailing is still broken, though.
2017-03-01 08:56:26 +01:00
aecab0561e WIP introducing STORAGE_BACKEND
We introduce two new classes StorageBackend and FileInStorage, which
are subclassed by CGS and local Pillar. This makes supporting multiple
storage solutions easier.
2017-03-01 08:56:26 +01:00
6765276519 Introducing attachments fixes for blog posts and assets.
Requires migration of attachments schema using
python manage.py maintenance upgrade_attachment_schema --all
2017-02-21 18:08:42 +01:00
2b528f0fff Added pillar.api.utils.bsonify(some_dict)
It was used in an experiment in Flamenco as an alternative to JSON; it
might still be used in the future if BSON turns out to be significantly
faster to generate.
2017-01-24 09:19:24 +01:00
129ec94608 Renamed flamenco.jobs to flamenco_jobs 2016-12-14 14:48:37 +01:00
01cc52bba9 Allow user updates in create_service_account() calls. 2016-12-14 14:41:06 +01:00
d9b56f485b Extend CHECK_PERMISSIONS_IMPLEMENTED_FOR
We support flamenco.jobs. This is a temporary workaround until we
implement check permissions in a way that can be extended by extensions.
2016-11-30 23:50:21 +01:00