mirror of
https://github.com/ansible/awx.git
synced 2026-05-15 21:37:42 -02: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_cookie_name = historical_response.headers.get('X-API-Session-Cookie-Name')
|
||||||
|
|
||||||
self.session_id = self.session.cookies.get(self.session_cookie_name, None)
|
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
|
self.uses_session_cookie = True
|
||||||
else:
|
else:
|
||||||
self.session.auth = (username, password)
|
self.session.auth = (username, password)
|
||||||
|
|||||||
@@ -31,7 +31,23 @@ class User(HasCreate, base.Base):
|
|||||||
payload = self.create_payload(username=username, password=password, **kwargs)
|
payload = self.create_payload(username=username, password=password, **kwargs)
|
||||||
self.password = payload.password
|
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:
|
if organization:
|
||||||
organization.add_user(self)
|
organization.add_user(self)
|
||||||
|
|||||||
Reference in New Issue
Block a user