Feature #3848
closedPermission to log time for another user
Added by Cedric VINCENT almost 15 years ago. Updated over 2 years ago.
0%
Description
This patch allows the current user to record the time spent by another one, as you can see in timelog1.png and timelog2.png I wrote this patch because my co-workers are too lazy busy to update their issues ;)
I never programmed in Ruby before this patch, so feel free to rewrite it at your convenience. Maybe an exception should be thrown in the controllers if the current user tries to edit a time entry he is not allowed to, even if it is already checked in the views.
Files
Related issues
Updated by Cedric VINCENT almost 15 years ago
Patch to apply against redmine-0.8.4
Updated by Eric Davis almost 15 years ago
- Category set to Time tracking
Thank you, that's a good feature. We'll need to update the patch to apply to trunk. I'm not sure if the edit time entries permission should be used or if a new one should be created.
Updated by Jean-Philippe Lang almost 15 years ago
I think a new permission would be required if we add this feature.
Updated by Cedric VINCENT almost 15 years ago
- File 0002-Access-params-time_entry-only-if-editing-a-time-entr.patch 0002-Access-params-time_entry-only-if-editing-a-time-entr.patch added
- File 0003-Allow-to-change-the-owner-a-protected-attribute-of-a.patch 0003-Allow-to-change-the-owner-a-protected-attribute-of-a.patch added
Oops! There are two bugs in the previous patch, here come the corresponding fixes:
- Access params[:time_entry] only if editing a time entry. It fixes the error "ActiveRecord::RecordNotFound".
- Allow to change the "owner" of a time entry. Previously, the "owner" was not changed because it is a protected attribute.
Cheers,
Cedric.
Updated by Oleg Volkov over 14 years ago
You can update the patch to version 0.9.3?
Updated by Oleg Volkov over 14 years ago
This patch is not entirely correct, since there is no information who (instead of the user) has made him the information. In addition, there is a need to create new questions and make comments from another user. Both questions are needed when the user is not possible to do it yourself, and he asked the operator to do so by phone.
Updated by Oleg Volkov over 14 years ago
This path is changed:
1. Allow change user only entry/edit "Spent time" (http://www.redmine.org/attachments/2520/timelog1.png) and disabled from Issue Update (http://www.redmine.org/attachments/2521/timelog2.png).
2. Select only users with permission to add record time. (Excluded admin!)
TODO: Logged real user name.
Updated by Oleg Volkov over 14 years ago
I created a new version of the patch.
The patch is shorter.
Updated by Arnaud Lesauvage over 13 years ago
I'm very interested in this patch. Is the patch submitted by Oleg still working ?
We are running redmine against trunk r4359.
I still think this is a very useful feature. In our company, we have projects where the workers do not encode their spent times themselves.
Eric and Jean-Philippe both have shown interest in this so I am hopeful in seeing this integrated in trunk ?
Updated by Jack T over 13 years ago
Updated Oleg's patch to work on Redmine 1.1.0.
I'm new to Redmine, and one of the updates I made to Oleg's patch was in app/controllers/timelog_controller.rb
, I made changes to both def new
and def create sections instead of @def edit
.
Updated by Lars Dornheim about 13 years ago
- File patch-3848_log-time-for-others-users-ld.diff patch-3848_log-time-for-others-users-ld.diff added
The last patch did not work for my Redmine 1.1.0.stable.4761, so I adapted it a little bit to work with my Redmine. Furthermore editing of the user field of existing time logs now works for me, too.
Updated by Pavel Potcheptsov over 11 years ago
Is there any plan to include this in current?
Updated by Pavel Potcheptsov over 11 years ago
this worked for 1.3.3
but unfortunately last patch doesn't work with current 2.x.x
any suggestions?
Updated by Bishma Stornelli Ortega over 11 years ago
I update the patch to work with version 2.2.1. I haven't tested in any other version.
Some changes were added. In a nutshell, this patch does:
- Allow users with permission :edit_time_entries to log time in a project for another user assigned to that project and with permission to log time.
- Since an admin does not need to be assigned to a project to log time in it, he/she will be added to the select list of users as "<< me >>"
- The label << me >> will appear in the select list if the available users include the current user (or if current user is admin as mentioned before).
- These log can be done either through /projects/identifier/time_entries/new or when updating an issue. Maybe I'll add later the option to update through /time_entries/new but it will require a little adittional work.
Let me know if you find any bug.
Updated by Toshi MARUYAMA over 11 years ago
- Tracker changed from Patch to Feature
Updated by Daniel Felix over 11 years ago
Maybe this could be a candidate for 2.4?
Updated by Cassiano Monteiro over 11 years ago
Agreed. This is definitely something I need (my co-workers are very lazy on logging their times).
Updated by Gary Watson about 11 years ago
A slightly updated diff that works with redmine 2.3.1 There was a small modification I had to make by hand to get the patch to apply otherwise it's the same as the one produced by Bishma Stornelli Ortega that worked with 2.2.1
Updated by Maximilian Schwerin almost 11 years ago
The last patch requires ruby >= 1.9.2.
+1 for including this in asap
Updated by Paul Freund over 10 years ago
The patch from Gary Watson also works with version 2.4.2 if you remove the diff for issue.rb. I've attatched an updated patch. All use cases we tested worked but I can't guarantee it works in all.
Updated by Pavel Potcheptsov about 10 years ago
Paul Freund wrote:
The patch from Gary Watson also works with version 2.4.2 if you remove the diff for issue.rb. I've attatched an updated patch. All use cases we tested worked but I can't guarantee it works in all.
is there any plan to include this functionality in trunk?
Updated by Alex Dergachev almost 10 years ago
I just threw together a hacky plugin that seeks to achieve the same thing
It doesn't check any permissions and probably has other bugs, but it works for us on redmine 2.6 without hacking core:
Updated by Patrik Halfar over 9 years ago
Hi all,
for latest version 2.6.1 I'm using following patch, is has origin in patch from this feature request, but include separete permisson, so it is possible permit this functionality for some roles only.
Intersting should be add functionality requested by #8505.
Updated by Josh Ovett over 9 years ago
We tested Patrick Halfars patch, Redmine_foreign_timelog.patch and it breaks redmine 2.6.1.
Updated by Henry Auffahrt over 9 years ago
+1 is there a plugin for that?
Our Admin only want to implement plugins and no patch files. Thanks a Lot!
Updated by Pavel Potcheptsov about 9 years ago
Unfortunately this path doesn't work in redmine 3.x.
If you select another person you want to log time for, you'll get time entries logged by yourself and not by that person.
Updated by Alexander Ryabinovskiy about 9 years ago
We use this plugin http://www.redmine.org/plugins/redmine_work_time with Redmine 3.1.0. It allows to add / edit work time of another users. But it is not very simple, please add this functionality to Redmine core!
Updated by Александр Скворцов over 8 years ago
How select collection: assigned and current user only?
Updated by Andor Tóth about 8 years ago
I have updated Patrik's patch for 3.2.0.stable.
Updated by Toshi MARUYAMA almost 7 years ago
- Has duplicate Feature #27328: edit the time of the user added
Updated by Andrei Melis over 6 years ago
Edited the patch above for 3.4 (tested on 3.4.2)
Updated by Grant Ferley over 6 years ago
My Synology docker Redmine recently went to 3.3.6-1 so instead of manually patching I just put it in a plugin. I'll be adding my own custom stuff, but for now the master version is just a plugin for Patrik's 3.2 patch. YMMV, and it's my first attempt at ruby and Redmine plugins.
https://github.com/gferley/redmine_ferplugin
Updated by Hans Kaiser over 6 years ago
Grant Ferley wrote:
My Synology docker Redmine recently went to 3.3.6-1 so instead of manually patching I just put it in a plugin. I'll be adding my own custom stuff, but for now the master version is just a plugin for Patrik's 3.2 patch. YMMV, and it's my first attempt at ruby and Redmine plugins.
https://github.com/gferley/redmine_ferplugin
great! do you know if your plugins supports also redmine 3.2.1. If so I can be your alpha tester...
By the way, the issue is already 8 years old. Is there any plan to integrate this patch into latest 3.x branch or maybe even into 4.0 branch?
Updated by Marius BĂLTEANU over 6 years ago
- File new_log_time.png new_log_time.png added
- File filter_and_columns.png filter_and_columns.png added
- File permissions.png permissions.png added
- File 0001-Allow-the-current-user-to-log-time-for-other-users.patch added
I made a new patch for this feature (inspired from the existing ones) which is more complete from my point of view.
The patch:
- adds a new column ('author_id') to the time entries table where the user who logs the time spent is saved. For the existing entries, author_id will be filled with the user_id during the migration. I found this change a must for this feature.
- makes this new column available in the columns list and filters (from Spent time tab)
- renames the permission to "Add time logs for other users"
- adds tests
- adds the user field only in the new log time page. I don't find it necessary to add the select field also to the time log section from the issue edit page.
Some screenshots attached.
This feature is long requested and it has multiple duplicate issues.
Updated by Marius BĂLTEANU over 6 years ago
- Related to deleted (Feature #7239: Allow some users to add / edit time entries on behalf of other users)
Updated by Marius BĂLTEANU over 6 years ago
- Has duplicate Feature #7239: Allow some users to add / edit time entries on behalf of other users added
Updated by Marius BĂLTEANU over 6 years ago
- Related to deleted (Feature #9276: Log Time on an issue assigned to other)
Updated by Marius BĂLTEANU over 6 years ago
- Has duplicate Feature #9276: Log Time on an issue assigned to other added
Updated by Marius BĂLTEANU over 6 years ago
- Related to deleted (Feature #6486: Log time for other users)
Updated by Marius BĂLTEANU over 6 years ago
- Has duplicate Feature #6486: Log time for other users added
Updated by Go MAEDA over 6 years ago
Marius, thank you for your great work. This is one of the long-awaited features.
The patch 0001-Allow-the-current-user-to-log-time-for-other-users.patch works almost fine, however, I found only one small issue. Users who don't have "Log spent time" permission should not be able to access TimelogController#new page, however, they can access the page via "+" button if they have "Log time for other users" permission. They can fill the form but they will see 403 error after hitting "Create" button.
Updated by Go MAEDA over 6 years ago
- Target version set to Candidate for next major release
Updated by Marius BĂLTEANU over 6 years ago
- File 0001-Allow-the-current-user-to-log-time-for-other-users.patch added
Thanks for pointing this out. I've fixed the issue in the attached patch.
Updated by Marius BĂLTEANU over 6 years ago
- File deleted (
0001-Allow-the-current-user-to-log-time-for-other-users.patch)
Updated by Go MAEDA over 6 years ago
- Target version changed from Candidate for next major release to 4.1.0
Now the patch series looks good. Setting target version to 4.1.0.
Updated by Holger Just over 6 years ago
I really like the idea of this feature and would love to have the ability to log time for other users in Redmine. Good job on polishing the patch and making it ready for inclusion, Marius!
I still have some behavior-related comments about the latest patch by Marius from #3848-44:
- If the current user doesn't have the permission to edit time entries for other users, I would rather see the creation / edit of a time entry rejected rather than silently logged to the current user, e.g. with a validation error. The currentlt defined behavior could lead to unexpected data, esp. when used via the API
TimelogHelper#user_collection_for_select_options
should probably usecollection = project.members.active.map(&:user)
to ensure that locked users don't show up in the list of users- The list of allowed users should be checked with a validation on the
TimeEntry
model too in order to prevent someone assigning hours to arbitrary users. - In the
TimelogController#create
action, we will see an exception if somene (e.g. via the API) doesn't correctly provideparams[:time_entries]
. This case should be handled.
Updated by Go MAEDA over 6 years ago
- Assignee set to Marius BĂLTEANU
- Target version changed from 4.1.0 to Candidate for next major release
Updated by Marius BĂLTEANU over 6 years ago
Holger Just wrote:
I really like the idea of this feature and would love to have the ability to log time for other users in Redmine. Good job on polishing the patch and making it ready for inclusion, Marius!
I still have some behavior-related comments about the latest patch by Marius from #3848-44:
- If the current user doesn't have the permission to edit time entries for other users, I would rather see the creation / edit of a time entry rejected rather than silently logged to the current user, e.g. with a validation error. The currentlt defined behavior could lead to unexpected data, esp. when used via the API
TimelogHelper#user_collection_for_select_options
should probably usecollection = project.members.active.map(&:user)
to ensure that locked users don't show up in the list of users- The list of allowed users should be checked with a validation on the
TimeEntry
model too in order to prevent someone assigning hours to arbitrary users.- In the
TimelogController#create
action, we will see an exception if somene (e.g. via the API) doesn't correctly provideparams[:time_entries]
. This case should be handled.
Thanks Holger for your feedback. I'll update my patch these days to integrate your feedback.
Updated by Marius BĂLTEANU about 6 years ago
- File 0001-Allow-the-current-user-to-log-time-for-other-users.patch 0001-Allow-the-current-user-to-log-time-for-other-users.patch added
- Assignee deleted (
Marius BĂLTEANU)
I've reworked my patch in order to include the issues reported by Holger Just.
Updated by Marius BĂLTEANU about 6 years ago
- File deleted (
0001-Allow-the-current-user-to-log-time-for-other-users.patch)
Updated by Marius BĂLTEANU about 6 years ago
- Target version changed from Candidate for next major release to 4.1.0
Updated by Jean-Philippe Lang over 5 years ago
- Subject changed from Allow the current user to record the time spent by another one. to Permission to log time for another user
- Status changed from New to Closed
- Resolution set to Fixed
Patch is committed, thanks for your work on this feature.
Updated by Marius BĂLTEANU over 5 years ago
- File fix_locales.diff fix_locales.diff added
- Status changed from Closed to Reopened
Jean-Philippe, please apply the attached patch in order to update the translation for error_not_allowed_to_log_time_for_other_users
also for the generated locales. I think that you first generated the locales and after that you have changed the en translation.
Updated by Jean-Philippe Lang over 5 years ago
- Status changed from Reopened to Closed
You're right, thanks!
Updated by Marius BĂLTEANU over 5 years ago
Oh, sorry, I've missed to update the translation for en-GB.yml in my previous patch (source:trunk/config/locales/en-GB.yml#L1263).
Updated by Marius BĂLTEANU over 5 years ago
- Status changed from Closed to Reopened
Please commit the below change:
vagrant@jessie:/vagrant/project/redmine$ git diff
diff --git a/config/locales/en-GB.yml b/config/locales/en-GB.yml
index 00db732..5cd0e14 100644
--- a/config/locales/en-GB.yml
+++ b/config/locales/en-GB.yml
@@ -1260,6 +1260,5 @@ en-GB:
error_spent_on_future_date: Cannot log time on a future date
setting_timelog_accept_future_dates: Accept time logs on future dates
label_delete_link_to_subtask: Delete relation
- error_not_allowed_to_log_time_for_other_users: Your role is not allowed to log time
- for other users
+ error_not_allowed_to_log_time_for_other_users: You are not allowed to log time for other users
permission_log_time_for_other_users: Log spent time for other users
Updated by Go MAEDA almost 5 years ago
- Related to Patch #32196: Allow import time entries for other users added
Updated by Marius BĂLTEANU over 4 years ago
- Related to Defect #32774: Creating time tracking entry for other user through rest API fails with 403 added
Updated by Go MAEDA over 4 years ago
- Related to Defect #32959: Fix selected user on log time edit page when user has permissions to log time for another user added
Updated by Marius BĂLTEANU over 4 years ago
- Related to Defect #32973: Editing a time entry for a locked user changes the user to the current user added
Updated by Go MAEDA over 4 years ago
- Has duplicate Feature #3800: Editing time entries should show the person involved added
Updated by Marius BĂLTEANU over 4 years ago
- Has duplicate deleted (Feature #3800: Editing time entries should show the person involved)
Updated by Marius BĂLTEANU over 4 years ago
- Related to Feature #3800: Editing time entries should show the person involved added
Updated by Meindert Oldenburger over 2 years ago
Hello, thanks for the good work.
Is there a patch that I can apply on redmine 4.0.7? I can't upgrade because of redmine debian multiple instances solution we use.