Project

General

Profile

Actions

Bug #32704

closed

The /api/usergroups/:usergroup_id/external_usergroups API is not accepting 1-group as the name of usergroup

Added by Tomer Brisker over 2 years ago. Updated over 2 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Users, Roles and Permissions
Target version:
-
Difficulty:
Triaged:
No
Fixed in Releases:
Found in Releases:

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"


Related issues 1 (0 open1 closed)

Related to Foreman - Refactor #23234: remove friendly_id <5.0 workaroundsClosedTomer BriskerActions
Actions #1

Updated by Tomer Brisker over 2 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)

Actions #2

Updated by Tomer Brisker over 2 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

Actions #3

Updated by Tomer Brisker over 2 years ago

Actions #4

Updated by The Foreman Bot over 2 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
Actions #5

Updated by The Foreman Bot over 2 years ago

  • Fixed in Releases 3.0.0 added
Actions #6

Updated by Tomer Brisker over 2 years ago

  • Status changed from Ready For Testing to Closed
Actions

Also available in: Atom PDF