vladfreeze
471e492c11
Added changes for group properties editing
2021-12-02 11:29:00 +01:00
Erik Sundell
bc71ad6d73
Apply suggestions from code review
...
Co-authored-by: Carol Willing <carolcode@willingconsulting.com >
2021-08-26 16:23:38 +02:00
Erik Sundell
d6c48b15fe
pyupgrade: run pyupgrade --py36-plus and black on all but tests
2021-08-26 16:23:38 +02:00
pre-commit-ci[bot]
18c5b6a17a
[pre-commit.ci] auto fixes from pre-commit.com hooks
...
for more information, see https://pre-commit.ci
2021-06-28 17:44:35 +00:00
0mar
2f8f7ad0b0
Resolves sql warnings on 3.6 and fixes for scope expansion bug
2021-06-17 14:38:14 +02:00
0mar
528ab28871
Raise error when hub has no roles defined
2021-06-16 11:37:23 +02:00
Min RK
69d2839ba3
test access scopes in authorize handler
...
- provider.add_client returns the client
- fix Spawner access scopes
- debug logging in mock spawners
- Assign service access scopes
2021-06-07 14:02:10 +02:00
Min RK
e5198b4039
create boolean columns with create_constraint=False
...
matches new default behavior in sqlalchemy 1.4
2021-06-07 13:58:27 +02:00
Min RK
57f4c08492
get upgrade working on sqlite with foreign key naming convention
2021-06-07 13:58:27 +02:00
Min RK
7e46d5d0fc
store relationship between oauth client and service/spawner
...
so that we can look up the spawner/service from the oauth client and vice versa
2021-06-07 13:58:27 +02:00
Min RK
478ae8a744
typo in comment
...
Co-authored-by: Ivana <IvanaH8@users.noreply.github.com >
2021-05-21 15:36:14 +02:00
Min RK
02619b687f
cleanup after failure to create token due to permisison errors
...
have to delete tokens explicitly if we fail to finish creating them
2021-05-20 13:48:37 +02:00
Min RK
4728325bf7
persist roles through oauth process
...
- Attach role limit to OAuthClient
- Attach authorized roles to OAuthCode
- pass roles from code to API token on completion
standard 'scopes' in oauth process are matched against our 'roles' instead of our low-level scopes
2021-04-20 14:29:29 +02:00
Min RK
ad9ebdd60f
add missing session_id to newly merged API tokens
...
and remove grant_type which is not a property of the tokens themselves
2021-04-13 13:23:53 +02:00
Min RK
0b56fd9e62
remove separate oauth tokens
...
- merge oauth token fields into APITokens
- create oauth client 'jupyterhub' which owns current API tokens
- db upgrade is currently to drop both token tables, and force recreation on next start
2021-04-13 13:23:45 +02:00
Min RK
ebb13ed39f
Merge master into rbac
2021-04-13 13:07:30 +02:00
0mar
95759b25f2
Fixed config role token assignment
2021-04-09 12:06:21 +02:00
0mar
b0b1350ec0
Merge branch 'rbac' into additional_scopes
2021-04-08 16:55:25 +02:00
0mar
1515747b1e
Refactored role methods
2021-03-29 21:26:34 +02:00
Min RK
caae99aa09
avoid deprecated engine.table_names
...
deprecated in sqlalchemy 1.4
use recommended inspect(engine).get_table_names() instead
2021-03-26 12:54:40 +01:00
IvanaH8
bdc4bd4763
Resolve merge conflicts with Vertical Filtering and improve tests
2021-03-24 13:39:59 +01:00
0mar
7496fda089
Implemented default token roles, self scope for users and tokens for mockservices
2021-03-11 19:33:05 +01:00
IvanaH8
10c82d6272
resolved conflicts with rbac branch
2021-02-17 16:31:46 +01:00
Min RK
4dac580d3d
Merge master into rbac
2021-01-27 12:39:02 +01:00
Omar Richardson
82c837eb89
Refactored orm.get_class, improved resource filtereing
2021-01-05 19:58:39 +01:00
Tim Gates
1e53fd1f8c
docs: fix simple typo, funciton -> function
...
There is a small typo in jupyterhub/orm.py.
Should read `function` rather than `funciton`.
2020-12-23 11:54:51 +11:00
IvanaH8
5e8864f29d
fixed default roles for mocked services
2020-12-18 15:04:14 +01:00
IvanaH8
c0cadc384d
adding roles to tokens
2020-11-19 08:22:52 +01:00
IvanaH8
087c763d41
adding roles to services
2020-10-28 11:16:03 +01:00
IvanaH8
f1ed74bae1
creating roles module
2020-10-19 19:57:55 +02:00
Min RK
d4b5373c05
synchronize implementation of expiring values
...
- base Expiring class
- ensures expiring values (OAuthCode, OAuthAccessToken, APIToken) are not returned from `find`
- all expire appropriately via purge_expired
2020-06-11 10:40:06 +02:00
Min RK
84acdd5a7f
handle uselist=False in our relationship expiry
2020-02-21 14:10:36 +01:00
Min RK
7735c7ddd4
make spawner:server backref explicitly one-to-one
...
using backref(uselist=False), single_parent=True
2020-02-21 10:09:08 +01:00
Min RK
79a51dfdce
make init_spawners check O(running servers) not O(total users)
...
query on Server objects instead of User objects
avoids lots of ORM work on startup since there are typically a small number of running servers
relative to the total number of users
this also means that the users dict is not fully populated. Is that okay? I hope so.
2020-02-18 17:10:19 +01:00
Chico Venancio
096b159c23
ORM: allow MySQL variables to not exist
...
In current versions of MySQL and MariaDB `innodb_file_format`
and `innodb_large_prefix` have been removed. This allows them to not
exist and makes sure the format for the rows are `Dynamic` (default
for current versions).
2019-08-30 13:00:56 -03:00
Min RK
82c889861d
limit special handling to bytes in user_options
...
uploaded form data can be bytes, which we base64-encode
don't persist any other unsupported data types, persist None instead
2019-03-07 15:30:00 +01:00
Min RK
0d86c4ecf5
allow arbitrary data types in JSONDicts in the db
...
via json default encoder and object hooks
2019-03-06 13:48:12 +01:00
Min RK
ddc852d658
persist user_options
...
remember user_options from the previous run
this allows user options set via spawn form to be re-used when restarting e.g. a named server via the api
2019-02-28 14:27:47 +01:00
Min RK
5e60582ef3
run autoformat
...
apologies to anyone finding this commit via git blame or log
run the autoformatting by
pre-commit run --all-files
2019-02-19 17:00:10 +01:00
Min RK
087dd0fcd2
Merge pull request #2330 from Deepakdubey90/jupyterhub-oracle-integration
...
Modified JSON-DICT Implementation from TEXT to Text
2019-02-11 16:41:47 +01:00
Min RK
e51ea3f2be
s/TEXT/Text/
2019-02-06 14:02:08 +01:00
Min RK
bf36f9fc9a
use Text instead of TEXT
...
TEXT is wrong on Oracle, LargeBinary is wrong everywhere else.
Text seems to be the high-level type that maps to the right thing both places.
This results in no change on supported implementations, as Text == TEXT there.
2019-02-06 13:47:40 +01:00
Min RK
a46032b549
use non-deprecated event to register foreign_keys connection listener
2018-12-12 15:41:09 +01:00
pydeepak
047bd4e7cc
Fixed incorrect import
2018-11-27 08:42:28 +05:30
pydeepak
10d781c570
Modified Json Implementation from Text to LargeBinary.
2018-11-27 08:39:46 +05:30
Min RK
a1dc73882a
move helper properties onto orm.Spawner
...
since that's where they belong
2018-09-24 16:21:40 +02:00
Min RK
9031b9aa57
add some re-usable APIs
...
define some pending/ready helpers as static constants on orm.Spawner
allows treating orm.Spawner the same as Spawner wrappers,
as long as `.active` etc. checks are performed first
2018-09-24 16:21:40 +02:00
Min RK
5e2c133669
flesh out oauth provider
...
- avoid logging credentials
- implement some missing methods
2018-09-10 14:26:40 +02:00
Min RK
f84c73eb15
[wip] switch to oauthlib from python-oauth2
...
lower-level implementation, but more robust and gives us more control
2018-09-04 15:10:58 +02:00
Matthias Bussonnier
077d8dec9a
Fix some typos using codespell
.
...
And checking each manually. It's funny because one of the words in the
sphinx custom dictionary was wrong :-)
2018-08-29 21:24:28 -07:00