Commit 2e9c0e2b47ab1813a96af7afa08f4449eb4e2c2d

Authored by Dmitriy Zaporozhets
1 parent 843ea5bf

switch to use link_to_member to prevent 500 if user is a project owner but does …

…not have membership and leave comment
app/assets/stylesheets/gitlab_bootstrap/common.scss
... ... @@ -60,7 +60,7 @@
60 60 > a {
61 61 padding: 8px 20px;
62 62 margin-right: 7px;
63   - line-height: 19px;
  63 + line-height: 20px;
64 64 border-color: #EEE;
65 65 color: #888;
66 66 border-bottom: 1px solid #ddd;
... ...
app/assets/stylesheets/sections/notes.scss
... ... @@ -22,7 +22,7 @@ ul.notes {
22 22 .note-last-update {
23 23 font-style: italic;
24 24 }
25   - .note-author {
  25 + .author {
26 26 color: $style_color;
27 27 font-weight: bold;
28 28 &:hover {
... ...
app/helpers/projects_helper.rb
... ... @@ -20,16 +20,21 @@ module ProjectsHelper
20 20 end
21 21 end
22 22  
23   - def link_to_member(project, author)
  23 + def link_to_member(project, author, opts = {})
  24 + default_opts = { avatar: true }
  25 + opts = default_opts.merge(opts)
  26 +
24 27 return "(deleted)" unless author
25 28  
  29 + author_html = ""
  30 +
26 31 # Build avatar image tag
27   - avatar = image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av")
  32 + author_html << image_tag(gravatar_icon(author.try(:email)), width: 16, class: "lil_av") if opts[:avatar]
28 33  
29 34 # Build name span tag
30   - name = content_tag :span, author.name, class: 'author'
  35 + author_html << content_tag(:span, sanitize(author.name), class: 'author')
31 36  
32   - author_html = avatar + name
  37 + author_html = author_html.html_safe
33 38  
34 39 tm = project.team_member_by_id(author)
35 40  
... ... @@ -37,7 +42,7 @@ module ProjectsHelper
37 42 link_to author_html, project_team_member_path(project, tm), class: "author_link"
38 43 else
39 44 author_html
40   - end
  45 + end.html_safe
41 46 end
42 47  
43 48 def tm_path team_member
... ...
app/views/notes/_discussion.html.haml
... ... @@ -10,7 +10,7 @@
10 10 Show discussion
11 11 = image_tag gravatar_icon(note.author.email), class: "avatar s32"
12 12 %div
13   - = link_to note.author_name, project_team_member_path(@project, @project.team_member_by_id(note.author)), class: "note-author"
  13 + = link_to_member(@project, note.author, avatar: false)
14 14 - if note.for_merge_request?
15 15 - if note.diff
16 16 started a discussion on this merge request diff
... ... @@ -30,7 +30,7 @@
30 30 %div
31 31 - last_note = discussion_notes.last
32 32 last updated by
33   - = link_to last_note.author_name, project_team_member_path(@project, @project.team_member_by_id(last_note.author)), class: "note-author"
  33 + = link_to_member(@project, last_note.author, avatar: false)
34 34 %span.discussion-last-update
35 35 = time_ago_in_words(last_note.updated_at)
36 36 ago
... ...
app/views/notes/_note.html.haml
... ... @@ -9,7 +9,7 @@
9 9 = link_to project_note_path(@project, note), title: "Remove comment", method: :delete, confirm: 'Are you sure you want to remove comment?', remote: true, class: "danger js-note-delete" do
10 10 %i.icon-trash.cred
11 11 = image_tag gravatar_icon(note.author.email), class: "avatar s32"
12   - = link_to note.author_name, project_team_member_path(@project, @project.team_member_by_id(note.author)), class: "note-author"
  12 + = link_to_member(@project, note.author, avatar: false)
13 13 %span.note-last-update
14 14 = time_ago_in_words(note.updated_at)
15 15 ago
... ...