diff --git a/app/controllers/management/base_controller.rb b/app/controllers/management/base_controller.rb index 1bae36a76..ba8ece9f2 100644 --- a/app/controllers/management/base_controller.rb +++ b/app/controllers/management/base_controller.rb @@ -56,7 +56,7 @@ class Management::BaseController < ActionController::Base def manager_logged_in if current_manager - @manager_logged_in = User.find_by(id: session[:manager]["login"].last(1)) + @manager_logged_in = User.find_by_manager_login(session[:manager]["login"]) end end diff --git a/app/models/user.rb b/app/models/user.rb index 4b999207d..604132857 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -329,6 +329,10 @@ class User < ActiveRecord::Base where(conditions.to_hash).where(["username = ?", login]).first end + def self.find_by_manager_login(manager_login) + find_by(id: manager_login.last(1)) + end + def interests followables = follows.map(&:followable) followables.compact.map { |followable| followable.tags.map(&:name) }.flatten.compact.uniq diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb index c201fc03c..1d860e121 100644 --- a/spec/models/user_spec.rb +++ b/spec/models/user_spec.rb @@ -690,4 +690,17 @@ describe User do end + describe ".find_by_manager_login" do + it "works with a low ID" do + user = create(:user) + expect(User.find_by_manager_login("admin_user_#{user.id}")).to eq user + end + + it "works with a high ID" do + 10.times { create(:user) } + user = User.last + expect(User.find_by_manager_login("admin_user_#{user.id}")).to eq user + end + end + end