Commit Graph

1466 Commits

Author SHA1 Message Date
222b2e95e2 Simplified effective permission computation. 2016-04-15 14:28:44 +02:00
4e9182ef38 Missed BlenderID API change in unittest 2016-04-15 14:27:54 +02:00
36b31fee7c Missed one BlenderID API change 2016-04-15 12:33:26 +02:00
0bdd3b0a31 Updated for changes in BlenderID validate_token URL and response.
See BlenderID change 432034f858fbfd695f3ce0a0b3724524de7a05bb
2016-04-15 12:19:43 +02:00
66eeb25529 Unify tokens and subclient tokens
SCST tokens are now stored in the 'tokens' table.
This unifies old token handling and new subclient-specific tokens.
Also ensures the BlenderID expiry of the token is taken into account.

Removes use of httpretty, in favour of responses.
2016-04-13 15:33:54 +02:00
0f6eeef32b Upgraded to gcloud-0.12.0
This removes the need to use a Git checkout, and allows us to use an
actual version number again, with a package from PyPi.
2016-04-13 10:50:49 +02:00
e898fe0315 Use Blender ID subclient-specific token to find the user.
TODO: also store expiry timestamp
TODO: allow multiple subclient-specific tokens per user
2016-04-12 16:53:27 +02:00
bd8e0e56a4 Security: don't log subclient token. 2016-04-12 16:05:37 +02:00
aeee165ad8 subclient tokens: bugfix & return proper data.
Also introduces responses, as an alternative to httpretty (it works
better).
2016-04-12 15:24:50 +02:00
e0460f8518 Don't crash when Algolia is unavailable, when updating user. 2016-04-12 15:21:37 +02:00
3d9fe76271 Added subclient token verification & storage. 2016-04-08 18:45:35 +02:00
771b091626 Use config when running devserver 2016-04-05 17:38:11 +02:00
5e74120c3f Use put_internal instead. 2016-04-05 12:32:05 +02:00
1120a59e30 Added management command for adding Attract node types to a project.
./manage.py setup_for_attract {project UUID} [--replace]
2016-04-05 12:25:41 +02:00
6f8afbbdc0 Replaced print statement with print function 2016-04-04 17:32:48 +02:00
e433e90dd8 Bugfix 2016-04-04 17:31:06 +02:00
669aea7436 Testing should have debug mode disabled. 2016-04-04 16:10:55 +02:00
7a171f471c Renamed package 'manage' to 'manage_extra'
There already is a Flask-default 'manage.py', and with a subdir 'manage'
in the same directory, 'import manage' is ambiguous.
2016-04-04 15:40:46 +02:00
04d846fd96 Set our specific CDN_SERVICE_DOMAIN to be configured locally.
Just set it in your config_local.py file.
2016-04-04 15:14:30 +02:00
465b145609 More flexible, less error-prone configuration system.
WARNING: make a backup copy of your local config.py before pulling
this change, as Git will overwrite it without warning.

The configuration defaults to deployment settings, allowing overrides.
Overrides are read from config_local.py and from the file pointed to
by the PILLAR_CONFIG env var.
2016-04-04 14:59:11 +02:00
a1930c63d0 Manage command to expire all links, to test with slow responses. 2016-04-04 13:20:52 +02:00
72d05dea7b Some nicer logging 2016-04-04 13:20:52 +02:00
077064b7d9 Skip not found attachments 2016-04-01 14:41:58 +02:00
73bb125e7b Added --quiet option to refresh_project_links mgmt command 2016-04-01 13:29:22 +02:00
ce242e1de3 Added manage.py command to refresh (almost) expired links.
manage.py refresh_project_links  5672beecc0261b2005ed1a33 -c 4

This refreshes the oldest 4 links of that project.
2016-04-01 13:03:27 +02:00
c13fca4f30 Use the same expire time in database and current_user dict 2016-03-31 11:17:21 +02:00
655a5b53d1 More debug logging of the auth flow. 2016-03-31 11:16:45 +02:00
91d6175472 When BlenderID is unreachable, log an error and handle as not logged in. 2016-03-31 11:16:27 +02:00
6e04fa072b Always set g.current_user (to None when not logged in).
This allows us to use g.current_user, instead of
g.get('current_user', None), which in turn simply causes an AttributeError
exception when the token validation wasn't performed when it should have.
2016-03-31 11:15:55 +02:00
56bf30c722 Validate authentication token on every request. 2016-03-31 11:10:01 +02:00
9bdba2bc15 Fix for attachment processing 2016-03-25 21:05:33 +01:00
8b4e0c4578 Fixed imports for py.test
For some reason the 'from application import utils' worked fine when
running unittests from PyCharm, but breaks in py.test. Strange.
2016-03-25 18:27:27 +01:00
7c04e01cde Some security fixes and other fixes for file storage.
Also added unittests for creating files.
2016-03-25 18:23:01 +01:00
fd5bcaec52 Some code simplifications & logging for Zencoder notifications. 2016-03-25 17:21:18 +01:00
d7ee2121d9 Renamed some test_xxx files to common_test_xxx.py
Those files contain stuff for tests, but don't contain tests themselves.
2016-03-25 16:05:36 +01:00
adb4f5b39e Added unittests for caching of file links.
Also converted test_auth.py to use the new AbstractPillarTest class.
This class ensures that we test against the testing database, which
is dropped at every setUp()/tearDown().
2016-03-25 15:57:17 +01:00
cb4b0f1e4d Check link expiry when GETting files.
Without this, the client would be allowed to keep using cached copies
when the Google Cloud Storage links were already expired.
2016-03-25 15:43:47 +01:00
26b081ccd8 Oops. 2016-03-25 12:40:51 +01:00
d4ed335273 Overriding app.config in unittest.
We may need something better structured in the future to handle
test configuration, but at least this gets the one test we have
running.
2016-03-25 12:22:31 +01:00
ebcb6bc5f8 Added setup.py to allow automated testing.
Also moved the tests directory to top-level, as they shouldn't be part
of the pillar directory.
2016-03-25 11:46:01 +01:00
1769f20620 Moved some file-specific code from app/__init__ to file_storage module. 2016-03-25 11:46:01 +01:00
84723eb8d3 Tweaks fo manage.py to allow default project creation 2016-03-24 16:05:39 +01:00
a33e4421a8 Introducing Project creation
Authorised users can now create projects. The before and after insert
projects hooks take care of stripping unwanted urls and attaching
default node_type and permissions, as well as initialising a storage
bucket per project. We are temporarily switching to the development
version of the gcloud library, since it allows the creation of EU-based
buckets.
2016-03-24 15:16:37 +01:00
90693595a6 Restored from modules.file_storage imports
A previous commit was causing functions not to be imported correctly
and would crash on runtime. For example file_storage.generate_link
would not be found.
2016-03-24 15:13:48 +01:00
caaa376a7d PEP8 formatting 2016-03-24 15:12:06 +01:00
0e01c925bd New node_type page
Mostly to be used to create static pages (about, ToS, etc).
2016-03-24 15:11:55 +01:00
79918c26b6 PEP8 formatting 2016-03-24 15:04:27 +01:00
618f02564f Remove unused testing file 2016-03-24 15:03:43 +01:00
34202166e8 Added missing import 2016-03-22 18:00:10 +01:00
fc11502916 Sorted imports.
Personally I don't care much about this, but after certain refactor
operations PyCharm sorts the imports anyway, making the actual
refactoring harder to spot.
2016-03-21 15:18:41 +01:00