Commit d45ddde8 authored by Frank Bergmann's avatar Frank Bergmann

Enabled Timesheet Monthly with Absences to honor view_hours_direct_reports

parent b130dbc3
......@@ -58,11 +58,35 @@ set debug 0
set date_format "YYYY-MM-DD"
set num_format "999,990.99"
set view_hours_all_p [im_permission $current_user_id view_hours_all]
set view_hours_all_p [im_permission $current_user_id "view_hours_all"]
set view_hours_direct_reports_p [im_permission $current_user_id "view_hours_direct_reports"]
if { [im_is_user_site_wide_or_intranet_admin $current_user_id] } { set view_hours_all_p 1 }
set timesheet_hours_per_day [parameter::get -package_id [apm_package_id_from_key intranet-timesheet2] -parameter "TimesheetHoursPerDay" -default 8]
set add_hours_all_p [im_permission $current_user_id "add_hours_all"]
if {$add_hours_all_p} { set view_hours_all_p 1 }
set add_hours_direct_reports_p [im_permission $current_user_id "add_hours_direct_reports"]
if {$add_hours_direct_reports_p} { set view_hours_direct_reports_p 1 }
# ------------------------------------------------------------
# Determine the user drop-down box depending on permissions
# Unprivileged user, direct reports or all
set member_options [list [list [im_name_from_user_id $current_user_id] $current_user_id]]
if {$view_hours_direct_reports_p} { set member_options [im_user_direct_reports_options -include_current_user_p 1 -user_id $current_user_id] }
if {$view_hours_all_p} { set member_options [im_user_options -include_empty_p 0 -group_id [im_profile_employees]] }
set member_option_ids [list]
foreach member_tuple $member_options { lappend member_option_ids [lindex $member_tuple 1] }
set member_options [linsert $member_options 0 [list [_ intranet-core.All] ""]]
# If privilige "view_hours_all_p" is not set, show only the users "own" hours
if {0 != $report_user_id && "" ne $report_user_id && !($report_user_id in $member_option_ids)} {
set report_user_id $current_user_id
}
# ------------------------------------------------------------
set page_title [lang::message::lookup "" intranet-reporting.TimesheetMonthlyViewIncludingAbsences "Timesheet - Monthly View including Absences"]
set context_bar [im_context_bar $page_title]
set context ""
......@@ -85,15 +109,9 @@ set absence_url "/intranet-timesheet2/absences/new?form_mode=display&absence_id=
set user_url "/intranet/users/view?user_id="
set this_url "[export_vars -base "/intranet-reporting/timesheet-monthly-hours-absences2" {} ]?"
# If privilige "view_hours_all_p" is not set, show only the users "own" hours
if {!$view_hours_all_p} {
set report_user_id $current_user_id
}
set absence_l10n [lang::message::lookup "" intranet-timesheet2.Absence "Absence"]
set timesheet_hours_per_day [parameter::get -package_id [apm_package_id_from_key intranet-timesheet2] -parameter "TimesheetHoursPerDay" -default 8]
# ------------------------------------------------------------
# Conditional SQL Where-Clause
......@@ -109,6 +127,9 @@ if {$different_from_project_p eq ""} {
set criteria [list]
# Allow only the users current_user_id can "see"
lappend criteria "u.user_id in ([join $member_option_ids ","])"
if {0 ne $report_user_id && "" ne $report_user_id} {
lappend criteria "u.user_id = :report_user_id"
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment