diff --git a/app/controllers/user_feedbacks_controller.rb b/app/controllers/user_feedbacks_controller.rb index bc68ffd22..815abbb38 100644 --- a/app/controllers/user_feedbacks_controller.rb +++ b/app/controllers/user_feedbacks_controller.rb @@ -49,6 +49,6 @@ class UserFeedbacksController < ApplicationController private def check_privilege(user_feedback) - raise User::PrivilegeError unless (user_feedback.creator_id == CurrentUser.id || CurrentUser.is_moderator?) + raise User::PrivilegeError unless user_feedback.editable_by?(CurrentUser.user) end end diff --git a/app/models/user_feedback.rb b/app/models/user_feedback.rb index 19059f87a..dc7536da4 100644 --- a/app/models/user_feedback.rb +++ b/app/models/user_feedback.rb @@ -98,4 +98,8 @@ class UserFeedback < ActiveRecord::Base return true end end + + def editable_by?(editor) + (editor.is_moderator? && editor != user) || creator == editor + end end diff --git a/app/views/user_feedbacks/index.html.erb b/app/views/user_feedbacks/index.html.erb index d6490f147..005e7d1bc 100644 --- a/app/views/user_feedbacks/index.html.erb +++ b/app/views/user_feedbacks/index.html.erb @@ -20,7 +20,7 @@ <%= compact_time(feedback.created_at) %> <%= format_text(feedback.body) %> - <% if feedback.creator_id == CurrentUser.id || CurrentUser.is_moderator? %> + <% if feedback.editable_by?(CurrentUser.user) %> <%= link_to "edit", edit_user_feedback_path(feedback) %> | <%= link_to "delete", user_feedback_path(feedback), :method => :delete, :data => {:confirm => "Are you sure you want to delete this user feedback?"} %> <% end %> diff --git a/app/views/user_feedbacks/show.html.erb b/app/views/user_feedbacks/show.html.erb index 0d45da9bb..34efbfb57 100644 --- a/app/views/user_feedbacks/show.html.erb +++ b/app/views/user_feedbacks/show.html.erb @@ -9,7 +9,7 @@
  • Message <%= format_text @user_feedback.body %>
  • - <% if @user_feedback.creator_id == CurrentUser.id || CurrentUser.is_moderator? %> + <% if @user_feedback.editable_by?(CurrentUser.user) %>

    <%= link_to "Edit", edit_user_feedback_path(@user_feedback) %>

    <% end %>