Defect #26892

Link to user in wiki syntax only works when login is written in lower case

Added by Anders Thomsen 9 months ago. Updated 1 day ago.

Status:ConfirmedStart date:
Priority:NormalDue date:
Assignee:Jean-Philippe Lang% Done:

0%

Category:Text formatting
Target version:4.0.0
Resolution: Affected version:3.4.2

Description

Related: #4179

The plugin "Redmine Mentions" gives a handy dropdown with users when hitting "@" on the keyboard. Selecting a user puts "@loginname" in the textbox. This works great with the feature implemented in #4179. However, if the user's login contains capital letters it is not recognized by the regex in application_helper.

"Redmine mentions" puts in the actual login-name with exact casing (what I believe is the correct behaivour).

The regex should be ajusted to a-zA-Z

0001-user-link-syntax-should-work-also-with-logins-in-upp.patch Magnifier (1.79 KB) Marius BALTEANU, 2018-04-08 09:38


Related issues

Related to Redmine - Feature #4179: Link to user in wiki syntax Closed 2009-11-08
Blocked by Redmine - Defect #26443: User link syntax (user:login) doesn't work for logins con... Closed

History

#1 Updated by Go MAEDA 9 months ago

#2 Updated by Toshi MARUYAMA 8 months ago

  • Target version set to 4.1.0

#3 Updated by Marius BALTEANU 2 months ago

  • Blocked by Defect #26443: User link syntax (user:login) doesn't work for logins consisting of an email adress added

#4 Updated by Marius BALTEANU 2 months ago

Attached is a patch that fixes this issue and it should be applied after #26443.

#5 Updated by Marius BALTEANU 2 months ago

  • Status changed from New to Confirmed

#6 Updated by Jean-Philippe Lang 2 days ago

  • Assignee set to Marius BALTEANU

Marius, I have applied #26443 and I'm getting a failure for the test included in this patch:

Failure:
ApplicationHelperTest#test_redmine_links [test/helpers/application_helper_test.rb:406]:
user:JSMITH failed.
Expected: "<p><a class=\"user active\" href=\"/users/2\">John Smith</a></p>" 
  Actual: "<p>user:JSMITH</p>" 

Can you have a look please?

#7 Updated by Go MAEDA 2 days ago

Jean-Philippe Lang wrote:

Marius, I have applied #26443 and I'm getting a failure for the test included in this patch:

This is a workaround for the error.

Index: app/helpers/application_helper.rb
===================================================================
--- app/helpers/application_helper.rb    (revision 17395)
+++ app/helpers/application_helper.rb    (working copy)
@@ -975,12 +975,12 @@
                 link = link_to_project(p, {:only_path => only_path}, :class => 'project')
               end
             when 'user'
-              u = User.visible.where(:login => name, :type => 'User').first
+              u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first
               link = link_to_user(u, :only_path => only_path) if u
             end
           elsif sep == "@" 
             name = remove_double_quotes(identifier)
-            u = User.visible.where(:login => name, :type => 'User').first
+            u = User.visible.where("LOWER(login) = :s AND type = 'User'", :s => name.downcase).first
             link = link_to_user(u, :only_path => only_path) if u
           end
         end

#8 Updated by Marius BALTEANU 2 days ago

  • Assignee deleted (Marius BALTEANU)
  • Target version changed from 4.1.0 to 4.0.0

I agree with the workaround posted above by Go Maeda, it is enough to fix the failing test. It seems that on my local environment, the search is case insensitive and the test doesn't fail.

#9 Updated by Go MAEDA 1 day ago

  • Assignee set to Jean-Philippe Lang

Also available in: Atom PDF