mirror of
https://github.com/ansible/awx.git
synced 2026-02-18 03:30:02 -03:30
fix: awxkit user creation through gw
This commit is contained in:
@@ -58,6 +58,11 @@ class Connection(object):
|
||||
self.session_cookie_name = historical_response.headers.get('X-API-Session-Cookie-Name')
|
||||
|
||||
self.session_id = self.session.cookies.get(self.session_cookie_name, None)
|
||||
if self.session_id is None and config.get("api_base_path") == "/api/controller/":
|
||||
# Use gateway session cookie name if controller session cookie name is not found
|
||||
self.session_cookie_name = "gateway_sessionid"
|
||||
self.session_id = self.session.cookies.get(self.session_cookie_name, None)
|
||||
|
||||
self.uses_session_cookie = True
|
||||
else:
|
||||
self.session.auth = (username, password)
|
||||
|
||||
@@ -31,7 +31,23 @@ class User(HasCreate, base.Base):
|
||||
payload = self.create_payload(username=username, password=password, **kwargs)
|
||||
self.password = payload.password
|
||||
|
||||
self.update_identity(Users(self.connection).post(payload))
|
||||
ctrl_users_api = Users(self.connection)
|
||||
# Check if API base path is set to controller, then use gateway endpoint
|
||||
if config.get("api_base_path") == "/api/controller/":
|
||||
# Use gateway endpoint for user creation
|
||||
gw_users_api = Users(self.connection)
|
||||
gw_users_api.endpoint = "/api/gateway/v1/users/"
|
||||
# Cleanup controller attributes
|
||||
payload["is_platform_auditor"] = payload.get("is_system_auditor")
|
||||
payload.pop("is_system_auditor")
|
||||
# Create gw user
|
||||
gw_user = gw_users_api.post(payload)
|
||||
user = ctrl_users_api.get(username=gw_user.username).results.pop()
|
||||
user.json["password"] = payload.password
|
||||
self.update_identity(user)
|
||||
else:
|
||||
# Use default endpoint
|
||||
self.update_identity(ctrl_users_api.post(payload))
|
||||
|
||||
if organization:
|
||||
organization.add_user(self)
|
||||
|
||||
Reference in New Issue
Block a user