X-Git-Url: https://git.openstreetmap.org./rails.git/blobdiff_plain/453f758f91d57688663e354a54061a65945410e7..bdc6adddbfdcc57bd300688f48b28e027e561728:/app/controllers/issues_controller.rb diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb index 0479e6641..752bcd236 100644 --- a/app/controllers/issues_controller.rb +++ b/app/controllers/issues_controller.rb @@ -1,6 +1,9 @@ class IssuesController < ApplicationController layout "site" + before_action :authorize_web + before_action :require_user + before_action :check_permission, only: [:index, :show, :resolve,:open,:ignore,:comment] before_action :find_issue, only: [:show, :resolve, :reopen, :ignore] def index @@ -10,11 +13,13 @@ class IssuesController < ApplicationController def show @read_reports = @issue.read_reports @unread_reports = @issue.unread_reports + @comments = @issue.comments end def new unless create_new_issue_params.blank? @issue = Issue.find_or_initialize_by(create_new_issue_params) + puts params[:user_id].to_s + "--------------" end end @@ -23,20 +28,27 @@ class IssuesController < ApplicationController if !@issue @issue = Issue.find_or_initialize_by(issue_params) @admins = UserRole.where(role: "administrator") - @admins.each do |user| - Notifier.new_issue_notification(User.find(user.user_id)).deliver_now + @admins.each do |admin| + Notifier.new_issue_notification(User.find(admin.user_id)).deliver_now end end - @report = @issue.reports.build(report_params) - - if @issue.save - redirect_to @issue, notice: 'Issue was successfully created.' + @report.user_id = @user.id + if @issue.save! + redirect_to root_path, notice: 'Issue was successfully created.' else render :new end end + def comment + @issue = Issue.find(params[:id]) + @issue_comment = @issue.comments.build(issue_comment_params) + @issue_comment.user_id = @user.id + @issue_comment.save! + redirect_to @issue + end + # Status Transistions def resolve if @issue.resolve @@ -71,6 +83,13 @@ class IssuesController < ApplicationController @issue = Issue.find(params[:id]) end + def check_permission + unless @user.administrator? + flash[:error] = t("application.require_admin.not_an_admin") + redirect_to root_path + end + end + def create_new_issue_params params.permit(:reportable_id, :reportable_type, :user_id) end @@ -82,4 +101,8 @@ class IssuesController < ApplicationController def report_params params[:report].permit(:details) end + + def issue_comment_params + params.require(:issue_comment).permit(:body, :user_id) + end end