Skip to content

Commit 1139736

Browse files
author
Nivedithaa Mahendran
committed
update
1 parent 1bb218a commit 1139736

2 files changed

Lines changed: 46 additions & 23 deletions

File tree

src/mas/devops/users.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1591,25 +1591,27 @@ def create_initial_user_for_saas(self, user, user_type, groupreassign=None):
15911591
self.link_user_to_local_idp(user_id, email_password=True)
15921592
self.add_user_to_workspace(user_id, is_workspace_admin=is_workspace_admin)
15931593

1594-
for mas_application_id in self.mas_workspace_application_ids:
1595-
self.await_mas_application_availability(mas_application_id)
1596-
if mas_application_id == "manage":
1597-
role = manage_role
1598-
elif mas_application_id == "facilities":
1599-
role = facilities_role
1600-
else:
1601-
# otherwise grant the user the appropriate role for their user_type
1602-
role = application_role
1603-
self.set_user_application_permission(user_id, mas_application_id, role)
1594+
if Version(self.mas_version) < Version('9.1'):
1595+
for mas_application_id in self.mas_workspace_application_ids:
1596+
self.await_mas_application_availability(mas_application_id)
1597+
if mas_application_id == "manage":
1598+
role = manage_role
1599+
elif mas_application_id == "facilities":
1600+
role = facilities_role
1601+
else:
1602+
# otherwise grant the user the appropriate role for their user_type
1603+
role = application_role
1604+
self.set_user_application_permission(user_id, mas_application_id, role)
16041605

16051606
for mas_application_id in self.mas_workspace_application_ids:
16061607
self.check_user_sync(user_id, mas_application_id)
16071608

16081609
if len(manage_security_groups) > 0 and "manage" in self.mas_workspace_application_ids:
16091610
maxadmin_manage_api_key = self.create_or_get_manage_api_key_for_user(MASUserUtils.MAXADMIN, temporary=True)
16101611
self.logger.info(f"Maxadmin manage api key - {maxadmin_manage_api_key}")
1611-
for manage_security_group in manage_security_groups:
1612-
self.add_user_to_manage_group(user_id, manage_security_group, maxadmin_manage_api_key)
1612+
if Version(self.mas_version) < Version('9.1'):
1613+
for manage_security_group in manage_security_groups:
1614+
self.add_user_to_manage_group(user_id, manage_security_group, maxadmin_manage_api_key)
16131615
if Version(self.mas_version) >= Version('9.1') and user_type == "PRIMARY" and groupreassign is not None:
16141616
self.set_user_group_reassignment_auth(user_id, groupreassign, maxadmin_manage_api_key)
16151617

test/src/test_users.py

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1816,7 +1816,7 @@ def test_create_initial_user_for_saas(
18161816
user_utils.link_user_to_local_idp = MagicMock()
18171817
user_utils.add_user_to_workspace = MagicMock()
18181818
mas_workspace_application_ids = ["manage", "iot", "facilities"]
1819-
user_utils.get_mas_applications_in_workspace = MagicMock(return_value=map(lambda x: {"id": x}, mas_workspace_application_ids))
1819+
user_utils.get_mas_applications_in_workspace = MagicMock(return_value=list(map(lambda x: {"id": x}, mas_workspace_application_ids)))
18201820
user_utils.await_mas_application_availability = MagicMock()
18211821
user_utils.set_user_application_permission = MagicMock()
18221822
user_utils.check_user_sync = MagicMock()
@@ -1916,12 +1916,21 @@ def test_create_initial_user_for_saas(
19161916
user_utils.get_or_create_user.assert_called_once_with(expected_user_def)
19171917
user_utils.link_user_to_local_idp.assert_called_once_with(user_id, email_password=True)
19181918
user_utils.add_user_to_workspace.assert_called_once_with(user_id, is_workspace_admin=is_workspace_admin)
1919-
user_utils.await_mas_application_availability.assert_has_calls([call("manage"), call("iot")])
1920-
user_utils.set_user_application_permission.assert_has_calls([
1921-
call(user_id, "manage", manage_role),
1922-
call(user_id, "iot", application_role),
1923-
call(user_id, "facilities", facilities_role),
1924-
])
1919+
1920+
# For version < 9.1, await_mas_application_availability and set_user_application_permission are called
1921+
# For version >= 9.1, they are NOT called
1922+
if mas_version == '9.0':
1923+
user_utils.await_mas_application_availability.assert_has_calls([call("manage"), call("iot")])
1924+
user_utils.set_user_application_permission.assert_has_calls([
1925+
call(user_id, "manage", manage_role),
1926+
call(user_id, "iot", application_role),
1927+
call(user_id, "facilities", facilities_role),
1928+
])
1929+
else: # 9.1
1930+
user_utils.await_mas_application_availability.assert_not_called()
1931+
user_utils.set_user_application_permission.assert_not_called()
1932+
1933+
# check_user_sync is called for all versions
19251934
user_utils.check_user_sync.assert_has_calls([
19261935
call(user_id, "manage"),
19271936
call(user_id, "iot"),
@@ -1930,12 +1939,24 @@ def test_create_initial_user_for_saas(
19301939

19311940
if len(manage_security_groups) > 0:
19321941
user_utils.create_or_get_manage_api_key_for_user.assert_called_once_with("MAXADMIN", temporary=True)
1942+
1943+
# For version < 9.1, add_user_to_manage_group is called
1944+
# For version >= 9.1, set_user_group_reassignment_auth is called for PRIMARY users
1945+
if mas_version == '9.0':
1946+
user_utils.add_user_to_manage_group.assert_has_calls(
1947+
list(map(lambda sg: call(user_id, sg, manage_api_key), manage_security_groups))
1948+
)
1949+
user_utils.set_user_group_reassignment_auth.assert_not_called()
1950+
else: # 9.1
1951+
user_utils.add_user_to_manage_group.assert_not_called()
1952+
if user_type == "PRIMARY":
1953+
user_utils.set_user_group_reassignment_auth.assert_called_once_with(user_id, [{"groupname": "USERMANAGEMENT"}], manage_api_key)
1954+
else:
1955+
user_utils.set_user_group_reassignment_auth.assert_not_called()
19331956
else:
19341957
user_utils.create_or_get_manage_api_key_for_user.assert_not_called()
1935-
1936-
user_utils.add_user_to_manage_group.assert_has_calls(
1937-
map(lambda sg: call(user_id, sg, manage_api_key), manage_security_groups)
1938-
)
1958+
user_utils.add_user_to_manage_group.assert_not_called()
1959+
user_utils.set_user_group_reassignment_auth.assert_not_called()
19391960

19401961

19411962
def test_create_initial_users_for_saas_invalid_inputs(user_utils):

0 commit comments

Comments
 (0)