The bit of code in app/model/user.rb ensure_last_admin_remains_admin()
!new_record? && admin_changed? && !admin && User.unscoped.only_admin.except_hidden.size <= 1
evaluates (incorrectly) to true.
User.unscoped.only_admin.except_hidden.size = 1
Why is more than one admin required?
Created from redmine issue http://projects.theforeman.org/issues/7253
As per redmine comment.
Steps to Reproduce:
1. ensure only one admin is present
2. create "test" user with API or CLI, don't specify the admin flag (assume false, but would be stored as nil)
3. run "foreman-rake console", run: User.find_by_login("test").admin
4. edit the user via the web UI, try changing the first/last name
3. => nil
4. Administrator cannot be removed from the last admin account
3. => false
4. saves successfully
Moving to POST since upstream bug http://projects.theforeman.org/issues/7253 has been closed
Applied in changeset commit:b8391adc2f720734551c57af96a2a50b9699fb58.
QE Verified. I was having issues with the rake command above, but a minor tweak gave me results, and subsequently when I changed first/surname and re-ran, the updates appeared.
Verified in Satellite-6.1.0-RHEL-7-20150303.0
This bug is slated to be released with Satellite 6.1.
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.