Skip to content

Conversation

@EstAK
Copy link

@EstAK EstAK commented Oct 28, 2025

Features

  • Users managed through a UserManager
  • User context manager to "safely" run commands on the behalf of a user
  • Usage example : scala_container.py

Motivation

Instead of trusting the user to correctly scope where a user should be enable : encapsulate it. No need to use constructs like anymore :

def foo_builder():
    builder = PartialDockerBuilder()
    builder.root ()
    # some stuff
    builder.user()

now, you can use

def foo_builder(user_manager):
    builder = PartialDockerBuilder()
    builder.user_manager = user_manager
    with builder.as_root() as root_builder:
        # some stuff

at the end of the context manager you are ensured to return to the user that was used before entering it :

def foo_builder(user_manager): 
    builder = PartialDockerBuilder()
    builder.user_manager = user_manager
    with builder.as_user(username="user") as user_builder:
        # some stuff 
        with user_builder.as_root() as root_builder:
            # some stuff as root
       # some stuff as "user"again

EstAK added 2 commits October 28, 2025 18:20
Signed-off-by: Esteban Aguililla Klein <[email protected]>
Signed-off-by: Esteban Aguililla Klein <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant