Tim Head
bf7afa16e5
Remove auth state from user's self handler
2018-03-27 10:02:59 +02:00
Tim Head
0d57baae82
Modify user API wrt auth_state
...
A user can not get their own auth state via the REST API. Only admins
can fetch and update the auth state this way.
2018-03-27 10:02:59 +02:00
Tim Head
1ee993c664
Add ability to modify auth_state via the REST API
2018-03-27 10:02:59 +02:00
Tim Head
542c20065f
Reduce the number of endpoints that expose auth_state
2018-03-27 10:02:59 +02:00
Tim Head
39f663d03c
Expose auth_state via user API
2018-03-27 10:02:59 +02:00
Min RK
0421497b1e
remove web.authenticated from /api/user handler
...
which prevents it from being used with oauth tokens
2018-03-13 10:03:01 +01:00
Min RK
dad26be2c6
call it our own maybe_future
...
our version of gen.maybe_future that's fully tornado- and asyncio-compatible
2018-03-12 18:18:47 +01:00
Min RK
b6f634368c
add utils.awaitable replacement for gen.maybe_future
...
gen.maybe_future doesn't accept asyncio coroutines
and asyncio.ensure_future doesn't accept *tornado* coroutines, so do our own thing
2018-03-12 18:18:46 +01:00
Min RK
7a268c94b0
bulk find/replace async def and await
...
- `@gen.coroutine def` -> `async def`
- `yield future` -> `await future`
needs some fine tuning, but this is the big one
2018-03-12 18:18:46 +01:00
Min RK
c8b4cab022
support getting user models from orm-only User objects
...
avoids instantiating User wrappers for inactive users in get_all_users
2018-02-06 12:04:14 +01:00
Min RK
06fb94b4ea
Delay instantiation of User and Spawner objects
...
Avoids instantiating too many objects before they are used
- deletes Spawner instances after they stop to avoid lingering instances
- use user_dict cache more often instead of db queries
- check for empty spawners dict to avoid a few Spawner instantiations
2018-02-06 12:04:14 +01:00
Min RK
5f7ffaf1f6
allow default (empty) server name with named servers
...
remove generated names behavior because it doesn't work
2017-09-17 11:47:17 +02:00
Min RK
8e3553462c
exercise start/stop race conditions
...
this doesn’t cover all the edge cases of each possible stage for the races, but it gets the basics covered.
2017-08-26 11:57:05 -04:00
Min RK
f7ea451df8
get the tests running
2017-08-25 18:12:15 -04:00
Min RK
2866be9462
don’t allow start while stop is pending
...
- start fails with 400 if stop is pending
- set spawn_pending across a whole spawn (including proxy)
- proxy_pending is only around the proxy
2017-08-23 23:35:19 -04:00
Min RK
57c8ad6b92
consolidate server APIHandlers
...
no need for separate handlers for named and default servers
avoid claiming that empty responses are JSON.
2017-08-04 16:17:20 +02:00
Min RK
55000f98bc
include non-empty body with 202 responses
...
reply claims to be application/json, so make sure it has some content
2017-08-03 12:01:19 +02:00
Min RK
684afed3f1
restore user.running property
...
it was made a method for handing named_servers,
but that made things way more complicated and replaced a boolean flag with a callable,
which would behave unexpectedly but without error if a boolean flag was expected.
Spawners have properties for dealing with this now, so use spawners
Restore `user.running` as an alias for `user.spawner.ready`
2017-08-03 11:09:27 +02:00
Min RK
3e796b579d
Address review in named_servers
...
from willingc
- consistency of repr/str when logging usernames
- cleanup some attribute declarations
- add comments about db session weirdness
2017-07-26 10:47:35 +02:00
Min RK
2cec124b4f
support named servers in REST API
...
and exercise them in tests
2017-07-24 16:55:17 +02:00
Min RK
4b5aad41b1
make user.running a method
...
accept server names
2017-07-18 14:48:29 +02:00
Min RK
c943162649
merge named server handlers
...
only need one handler class per path
2017-07-18 14:28:45 +02:00
Min RK
5da4348c2d
move some state to Spawner
...
now that there are more than one per user
2017-06-21 16:33:16 +02:00
Min RK
e33e34748f
Re-sync with master
2017-06-21 15:33:01 +02:00
Min RK
5e55753baa
various cleanup to get most tests passing (yay!)
2017-05-04 12:16:47 +02:00
Min RK
66cb630b86
separate OAuth access tokens from API tokens
...
OAuth access tokens can only be used to identify users, not perform actions on their behalf, which API tokens do.
Implementing OAuth scopes would allow us to achieve this limitation without separating the two items, but that would be a much bigger change, including having an OAuth "Would you like to grant permissions..." confirmation page.
2017-04-21 14:52:07 +02:00
Christian Barra
76b589bc90
fix named_servers, change server.base_url
2017-04-15 03:47:09 +03:00
Min RK
e866651f96
update admin access deprecation message
2017-04-06 11:59:31 +02:00
Min RK
4bb8e47f3b
implement admin-access with OAuth
2017-03-30 19:15:43 +02:00
Min RK
52b9060415
remove debug-print in self handler
2017-03-30 16:35:50 +02:00
Min RK
d0eb4e0946
add /api/user
handler for identifying the requester
2017-03-28 16:19:56 +02:00
Christian Barra
2294dc0ad9
from multiservers to namedservers
2017-03-03 03:42:24 +01:00
Christian Barra
746912cece
fix *args and **kwargs
2017-02-24 00:37:41 +01:00
Christian Barra
4fdf405d77
add JupyterHub.allow_multiple_servers
2017-02-24 00:37:41 +01:00
Christian Barra
a85bc5cad4
change classes for creating/deleting a server, add server_name param for delete method
2017-02-24 00:09:48 +01:00
Christian Barra
3808067dd7
better docs
2017-01-19 10:57:18 +01:00
Christian Barra
e96e0acc9f
more pythonic
2017-01-19 03:05:28 +01:00
Christian Barra
7284ef6e06
change from username to name
2017-01-19 02:35:42 +01:00
Christian Barra
f5dc3ad753
fix to have unique username value
2017-01-19 02:30:04 +01:00
Christian Barra
fc0d0031bf
typo correct
2017-01-16 17:03:47 +01:00
Christian Barra
b0b13bfcb9
fix AttributeError when a service ask for a cookie
2017-01-14 05:48:07 +01:00
Min RK
7528fb7d9b
notice dead servers more often
...
call poll_and_notify to ensure triggering of dead-server events in a few places:
- `/hub/home` page view
- user start and stop API endpoints
This should avoid the failure to stop a server that's died uncleanly because the server hasn't noticed yet
2016-05-04 11:07:28 +02:00
Min RK
195eea55f3
log.warning
2016-03-29 09:22:32 -07:00
Min RK
aa93384f47
Include system-user creation error message in API reply
...
when system-user creation fails
2016-01-13 14:02:50 +01:00
Min RK
9441fa37c5
validate usernames
...
via Authenticator.validate_username
base class configurable with Authenticator.username_pattern
2016-01-13 14:02:50 +01:00
Min RK
887fdaf9d3
add username normalization
...
Handlers call `get_authenticated_user`, which in turn calls
- authenticate
- normalize_username
- check_whitelist
get_authenticated_user shouldn't need to be overridden.
Normalization can be handled via overriding normalize_username.
2016-01-13 14:02:50 +01:00
Min RK
4534bea86e
delete users via UserDict API
...
avoids reusing user IDs when user creation fails
2016-01-06 15:14:28 +01:00
Min RK
ba634354dd
Add Spawner form
...
If Spawner.options_form is specified, a form providing input controls is shown to the user prior to launch.
Spawners access the result via the `self.user_options` dict.
The default spawners offer no form.
2015-12-30 13:55:01 +01:00
Min RK
6f128758db
move non-persisted User objects (spawner-related) off of orm.User
...
adds higher level User object, which handles spawning.
This object has running, spawner, etc. attributes.
2015-11-30 14:05:00 +01:00
Jessica B. Hamrick
ea5bfa9999
Unset all login cookies
2015-08-21 19:24:44 -07:00