62542f0329
Rolled back some flask_login and g.current_user integration
...
Setting flask_login.current_user ourselves was a bad idea, and messed up
flask_login's internal administration. Our code now just manages
g.current_user in these specific instances, which works fine.
2017-08-30 12:39:46 +02:00
6825b8bf74
Fixed infinite recursion.
2017-08-29 12:31:52 +02: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
86e76aaa5f
Use UserClass instead of assigning dict to g.current_user
2017-08-29 11:34:48 +02:00
88af86ae61
Toastr: Style buttons in notifications
2017-08-27 17:44:40 +02:00
a6f56a4811
OAuth test: checking email address too
2017-08-25 12:53:21 +02:00
c7c867f1c7
OAuth signin: streamlined instantiation of OAuthSignIn subclasses
2017-08-25 12:35:08 +02:00
add2538655
Prevent JS error by sync-loading jquery.autocomplete….js
2017-08-25 12:03:52 +02:00
ff1b14d980
Project sharing: Simplified user selection JS code.
2017-08-25 12:03:52 +02:00
a12838032f
Introducing exception handling in the application code
2017-08-25 11:47:40 +02:00
6edd0e2f8d
Fix for embedded template paths
...
When edting a custom node type we were building the wrong path, and not passing the project argument to the render_template function.
2017-08-25 10:57:29 +02:00
398bbbc316
Fix up config_testing values to conform with tests
2017-08-25 10:55:35 +02:00
41a82c44c5
Tests for providers callbacks
...
Also added SERVER_NAME in config_testing and pre-populated the keys of OAUTH_CREDENTIALS, since the implementation of providers is part of the application.
2017-08-25 10:55:35 +02:00
cecf81a07d
Initial tests for OAuthSignIn
2017-08-25 10:55:35 +02:00
45275c3831
Switch to class-based OAuthUserResponse
...
Instead of returning an arbirary number of items, we provide a standardized and better documented response.
2017-08-25 10:55:35 +02:00
99866542a1
Style Google oauth login
2017-08-25 10:53:30 +02:00
6b3e523036
Remove Flask-OAuthlib and oauth_blender_id from Pillar
...
We switch completely to a rauth-based approach, allowing multiple providers for authentication.
2017-08-25 10:53:22 +02:00
6e9a539d61
Fix typo
2017-08-25 10:52:52 +02:00
c9b2eb25b2
Add default OAUTH_CREDENTIALS in config
2017-08-25 10:51:45 +02:00
23b856b073
Move Blender ID to extensible OAuth
...
Also, added support for Google OAuth.
2017-08-25 10:51:45 +02:00
e0520e265d
Style login page
2017-08-25 10:51:45 +02:00
9b9e0488d3
New login page
...
Exposes all available login providers
2017-08-25 10:51:45 +02:00
c827dc4ed2
Initial work to support multiple OAuth clients
2017-08-25 10:51:45 +02:00
d48a308cc6
Renamed pillar.auth.current_web_user to pillar.auth.current_user
...
This is an in-between change. In the future, we want to always set
g.current_user so that it's never None (but rather an AnonymousUser
instance). However, there is still some code that assumes that when
g.current_user is not None the user is logged in. This should be
addressed first.
2017-08-24 14:28:18 +02:00
b9ae4396e5
Orgs: show "My Organizations" in the user's menu
...
This is shown only when the user is member of or administrator for one or
more organizations, otherwise it's hidden.
2017-08-24 14:28:18 +02:00
95dc799692
Orgs: made org properties for non-admins a bit nicer
2017-08-24 14:28:18 +02:00
be12bd7d99
Orgs: allow users to leave an organization
2017-08-24 14:28:18 +02:00
0445c3bd86
Orgs: assign capabilities to org-subscriber role
2017-08-24 14:28:18 +02:00
694e04cc50
Orgs: UI tweak
2017-08-24 14:28:18 +02:00
598b59c0c6
Orgs: gracefully handle 'not enough seats' error
2017-08-24 14:28:18 +02:00
1e1bd83baf
Orgs: refresh all members' roles after org changed roles
2017-08-24 14:28:18 +02:00
d41e2bbce4
Orgs: fixed "Create New Organization" button
...
It now actually creates the new org and shows it.
2017-08-24 14:28:18 +02:00
5f607fa2cf
Orgs: Moved some JS around, no real semantic changes
2017-08-24 14:28:18 +02:00
cd417bb9db
Orgs: styling tweaks to make member list a bit nicer
2017-08-24 14:28:18 +02:00
65518f2208
Spaces to tabs
2017-08-24 14:28:18 +02:00
30902bc9cd
Orgs: made the admin picker a bit nicer to work with
...
Also it now asks for a confirmation before transferring admin-ship to
the new admin user.
2017-08-24 14:28:18 +02:00
37b1a6e0c1
Orgs: added labels to organization form
2017-08-24 14:28:18 +02:00
f1edb901d1
Orgs: allow setting org admin via web interface / PATCH request
2017-08-24 14:28:18 +02:00
a5d11ec31b
Refactored user search as JQuery plugin
2017-08-24 14:28:18 +02:00
2bf95223b7
Orgs: layout tweaks
2017-08-24 14:28:18 +02:00
08294e2f14
Orgs: allow admins to set seat count and org_roles
2017-08-24 14:28:18 +02:00
1c9f425a40
Orgs: use flask_login.current_user to avoid calling current_user() all the time
2017-08-24 14:28:18 +02:00
4116357447
Orgs: some small fixes, mostly for stability / corner cases
2017-08-24 14:28:18 +02:00
e9cb235640
Added web interface for organizations.
...
It looks like crap, but it allows you to edit the details and the members.
2017-08-24 14:28:18 +02:00
64eab850c5
Orgs: pillar admins can always edit an organization
2017-08-24 14:28:17 +02:00
c6eebc4eae
Orgs: allow setting location field by PATCH
2017-08-24 14:28:17 +02:00
1bd6e07fe2
Orgs: Allow adding individual known users by user ID.
...
This is used for the selection by user search.
2017-08-24 14:28:17 +02:00
1ad13d048f
Some extra type safety checks
2017-08-24 14:28:17 +02:00
cfde720b1d
Orgs: PATCH op to batch-add emails as members now strip()s emails
...
It also refuses to add empty emails.
2017-08-24 14:28:11 +02:00
5d17d892a4
Orgs: Use current_user() in PATCH handler
2017-08-24 14:28:02 +02:00