|
14 | 14 |
|
15 | 15 | import odoo
|
16 | 16 | from odoo.exceptions import AccessDenied, ValidationError
|
| 17 | +from odoo.fields import Command |
17 | 18 | from odoo.tests import common
|
18 | 19 |
|
19 | 20 | from odoo.addons.website.tools import MockRequest as _MockRequest
|
@@ -158,6 +159,44 @@ def test_login(self):
|
158 | 159 | self.assertEqual(token, "42")
|
159 | 160 | self.assertEqual(login, user.login)
|
160 | 161 |
|
| 162 | + @responses.activate |
| 163 | + def test_manager_login(self): |
| 164 | + """Test that login works and assigns the user to a manager group""" |
| 165 | + user = self._prepare_login_test_user() |
| 166 | + self._prepare_login_test_responses( |
| 167 | + id_token_body={"user_id": user.login, "groups": ["erp_manager"]} |
| 168 | + ) |
| 169 | + |
| 170 | + params = {"state": json.dumps({})} |
| 171 | + with MockRequest(self.env): |
| 172 | + db, login, token = self.env["res.users"].auth_oauth( |
| 173 | + self.provider_rec.id, |
| 174 | + params, |
| 175 | + ) |
| 176 | + self.assertTrue(user.has_group("base.group_erp_manager")) |
| 177 | + |
| 178 | + @responses.activate |
| 179 | + def test_ex_manager_login(self): |
| 180 | + """Test that login works and de-assigns the user from a manager group""" |
| 181 | + user = self._prepare_login_test_user() |
| 182 | + # Make them a manager |
| 183 | + user.write( |
| 184 | + {"groups_id": [Command.link(self.env.ref("base.group_erp_manager").id)]} |
| 185 | + ) |
| 186 | + self.assertTrue(user.has_group("base.group_erp_manager")) |
| 187 | + |
| 188 | + self._prepare_login_test_responses( |
| 189 | + id_token_body={"user_id": user.login, "groups": ["not_erp_manager"]} |
| 190 | + ) |
| 191 | + |
| 192 | + params = {"state": json.dumps({})} |
| 193 | + with MockRequest(self.env): |
| 194 | + db, login, token = self.env["res.users"].auth_oauth( |
| 195 | + self.provider_rec.id, |
| 196 | + params, |
| 197 | + ) |
| 198 | + self.assertFalse(user.has_group("base.group_erp_manager")) |
| 199 | + |
161 | 200 | @responses.activate
|
162 | 201 | def test_login_without_kid(self):
|
163 | 202 | """Test that login works when ID Token has no kid in header"""
|
|
0 commit comments