https://www.redmine.org/https://www.redmine.org/favicon.ico?16793021292022-05-19T09:39:16ZRedmineRedmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1067392022-05-19T09:39:16ZDavid Robinson
<ul></ul><p>Usernames here are often of the form: <a class="email" href="mailto:user@domain.tld">user@domain.tld</a></p> Redmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1067452022-05-20T11:21:00ZVD DV
<ul></ul><p>We have same behavior at our 5.0 installation.</p> Redmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1067462022-05-20T11:28:20ZDavid Robinson
<ul></ul><p>VD DV wrote:</p>
<blockquote>
<p>We have same behavior at our 5.0 installation.</p>
</blockquote>
<p>In case you want a workaround while this is fixed, I have made the following in a "plugin" to fix it here:</p>
<pre><code class="ruby syntaxhl"><span class="no">Redmine</span><span class="o">::</span><span class="no">Acts</span><span class="o">::</span><span class="no">Mentionable</span><span class="o">::</span><span class="no">InstanceMethods</span><span class="p">.</span><span class="nf">module_eval</span> <span class="k">do</span>
<span class="k">def</span> <span class="nf">scan_for_mentioned_users</span><span class="p">(</span><span class="n">content</span><span class="p">)</span>
<span class="k">return</span> <span class="p">[]</span> <span class="k">if</span> <span class="n">content</span><span class="p">.</span><span class="nf">nil?</span>
<span class="c1"># remove quoted text</span>
<span class="n">content</span> <span class="o">=</span> <span class="n">content</span><span class="p">.</span><span class="nf">gsub</span><span class="p">(</span><span class="sr">%r{</span><span class="se">\r\n</span><span class="sr">(?:</span><span class="se">\>\s</span><span class="sr">)+(.*?)</span><span class="se">\r\n</span><span class="sr">}m</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
<span class="n">text_formatting</span> <span class="o">=</span> <span class="no">Setting</span><span class="p">.</span><span class="nf">text_formatting</span>
<span class="c1"># Remove text wrapped in pre tags based on text formatting</span>
<span class="k">case</span> <span class="n">text_formatting</span>
<span class="k">when</span> <span class="s1">'textile'</span>
<span class="n">content</span> <span class="o">=</span> <span class="n">content</span><span class="p">.</span><span class="nf">gsub</span><span class="p">(</span><span class="sr">%r{&lt;pre&gt;(.*?)&lt;/pre&gt;}m</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
<span class="k">when</span> <span class="s1">'markdown'</span><span class="p">,</span> <span class="s1">'common_mark'</span>
<span class="n">content</span> <span class="o">=</span> <span class="n">content</span><span class="p">.</span><span class="nf">gsub</span><span class="p">(</span><span class="sr">%r{(~~~|```)(.*?)(~~~|```)}m</span><span class="p">,</span> <span class="s1">''</span><span class="p">)</span>
<span class="k">end</span>
<span class="n">users</span> <span class="o">=</span> <span class="n">content</span><span class="p">.</span><span class="nf">scan</span><span class="p">(</span><span class="no">MENTION_PATTERN</span><span class="p">).</span><span class="nf">flatten</span>
<span class="k">end</span>
<span class="no">MENTION_PATTERN</span> <span class="o">=</span> <span class="sr">/
(?:^|\W) # beginning of string or non-word char
@((?&gt;[a-z0-9][@\.a-z0-9-]*)) # @username
(?!\/) # without a trailing slash
(?=
\.+[ \t\W]| # dots followed by space or non-word character
\.+$| # dots at end of line
[^0-9a-zA-Z_.]| # non-word character except dot
$ # end of line
)
/ix</span>
<span class="k">end</span>
</code><br /></pre><br />This works here, but I have no idea if there are some quirky edge-cases where it might break.<br />You can either make a plugin with it, or just patch the lib/redmine/acts/mentionable file. Redmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1068062022-05-27T18:54:59ZMarius BĂLTEANU
<ul><li><strong>Assignee</strong> set to <i>Marius BĂLTEANU</i></li><li><strong>Target version</strong> set to <i>5.0.2</i></li></ul> Redmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1070062022-06-20T05:54:45ZMarius BĂLTEANU
<ul><li><strong>Category</strong> set to <i>Email notifications</i></li><li><strong>Status</strong> changed from <i>New</i> to <i>Resolved</i></li><li><strong>Resolution</strong> set to <i>Fixed</i></li></ul><p>Fix committed. I've reused the Regex from user links.</p> Redmine - Defect #37138: Mentions of users with "@" in their usernamehttps://www.redmine.org/issues/37138?journal_id=1070102022-06-20T15:19:36ZMarius BĂLTEANU
<ul><li><strong>Status</strong> changed from <i>Resolved</i> to <i>Closed</i></li></ul>