Skip to content
Snippets Groups Projects
Commit 1fc2efc4 authored by Tim Kreuzer's avatar Tim Kreuzer
Browse files

only allow add of r2d_image when using shared config

parent 13d7d659
No related branches found
No related tags found
No related merge requests found
...@@ -566,32 +566,22 @@ def filter_events(spawner, event): ...@@ -566,32 +566,22 @@ def filter_events(spawner, event):
return event return event
async def recursive_share_replace(user_options, replace_options):
result = {}
for key in set(user_options.keys()).union(replace_options.keys()):
uval = user_options.get(key)
rval = replace_options.get(key)
if isinstance(uval, dict) and isinstance(rval, dict):
result[key] = await recursive_share_replace(uval, rval)
elif key in replace_options:
result[key] = rval
else:
result[key] = uval
return result
async def custom_user_options(spawner, user_options): async def custom_user_options(spawner, user_options):
from ..orm.share import UserOptionsShares from ..orm.share import UserOptionsShares
log_user_options = copy.deepcopy(user_options) log_user_options = copy.deepcopy(user_options)
if "share_id" in user_options.keys(): if "share_id" in user_options.keys():
share_user_options = UserOptionsShares.find_by_share_id( r2d_image = None
user_options.get("repo2docker", {}).get("image", None)
user_options = UserOptionsShares.find_by_share_id(
spawner.user.db, user_options["share_id"] spawner.user.db, user_options["share_id"]
).user_options ).user_options
user_options = await recursive_share_replace(user_options, share_user_options) if (
r2d_image
and user_options.get("option", "") == "repo2docker"
and "repo2docker" in user_options.keys()
):
user_options["repo2docker"]["image"] = r2d_image
ret = await recursive_decrypt(user_options.get("secret_keys", []), user_options) ret = await recursive_decrypt(user_options.get("secret_keys", []), user_options)
log_extras = { log_extras = {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment