Bug #32704
closedThe /api/usergroups/:usergroup_id/external_usergroups API is not accepting 1-group as the name of usergroup
Description
Cloned from https://bugzilla.redhat.com/show_bug.cgi?id=1967319
Description of problem:
The redhat.satellite.external_usergroup calls this API --> GET /api/usergroups/:usergroup_id/external_usergroups
As per the satellite apidoc the :usergroup_id , should be a string
But if I decide to use a satellite usergroup name e.g "1-group" , it fails whereas "1 group" works fine.
So the hyphen (-) is creating some sort of issue here.
Version-Release number of selected component (if applicable):
Satellite 6.9
How reproducible:
Always
Steps to Reproduce:
1. Build a Satellite 6.9
2. Create a usergroup by name "1-group"
3. Run following API --> curl -ku admin:RedHat1! "https://satellite.example.com/api/v2/usergroups/1-group/external_usergroups/"
4. Modify the usergroup name from "1-group" to "1 group"
5. Run following API --> curl -ku admin:RedHat1! "https://satellite.example.com/api/v2/usergroups/1%20group/external_usergroups/"
Actual results:
Step 3 error:
~~
{
"error": {"message":"Resource external_usergroup not found by id ''"}
}
~~
Step 5 success:
~~
{
"total": 0,
"subtotal": 0,
"page": 1,
"per_page": 20,
"search": null,
"sort": {
"by": null,
"order": null
},
"results": []
}
~~
Expected results:
Step 3 should be successful as well.
Additional info:
This affects the working of redhat.satellite.external_usergroup module if customer decided to map an AD group to Satellite usergroup by name "043-enterprise systems"
Updated by Tomer Brisker over 3 years ago
- Category set to Users, Roles and Permissions
The issue comes from https://github.com/theforeman/foreman/blob/develop/app/controllers/concerns/find_common.rb#L11-L19 which tries to run `from_param` on the usergroup name, which is not correct in this case (friendly id should be used instead)
Updated by Tomer Brisker over 3 years ago
looking at the specific request again, looks like it's actually https://github.com/theforeman/foreman/blob/de32fd1bafe4bff54e7e243cf242cfeda12cf955/app/controllers/api/base_controller.rb#L327 that is the culprit where finding the nested object does not work as expected
Updated by Tomer Brisker over 3 years ago
- Related to Refactor #23234: remove friendly_id <5.0 workarounds added
Updated by The Foreman Bot over 3 years ago
- Status changed from New to Ready For Testing
- Assignee set to Tomer Brisker
- Pull request https://github.com/theforeman/foreman/pull/8575 added
Updated by Tomer Brisker over 3 years ago
- Status changed from Ready For Testing to Closed
Applied in changeset foreman|3d3efb62ed9c5d843b3b69b82bce7472fdaddae8.