Skip to content

Commit

Permalink
Merge PR #335 into 17.0
Browse files Browse the repository at this point in the history
Signed-off-by sebalix
  • Loading branch information
OCA-git-bot committed Jan 28, 2025
2 parents 77db565 + b2fd442 commit 03bef85
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 26 deletions.
6 changes: 6 additions & 0 deletions .oca/oca-port/blacklist/base_user_role.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"pull_requests": {
"OCA/server-backend#237": "(auto) Nothing to port from PR #237",
"OCA/server-backend#262": "(auto) Nothing to port from PR #262"
}
}
56 changes: 30 additions & 26 deletions base_user_role/tests/test_user_role.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,12 +137,9 @@ def test_role_1_2_with_dates(self):
self.assertEqual(user_group_ids, role_group_ids)

def test_role_unlink(self):
# Get role1 groups
role1_group_ids = (
self.role1_id.implied_ids.ids + self.role1_id.trans_implied_ids.ids
)
role1_group_ids.append(self.role1_id.group_id.id)
role1_group_ids = sorted(set(role1_group_ids))
# Get role1 and role2 groups
role1_groups = self.role1_id.trans_implied_ids | self.role1_id.group_id
role2_groups = self.role2_id.trans_implied_ids | self.role2_id.group_id

# Configure the user with role1 and role2
self.user_id.write(
Expand All @@ -153,22 +150,24 @@ def test_role_unlink(self):
]
}
)
# Check user has groups from role1 and role2
self.assertLessEqual(role1_groups, self.user_id.groups_id)
self.assertLessEqual(role2_groups, self.user_id.groups_id)
# Remove role2
self.role2_id.unlink()
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
self.assertEqual(user_group_ids, role1_group_ids)
# Check user has groups from only role1
self.assertLessEqual(role1_groups, self.user_id.groups_id)
self.assertFalse(role2_groups <= self.user_id.groups_id)
# Remove role1
self.role1_id.unlink()
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
self.assertEqual(user_group_ids, [])
# Check user has no groups from role1 and role2
self.assertFalse(role1_groups <= self.user_id.groups_id)
self.assertFalse(role2_groups <= self.user_id.groups_id)

def test_role_line_unlink(self):
# Get role1 groups
role1_group_ids = (
self.role1_id.implied_ids.ids + self.role1_id.trans_implied_ids.ids
)
role1_group_ids.append(self.role1_id.group_id.id)
role1_group_ids = sorted(set(role1_group_ids))
# Get role1 and role2 groups
role1_groups = self.role1_id.trans_implied_ids | self.role1_id.group_id
role2_groups = self.role2_id.trans_implied_ids | self.role2_id.group_id

# Configure the user with role1 and role2
self.user_id.write(
Expand All @@ -179,18 +178,23 @@ def test_role_line_unlink(self):
]
}
)
# Check user has groups from role1 and role2
self.assertLessEqual(role1_groups, self.user_id.groups_id)
self.assertLessEqual(role2_groups, self.user_id.groups_id)
# Remove role2 from the user
self.user_id.role_line_ids.filtered(
lambda rl: rl.role_id.id == self.role2_id.id
).unlink()
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
self.assertEqual(user_group_ids, role1_group_ids)
# Check user has groups from only role1
self.assertLessEqual(role1_groups, self.user_id.groups_id)
self.assertFalse(role2_groups <= self.user_id.groups_id)
# Remove role1 from the user
self.user_id.role_line_ids.filtered(
lambda rl: rl.role_id.id == self.role1_id.id
).unlink()
user_group_ids = sorted({group.id for group in self.user_id.groups_id})
self.assertEqual(user_group_ids, [])
# Check user has no groups from role1 and role2
self.assertFalse(role1_groups <= self.user_id.groups_id)
self.assertFalse(role2_groups <= self.user_id.groups_id)

def test_default_user_roles(self):
self.default_user.write(
Expand Down Expand Up @@ -257,16 +261,16 @@ def test_show_alert_computation(self):
self.assertFalse(self.user_id.show_alert)

def test_group_groups_into_role(self):
user_group_ids = [group.id for group in self.user_id.groups_id]
user_group_ids = self.user_id.groups_id.ids
# Check that there is not a role with name: Test Role
self.assertFalse(self.role_model.search([("name", "=", "Test Role")]))
# Call create_role function to group groups into a role
wizard = self.wiz_model.with_context(active_ids=user_group_ids).create(
{"name": "Test Role"}
)
wizard.create_role()
res = wizard.create_role()
# Check that a role with name: Test Role has been created
new_role = self.role_model.search([("name", "=", "Test Role")])
self.assertTrue(new_role)
# Check that the role has the correct groups
self.assertEqual(new_role.implied_ids.ids, user_group_ids)
new_role = self.env[res["res_model"]].browse(res["res_id"])
self.assertEqual(new_role.name, "Test Role")
# Check that the role has the correct groups (even if the order is not equal)
self.assertEqual(set(new_role.implied_ids.ids), set(user_group_ids))

0 comments on commit 03bef85

Please sign in to comment.