Commit 61d84125 authored by jago's avatar jago

- Helpdesk:

  SLA Accessability is not controlled by view_projects_all anymore.
  Instead, the criterium includes membership of the SLA or
  membership of the SLA's customer with the parameter
  TreatCustomerMembersAsSLAMembersP
parent 6560b766
...@@ -1004,7 +1004,6 @@ ad_proc -public im_helpdesk_ticket_sla_options { ...@@ -1004,7 +1004,6 @@ ad_proc -public im_helpdesk_ticket_sla_options {
Returns a list of SLA tuples suitable for ad_form Returns a list of SLA tuples suitable for ad_form
} { } {
if {0 == $user_id} { set user_id [ad_get_user_id] } if {0 == $user_id} { set user_id [ad_get_user_id] }
# set sla_name_sql [parameter::get_from_package_key -package_key "intranet-helpdesk" -parameter "RenderSlaNameSql" -default "company_name || ' (' || project_name || ')'"]
set sla_name_sql [parameter::get_from_package_key -package_key "intranet-helpdesk" -parameter "RenderSlaNameSql" -default "project_name"] set sla_name_sql [parameter::get_from_package_key -package_key "intranet-helpdesk" -parameter "RenderSlaNameSql" -default "project_name"]
# Determine the list of all groups in which the current user is a member # Determine the list of all groups in which the current user is a member
...@@ -1016,20 +1015,26 @@ ad_proc -public im_helpdesk_ticket_sla_options { ...@@ -1016,20 +1015,26 @@ ad_proc -public im_helpdesk_ticket_sla_options {
set include_create_sla_p 0 set include_create_sla_p 0
} }
# Can the user see all projects? # Is it enough to be a member of a customer to see all SLAs?
set permission_sql "" set customer_member_is_sla_member_p [parameter::get_from_package_key -package_key "intranet-helpdesk" -parameter "TreatCustomerMembersAsSLAMembersP" -default 0]
if {![im_permission $user_id "view_projects_all"]} { set customer_member_sla_sql ""
set permission_sql "and p.project_id in ( if {$customer_member_is_sla_member_p} {
select object_id_one from acs_rels where object_id_two = :user_id UNION set customer_member_sla_sql "
select project_id from im_projects where company_id = :customer_id UNION UNION select project_id from im_projects where company_id in (
select project_id from im_projects where company_id in (
select object_id_one select object_id_one
from acs_rels from acs_rels
where object_id_two in ([join $user_parties ","]) where object_id_two in ([join $user_parties ","])
) )
)" "
} }
# Can the user see all projects?
set permission_sql "and p.project_id in (
select object_id_one from acs_rels where object_id_two = :user_id UNION
select project_id from im_projects where company_id = :customer_id
$customer_member_sla_sql
)"
set sql " set sql "
select $sla_name_sql as sla_name, select $sla_name_sql as sla_name,
p.project_id p.project_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