diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 9684200..c3f0d48 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -305,6 +305,9 @@ module ApplicationHelper # Returns a string for users/groups option tags def principals_options_for_select(collection, selected=nil) s = '' + if collection.include?(User.current) + s << content_tag('option', "<< #{l(:label_me)} >>", :value => User.current.id) + end groups = '' collection.sort.each do |element| selected_attribute = ' selected="selected"' if option_value_selected?(element, selected) diff --git a/test/unit/helpers/application_helper_test.rb b/test/unit/helpers/application_helper_test.rb index c980077..3d98aaf 100644 --- a/test/unit/helpers/application_helper_test.rb +++ b/test/unit/helpers/application_helper_test.rb @@ -854,18 +854,21 @@ RAW end def test_principals_options_for_select_with_users + User.current = nil users = [User.find(2), User.find(4)] assert_equal %(), principals_options_for_select(users) end def test_principals_options_for_select_with_selected + User.current = nil users = [User.find(2), User.find(4)] assert_equal %(), principals_options_for_select(users, User.find(4)) end def test_principals_options_for_select_with_users_and_groups + User.current = nil users = [User.find(2), Group.find(11), User.find(4), Group.find(10)] assert_equal %() + %(), @@ -875,4 +878,10 @@ RAW def test_principals_options_for_select_with_empty_collection assert_equal '', principals_options_for_select([]) end + + def test_principals_options_for_select_should_include_me_option_when_current_user_is_in_collection + users = [User.find(2), User.find(4)] + User.current = User.find(4) + assert_include '', principals_options_for_select(users) + end end