- Timestamp:
- 01/24/17 16:27:08 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Json/Tree.pm
r1484 r1939 29 29 my %users = map { $_ => 1 } $base->search_objects('user', 'active=1', 'givenName=*'); 30 30 my %dpmts = map { $_ => 1 } $base->search_objects('group', 'sutype=dpmt'); 31 my %userdpmt = $base->attributes_summary_by_object('user', 'department');32 31 my %dpmtmanager = $base->attributes_summary_by_object('group', 'managedBy'); 33 32 my %usermanager = $base->attributes_summary_by_object('user', 'managerContact'); 33 my %dpmtuser = $base->attributes_summary_by_object('user', 'department'); 34 34 35 35 my %nodes; … … 40 40 41 41 foreach my $user (keys %users) { 42 my $ouser = $base->get_object('user', $user); 42 43 push(@{ $data->{nodes} }, { 43 "name" => $ user,44 label => $ user,44 "name" => $ouser->id, 45 label => $ouser->get_attributes('displayName'), 45 46 }); 46 $nodes{$ user} = $#{ $data->{nodes} };47 $nodes{$ouser->id} = $#{ $data->{nodes} }; 47 48 } 48 push(@{ $data->{nodes} }, {49 "name" => '-direction',50 label => 'Direction',51 });52 $nodes{'-direction'} = $#{ $data->{nodes} };53 49 54 foreach my $user (keys %dpmts) { 55 push(@{ $data->{nodes} }, { 56 "name" => '-' . $user, 57 label => $user, 58 }); 59 $nodes{'-' . $user} = $#{ $data->{nodes} }; 50 foreach my $user (keys %users) { 51 my $manager = $usermanager{$user}->[0] || 52 $dpmtmanager { $dpmtuser{ $user }->[0] }->[0] or next; 53 54 if (!$nodes{$manager}) { 55 my $ouser = $base->get_object('user', $manager); 56 $nodes{$manager} = $nodes{$ouser->id}; 57 } 58 $nodes{$manager} or next; 59 60 60 push(@{ $data->{links} }, 61 61 { 62 "source" => $nodes{'-' . $user}, 63 "target" => $nodes{'-direction'}, 64 color => 'red', 62 "source" => $nodes{$user}, 63 "target" => $nodes{$manager}, 65 64 } 66 65 ); … … 68 67 } 69 68 70 71 foreach my $user (keys %users) {72 73 if (my $dpmt = $userdpmt{$user}) {74 push(@{ $data->{links} },75 {76 "source" => $nodes{$user},77 "target" => $nodes{'-' . $dpmt->[0]},78 }79 ) if ($dpmt->[0]);80 }81 if (my $manag = $usermanager{$user}) {82 my $target = $manag->[0];83 push(@{ $data->{links} },84 {85 "source" => $nodes{$user},86 "target" => $nodes{$target},87 }88 ) if ($target);89 }90 91 92 }93 94 69 $c->stash->{data} = $data; 95 70 }
Note: See TracChangeset
for help on using the changeset viewer.