Changeset 1365


Ignore:
Timestamp:
07/06/15 18:32:45 (9 years ago)
Author:
nanardon
Message:

Exchange manager and managerContact attribute to propagate manager to other bases

Location:
trunk
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web.pm

    r1348 r1365  
    213213        }, 
    214214        'managerContact' => { 
    215             'label' => 'Contact' 
     215            'label' => 'Resp. direct' 
    216216        }, 
    217217        'site' => { 
  • trunk/LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Model/AttrForms.pm

    r1349 r1365  
    4040            company 
    4141            department 
     42            managerContact 
    4243            manager 
    43             managerContact 
    4444            contratType 
    4545            expire 
  • trunk/LATMOS-Accounts/bin/la-sql-find-expired

    r1323 r1365  
    4545    printf("%s - %s (%s%s)\n", $obj->id, $obj->get_attributes('displayName'), 
    4646        $obj->get_attributes('expireText'), 
    47         ($obj->get_attributes('managerContact') ? ' ' . 
    48             $obj->get_attributes('managerContact') : ''), 
     47        ($obj->get_attributes('manager') ? ' ' . 
     48            $obj->get_attributes('manager') : ''), 
    4949    ); 
    5050} 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/OCHelper/Accreq.pm

    r1023 r1365  
    2121        $info->{step} = 1; 
    2222        $info->{ask} = [ 
    23             qw(givenName sn manager department) 
     23            qw(givenName sn managerContact department) 
    2424        ]; 
    2525 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r1353 r1365  
    393393            }, 
    394394            manager => { 
    395                 delayed => 1, 
    396                 can_values => sub { 
    397                     my %uniq = map { $_ => 1 } grep { $_ } 
    398                     ($_[1] ? $_[1]->get_attributes('manager') : ()), 
    399                     $base->search_objects('user', 'active=*'); 
    400                     sort keys %uniq; 
    401                 }, 
    402395                reference => 'user', 
    403                 monitored => 1, 
     396                ro => 1, 
     397                get => sub { 
     398                    my ($self) = @_; 
     399                    if (my $manager = $self->object->_get_c_field('managerContact')) { 
     400                        return $manager; 
     401                    } elsif (my $department = $self->object->_get_c_field('department')) { 
     402                        my $obj = $self->base->get_object('group', $department); 
     403                        return $obj->_get_c_field('managedBy'); 
     404                    } else { 
     405                        return; 
     406                    } 
     407                }, 
    404408            }, 
    405409            department => { 
     
    639643                    my $sth = $obj->db->prepare_cached( 
    640644                        q{ 
    641                         select name from "user" join 
    642                         user_attributes on user_attributes.okey = "user".ikey 
    643                         where value = ? and attr = ? 
    644                         } 
     645                        SELECT 
     646                        "user".name FROM 
     647                        public."user", 
     648                        public.user_attributes_groups, 
     649                        public.group_attributes_users, 
     650                        public.group_attributes_base gb, 
     651                        public."group" 
     652                        WHERE 
     653                        "user".ikey = user_attributes_groups.okey AND 
     654                        user_attributes_groups.value = "group".name AND 
     655                        group_attributes_users.okey = gb.okey AND 
     656                        "group".ikey = group_attributes_users.okey AND 
     657                        gb.attr = 'sutype' AND 
     658                        gb.value = 'dpmt' AND 
     659                        group_attributes_users.attr = 'managedBy' AND 
     660                        group_attributes_users.value = ? 
     661                        } . ($self->base->{wexported} ? '' : ' and "user".exported = true') . q{ 
     662                            and "user".ikey not in 
     663                        (select okey from user_attributes_users 
     664                        where attr = 'manager' and value != ? ) 
     665                        union 
     666                        select "user".name FROM public."user", 
     667                        user_attributes_users where 
     668                        user_attributes_users.attr = 'manager' and user_attributes_users.value = ? 
     669                            and "user".ikey = user_attributes_users.okey 
     670                        } . ($self->base->{wexported} ? '' : ' and "user".exported = true') 
    645671                    ); 
    646                     $sth->execute($obj->id, 'manager'); 
     672                    $sth->execute($obj->id, $obj->id, $obj->id); 
    647673                    my @res; 
    648674                    while (my $res = $sth->fetchrow_hashref) { 
     
    706732            }, 
    707733            managerContact => { 
    708                 ro => 1, 
     734                delayed => 1, 
     735                can_values => sub { 
     736                    my %uniq = map { $_ => 1 } grep { $_ } 
     737                    ($_[1] ? $_[1]->get_attributes('managerContact') : ()), 
     738                    $base->search_objects('user', 'active=*'); 
     739                    sort keys %uniq; 
     740                }, 
    709741                reference => 'user', 
    710                 get => sub { 
    711                     my ($self) = @_; 
    712                     if (my $manager = $self->object->_get_c_field('manager')) { 
    713                         return $manager; 
    714                     } elsif (my $department = $self->object->_get_c_field('department')) { 
    715                         my $obj = $self->base->get_object('group', $department); 
    716                         return $obj->_get_c_field('managedBy'); 
    717                     } else { 
    718                         return; 
    719                     } 
    720                 }, 
     742                monitored => 1, 
     743                iname => 'manager', 
    721744            }, 
    722745            expireText => { 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Maintenance.pm

    r1348 r1365  
    100100            'X-LATMOS-Reason' => 'Account expiration', 
    101101        ); 
    102         my ($manager, $mail) = ($user->{obj}->get_c_field('managerContact'), 
     102        my ($manager, $mail) = ($user->{obj}->get_c_field('manager'), 
    103103            $user->{obj}->get_c_field('mail')); 
    104104        my $managermail = $manager ? $user->{obj}->base-> 
     
    124124        my $mailcc = join(', ', @cc) || ''; 
    125125        push(@summary, sprintf("%s : %s : %s\n", 
    126                 $user->{obj}->queryformat('%{sn} %{givenName} : %{name} : %{department} : %{managerContact} : %{expireText}'), 
     126                $user->{obj}->queryformat('%{sn} %{givenName} : %{name} : %{department} : %{manager} : %{expireText}'), 
    127127                $to || 'Not sent, no destination', 
    128128                ($mailcc ? $mailcc : ''), 
     
    209209        my $uobj = $self->_base->get_object('user', $user); 
    210210        $uobj->get_attributes('unexported') and next; # can't happend 
    211         my $manager = $uobj->get_attributes('managerContact') || 'N/A'; 
     211        my $manager = $uobj->get_attributes('manager') || 'N/A'; 
    212212        push(@{$managers{$manager}{users}}, $uobj); 
    213213 
Note: See TracChangeset for help on using the changeset viewer.