Commit Graph

18 Commits

Author SHA1 Message Date
d726e15ed8 Merge branch 'master' of git.blender.org:pillar into elastic 2017-12-29 12:19:47 +01:00
01f81ce4d5 Send a Blinker signal when someone's subscription status changes
This is very close to the 'roles changed' signal, with the difference that
it is sent only once for multiple role changes.
2017-12-21 12:59:32 +01:00
92fe39ddac Prevent shadowing of name from outer scope 2017-12-19 10:45:34 +01:00
fccd3e306e T52710 pytests work 2017-12-08 14:00:30 +01:00
87fe1887e8 Added "Update from Blender ID" button
Added this button in the /u/ user/embed view, so that admins can easily force a re-check from Blender ID without requiring the user themselves to perform any actions.
2017-12-05 11:45:42 +01:00
517b283893 Accept roles from Blender ID in two formats
This supports {'role_name': bool} dicts (the old format) and any iterable
of strings {'role_name', ...}
2017-12-01 18:10:33 +01:00
0b218eb656 Use Blender ID to obtain subscription status.
Instead of performing a call to the Blender Store, call to Blender ID to
get the user's subscription status.

Currently this is performed as a second HTTP call after logging in; in the
future we may want to include the roles in the login response from Blender
ID, so that we can do this in one call instead of two.
2017-11-30 15:28:35 +01:00
49a6a6a758 Delete the auth token when logging out.
Before this, authentication tokens were kept in the database, even when
someone logged out. This is unwanted behaviour, as logging in will create
yet another token anyway there is no reason to keep the token around.
2017-11-17 12:10:21 +01:00
bdd603fb17 Using new UserClass instances everywhere:
- No more direct access to g.current_user, unless unavoidable.
  - Using pillar.auth.current_user instead of g.current_user or
    flask_login.current_user.
  - p.a.current_user is never checked against None.
  - p.a.current_user.is_authenticated or is_anonymous is used, and never
    together with a negation (instead of 'not is_anon' use 'is_auth').
  - No more accessing current_user a a dict.
  - No more checks for admin role, use capability check instead.
2017-08-29 11:34:48 +02:00
87afbc52f6 Updated do_badger to take an optional set of roles.
The 'role' parameter now must be passed as keyword arg instead of
positional arg. Either 'role' or 'roles' must be given.
2017-08-23 08:59:23 +02:00
319f815985 Some more logging in pillar.api.blender_cloud.subscription.update_subscription 2017-05-10 12:04:34 +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
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
c2206e6b27 Python 3.6 compatibility: Prevent comparison with None 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
2c5dc34ea2 Introducing Pillar Framework
Refactor of pillar-server and pillar-web into a single python package. This
simplifies the overall architecture of pillar applications.

Special thanks @sybren and @venomgfx
2016-08-19 09:19:06 +02:00