summaryrefslogtreecommitdiffstats
path: root/bitbake/bin
diff options
context:
space:
mode:
authorJoshua Watt <JPEWhacker@gmail.com>2023-11-03 08:26:32 -0600
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-11-09 17:33:03 +0000
commit8cfb94c06cdfe3e6f0ec1ce0154951108bc3df94 (patch)
tree046a6d0d98b0b1bfb1467b2d3e4bbc29b181eb9b /bitbake/bin
parent1af725b2eca63fa113cedb6d77eb5c5f1de6e2f0 (diff)
downloadpoky-8cfb94c06cdfe3e6f0ec1ce0154951108bc3df94.tar.gz
bitbake: hashserv: Add become-user API
Adds API that allows a user admin to impersonate another user in the system. This makes it easier to write external services that have external authentication, since they can use a common user account to access the server, then impersonate the logged in user. (Bitbake rev: 71e2f5b52b686f34df364ae1f2fc058f45cd5e18) Signed-off-by: Joshua Watt <JPEWhacker@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/bin')
-rwxr-xr-xbitbake/bin/bitbake-hashclient3
1 files changed, 3 insertions, 0 deletions
diff --git a/bitbake/bin/bitbake-hashclient b/bitbake/bin/bitbake-hashclient
index 328c15cdec..cfbc197e52 100755
--- a/bitbake/bin/bitbake-hashclient
+++ b/bitbake/bin/bitbake-hashclient
@@ -166,6 +166,7 @@ def main():
166 parser.add_argument('--log', default='WARNING', help='Set logging level') 166 parser.add_argument('--log', default='WARNING', help='Set logging level')
167 parser.add_argument('--login', '-l', metavar="USERNAME", help="Authenticate as USERNAME") 167 parser.add_argument('--login', '-l', metavar="USERNAME", help="Authenticate as USERNAME")
168 parser.add_argument('--password', '-p', metavar="TOKEN", help="Authenticate using token TOKEN") 168 parser.add_argument('--password', '-p', metavar="TOKEN", help="Authenticate using token TOKEN")
169 parser.add_argument('--become', '-b', metavar="USERNAME", help="Impersonate user USERNAME (if allowed) when performing actions")
169 parser.add_argument('--no-netrc', '-n', action="store_false", dest="netrc", help="Do not use .netrc") 170 parser.add_argument('--no-netrc', '-n', action="store_false", dest="netrc", help="Do not use .netrc")
170 171
171 subparsers = parser.add_subparsers() 172 subparsers = parser.add_subparsers()
@@ -251,6 +252,8 @@ def main():
251 if func: 252 if func:
252 try: 253 try:
253 with hashserv.create_client(args.address, login, password) as client: 254 with hashserv.create_client(args.address, login, password) as client:
255 if args.become:
256 client.become_user(args.become)
254 return func(args, client) 257 return func(args, client)
255 except bb.asyncrpc.InvokeError as e: 258 except bb.asyncrpc.InvokeError as e:
256 print(f"ERROR: {e}") 259 print(f"ERROR: {e}")