Project

General

Profile

Defect #1507

Work Time cannot be saved with Redmine-trunk(r19944)

Added by Yuichi HARADA 4 months ago. Updated 25 days ago.

Status:
解決(Resolved)
Priority:
高め(High)
Target version:
Start date:
08/04/2020
Due date:
% Done:

0%

Estimated time:

Description

When the user assigned to the assignee of the issue attempts to enter and update the work time, an input error will occur.

Using:
  • Redmine: trunk (r19944)
  • Work Time: master branch ( git clone -b master https://github.com/tkusukawa/redmine_work_time.git )

Files

worktime-user-invalid.png (177 KB) worktime-user-invalid.png Yuichi HARADA, 08/04/2020 09:33 AM
1507-worktime-user-invalid.patch (2.53 KB) 1507-worktime-user-invalid.patch Yuichi HARADA, 08/04/2020 09:42 AM
#1

Updated by Yuichi HARADA 4 months ago

The cause is that TimeEntry#author_id was added to the comparison condition by changing https://www.redmine.org/issues/32774 (https://www.redmine.org/projects/redmine/repository/revisions/19676/diff/trunk/app/models/time_entry.rb).

if user_id_changed? && user_id != author_id && !user.allowed_to?(:log_time_for_other_users, project)

I think the following patch will solve this issue.

diff --git a/app/controllers/work_time_controller.rb b/app/controllers/work_time_controller.rb
index 66018dd..97d27f9 100644
--- a/app/controllers/work_time_controller.rb
+++ b/app/controllers/work_time_controller.rb
@@ -781,7 +781,7 @@ private
               append_text += " add time entry of ##{issue.id.to_s}: #{tm_vals[:hours].to_f}h" 
               update_daily_memo(append_text, true)
             end
-            new_entry = TimeEntry.new(:project => issue.project, :issue => issue, :user => @this_user, :spent_on => @this_date)
+            new_entry = TimeEntry.new(:project => issue.project, :issue => issue, :user => @this_user, :author => User.current, :spent_on => @this_date)
             new_entry.safe_attributes = tm_vals
             new_entry.save
             append_error_message_html(@message, hour_update_check_error(new_entry, issue_id))
diff --git a/app/views/work_time/_user_day_table.html.erb b/app/views/work_time/_user_day_table.html.erb
index b3b86c5..2f07c66 100644
--- a/app/views/work_time/_user_day_table.html.erb
+++ b/app/views/work_time/_user_day_table.html.erb
@@ -147,7 +147,7 @@ prj_pack[:odr_issues].each do |issue_pack|
     <%= text_field_tag("new_time_entry["+issue_id.to_s+"][0][comments]", "", :size=>80)%>
   </td>
   <%if @custom_fields.length != 0
-      dummy_hour = TimeEntry.new(:project => issue.project, :issue => issue, :user => @this_user, :spent_on => @this_date)
+      dummy_hour = TimeEntry.new(:project => issue.project, :issue => issue, :user => @this_user, :author => User.current, :spent_on => @this_date)
       dummy_hour.custom_field_values.each do |cfv|
   %>
      <td><%= custom_field_tag "new_time_entry_"+issue_id.to_s+"_0", cfv %></td>
diff --git a/app/views/work_time/ajax_add_tickets_insert.html.erb b/app/views/work_time/ajax_add_tickets_insert.html.erb
index 6955beb..3f4b8e7 100644
--- a/app/views/work_time/ajax_add_tickets_insert.html.erb
+++ b/app/views/work_time/ajax_add_tickets_insert.html.erb
@@ -63,7 +63,7 @@
     <%= text_field_tag("new_time_entry["+@add_issue_id+"]["+@add_count+"][comments]", "", :size=>80)%>
   </td>
   <%if @custom_fields.length != 0
-      dummy_hour = TimeEntry.new(:project => @add_issue.project, :issue => @add_issue, :user => @this_user, :spent_on => @this_date)
+      dummy_hour = TimeEntry.new(:project => @add_issue.project, :issue => @add_issue, :user => @this_user, :author => User.current, :spent_on => @this_date)
       dummy_hour.custom_field_values.each do |cfv|
   %>
      <td><%= custom_field_tag "new_time_entry_"+@add_issue_id+"_"+@add_count, cfv %></td>
#2

Updated by Yuichi HARADA 4 months ago

https://github.com/tkusukawa/redmine_work_time/pull/5
A pull request has already been created. please confirm.

#3

Updated by Yuichi HARADA 3 months ago

Tomohisa Kusukawa
I am very in trouble. Could you give priority to this issue and respond?

#4

Updated by oya tatsuyoshi about 2 months ago

初めまして、私もYuichi HARADAさんと同様の問題が出ておりまして、本チケットにぶら下げる形でコメントさせていただきます。

現在、Redmine4.1.1にてwork time0.4.0を使わせていただいています。

システム管理者以外の全ロール(管理者や開発者など)でwork timeの日毎工数から時間を入力して更新ボタンを押しても、
 
 チケット#○○○○
 ユーザーは不正な値です

というエラーが出てしまい、工数を登録することが出来ません。
しかし、なぜか日毎工数の「ステータス」の部分だけは更新できる状態になっています。
管理画面の「権限レポート」のほうから各権限を全ロールに付与させてもこの問題を解決することが出来ませんでした。

今のところシステム管理者はこの問題がなく、正常にwork timeを利用することが出来ているのですが、様々なサイトから調べてみても同様の問題を探すことが出来す、手詰まりの状態です。

お忙しいところ大変恐縮ではございますが、何卒ご回答のほどよろしくお願いいたします。
また、何か必要な情報がありましたらご連絡いただきたく思います。

#5

Updated by Tomohisa Kusukawa about 2 months ago

  • Status changed from 新規(New) to 解決(Resolved)
  • Assignee set to Tomohisa Kusukawa
  • Target version set to 0.4.1

対応が停滞していて大変申し訳ありませんでした。

https://github.com/tkusukawa/redmine_work_time/pull/5
を取り込ませてもらって
先程 Ver0.4.1をリリースしました。
https://github.com/tkusukawa/redmine_work_time/archive/0.4.1.zip

こちらでご確認頂けますでしょうか。

#6

Updated by oya tatsuyoshi about 2 months ago

ご対応ありがとうございます。
早速試してみたのですが、状況は変わらず、システム管理者以外はステータス以外の更新ができませんでした。

お忙しい中申し訳ありませんがお時間のある際にご確認いただければと思います。
こちらでも何かわかり次第ご報告させていただきます。

#7

Updated by Tomohisa Kusukawa about 2 months ago

oyaさん
ご確認ありがとうございます。
念の為、管理画面のプラグインでWorkTimeのバージョンがいくつになっているか見て頂けますでしょうか。
またエラー時のログをお送り頂けると助かります。(エラー箇所の行番号が解ると思うので)

#8

Updated by Yuichi HARADA about 2 months ago

Tomohisa Kusukawa, I am grateful to you for your support.
I confirmed the operation with WorkTime Ver0.4.1. The man-hours could be updated without any error.

#9

Updated by oya tatsuyoshi about 1 month ago

Kusukawaさん
返信が遅くなってしまい大変申し訳ありません。
管理画面ではwork timeのバージョンは最新の0.4.1になっておりました。

また、現在Dockerでの運用をしているのですが、エラーを確認しようとしたところそれらしきログが見つかりませんでした。
その時のログを下に載せますので、確認していただけますと幸いです。

実行コマンド
tail -n30 log/production.log

実行結果
Started POST "/redmine/work_time/index?day=19&month=10&prj=false&user=169&year=2020" for 127.0.0.1 at 2020-10-19 12:42:22 +0900
Processing by WorkTimeController#index as HTML
  Parameters: {"utf8"=>"?", "authenticity_token"=>"**********************", "year"=>"2020", "month"=>"10", "day"=>"19", "user"=>"169", "prj"=>"false", "new_time_entry"=>{"45076"=>{"0"=>{"hours"=>"", "activity_id"=>"77", "status_id"=>"3", "comments"=>""}}, "46786"=>{"0"=>{"hours"=>"", "activity_id"=>"77", "status_id"=>"2", "comments"=>""}}, "46312"=>{"0"=>{"hours"=>"0.1", "activity_id"=>"77", "status_id"=>"7", "comments"=>""}}}, "commit"=>"更新"}
  Current user: redmine (id=169)
  Rendering plugins/redmine_work_time/app/views/work_time/show.html.erb within layouts/base
  Rendered plugins/redmine_work_time/app/views/work_time/_select_project.html.erb (217.6ms)
  Rendered plugins/redmine_work_time/app/views/work_time/_user_month_table.html.erb (41.3ms)
  Rendered plugins/redmine_work_time/app/views/work_time/_user_day_table.html.erb (53.9ms)
  Rendered plugins/redmine_work_time/app/views/work_time/show.html.erb within layouts/base (319.4ms)
  Rendered plugins/redmine_wiki_extensions/app/views/wiki_extensions/_html_header.html.erb (0.0ms)
  Rendered plugins/redmine_wiki_unc/app/views/redmine_wiki_unc/_redmine_wiki_unc_partial.html.erb (0.1ms)
  Rendered plugins/sidebar_hide/app/views/sidebar/_hideButton_partial.html.erb (0.0ms)
  Rendered plugins/redmine_wiki_extensions/app/views/wiki_extensions/_body_bottom.html.erb (0.1ms)
Completed 200 OK in 597ms (Views: 256.5ms | ActiveRecord: 243.6ms)
#10

Updated by Koji Ohta 25 days ago

同様の問題に直面していましたが
work_timeのバージョンを0.4.0→0.4.1にしたところ解決しました。
参考になればと思い各種バージョンを記載します。

Environment:
  Redmine version                4.1.1.stable
  Ruby version                   2.6.6-p146 (2020-03-31) [x86_64-linux]
  Rails version                  5.2.4.2
  Environment                    production
  Database adapter               Mysql2
  Mailer queue                   ActiveJob::QueueAdapters::AsyncAdapter
  Mailer delivery                smtp
SCM:
  Subversion                     1.10.4
  Mercurial                      4.8.2
  Bazaar                         2.8.0
  Git                            2.20.1
  Filesystem                     
Redmine plugins:
  advanced_roadmap_v2            2.4.3
  kanban                         0.0.7
  plantuml_macro                 0.0.1
  redmine_issue_templates        1.1.0
  redmine_issues_tree            0.0.14
  redmine_knowledgebase          4.1.1
  redmine_lightbox2              0.5.1
  redmine_local_avatars          1.0.5.2.0
  redmine_slack                  0.2
  redmine_vividtone_my_page_blocks 2017/07/05
  redmine_work_time              0.4.1
  view_customize                 2.7.0

Also available in: Atom PDF