diff --git a/app/controllers/concerns/rolify.rb b/app/controllers/concerns/rolify.rb index 5ced1153..099d2fb7 100644 --- a/app/controllers/concerns/rolify.rb +++ b/app/controllers/concerns/rolify.rb @@ -21,7 +21,7 @@ module Rolify # Gets all roles def all_roles(selected_role) - @roles = Role.editable_roles(@user_domain) + @roles = Role.editable_roles(@user_domain).by_priority if @roles.count.zero? Role.create_default_roles(@user_domain) diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb index 6e49a9a9..1d691d49 100644 --- a/app/helpers/users_helper.rb +++ b/app/helpers/users_helper.rb @@ -54,7 +54,7 @@ module UsersHelper # Returns a list of roles that the user can have def role_options - Role.editable_roles(@user_domain).where("priority >= ?", current_user.role.priority) + Role.editable_roles(@user_domain).where("priority >= ?", current_user.role.priority).by_priority end # Parses markdown for rendering. diff --git a/app/models/role.rb b/app/models/role.rb index 41c54bcf..b9af4b89 100644 --- a/app/models/role.rb +++ b/app/models/role.rb @@ -22,7 +22,7 @@ class Role < ApplicationRecord has_many :users - default_scope { includes(:role_permissions).distinct.order(:priority) } + default_scope { includes(:role_permissions) } scope :by_priority, -> { order(:priority) } scope :editable_roles, ->(provider) { where(provider: provider).where.not(name: %w[super_admin denied pending]) }