Sha256: b9a16c55f5f4f9cc6b865d333c24eeb1ff3befef3ca831bdd2114441178b57e5
Contents?: true
Size: 1014 Bytes
Versions: 31
Compression:
Stored size: 1014 Bytes
Contents
class DiscussionsMessagesController < AjaxController include WithAuthorization include WithUserDiscussionValidation before_action :set_discussion!, only: [:create, :destroy] before_action :authorize_user!, only: [:destroy] before_action :authorize_moderator!, only: [:question, :approve] def create @discussion.submit_message! message_params, current_user redirect_back(fallback_location: root_path) end def destroy current_message.destroy! redirect_back(fallback_location: root_path) end def approve current_message.toggle_approved! head :ok end def question current_message.toggle_not_actually_a_question! head :ok end private def set_discussion! @discussion ||= Discussion.find_by(id: params[:discussion_id]) end def authorize_user! current_message.authorize! current_user end def current_message @message ||= Message.find(params[:id]) end def message_params params.require(:message).permit(:content) end end
Version data entries
31 entries across 31 versions & 1 rubygems