Changeset 2219 for trunk


Ignore:
Timestamp:
02/25/19 16:40:05 (5 years ago)
Author:
nanardon
Message:

Add attribute caching when compute

Location:
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases
Files:
4 edited

Legend:

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

    r2182 r2219  
    448448        } 
    449449    } 
    450      
     450 
    451451    if (keys %updated) { 
     452        $self->PostSetAttribute() or do { 
     453            $self->base->log(LA_ERR, "PostSetAttribute failed when updating %s/%s", 
     454                $self->type, $self->id); 
     455            return; 
     456        }; 
     457 
    452458        $self->ReportChange('Update', 'Attributes %s have been updated', join(', ', sort keys %updated)); 
    453459        foreach (sort keys %updated) { 
     
    460466    } 
    461467    return scalar(keys %updated); 
     468} 
     469 
     470=head2 PostSetAttribute 
     471 
     472This function is call to compute data when object is modify. 
     473 
     474=cut 
     475 
     476sub PostSetAttribute { 
     477    my ($self) = @_; 
     478 
     479    return 1; 
    462480} 
    463481 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r2218 r2219  
    1818our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0]; 
    1919 
    20 sub SCHEMA_VERSION { 29 }; 
     20sub SCHEMA_VERSION { 30 }; 
    2121 
    2222=head1 NAME 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r2199 r2219  
    902902            cn =>  { iname => 'name', ro => 1 }, 
    903903            gecos => { 
    904                 managed => 1, 
     904                ro => 1, 
     905                auto => 1, 
     906            }, 
     907            _gecos => { 
     908                managed => 1, 
     909                hide => 1, 
    905910                ro => 1, 
    906911                get => sub { 
     
    908913                    my $obj = $self->object; 
    909914 
    910                     my $ec = $obj->_get_c_field('endcircuit') || ''; 
    911  
    912                     my $date = $ec 
    913                         ? sprintf('%s (%s)', $obj->_get_c_field('expireTextEC'), $obj->_get_c_field('expireText')) 
    914                         : $obj->_get_c_field('expireText'); 
    915  
    916                     $date ||= ''; 
    917  
    918                     my $gecos = sprintf("%s,%s,%s,%s", 
    919                         join(' ', grep { $_ } 
    920                                 ($obj->_get_c_field('givenName'), 
    921                                 ($obj->_get_c_field('sn')))) 
    922                             || $obj->_get_c_field('description') || '', 
    923                         join(' - ', grep { $_ } (($obj->_get_c_field('site') || 
    924                                     $obj->_get_c_field('l')), 
    925                             $obj->_get_c_field('physicalDeliveryOfficeName'))) || '', 
    926                         $obj->_get_c_field('telephoneNumber') || '', 
    927                         $date, 
    928                     ); 
    929                     $gecos =~ s/:/ /g; 
     915                    my $fmt = $self->base->config('gecosformat') || '%{displayName},%{l}-%{physicalDeliveryOfficeName},%{telephoneNumber},%{expireText}'; 
     916                    my $gecos = $obj->queryformat($fmt); 
    930917                    return to_ascii($gecos); 
    931918                }, 
    932919                label => l('GECOS'), 
    933920            }, 
    934             displayName  => { 
     921            displayName => { 
     922                ro => 1, 
     923                auto => 1, 
     924            }, 
     925            _displayName  => { 
    935926                ro => 1, managed => 1, 
     927                hide => 1, 
    936928                get => sub { 
    937929                    my ($self) = @_; 
     
    947939                label => l('Name'), 
    948940            }, 
    949             sAMAccountName  => { 
    950                 ro => 1, 
     941            sAMAccountName => { 
     942                ro => 1, 
     943                auto => 1, 
     944            }, 
     945            _sAMAccountName  => { 
     946                ro => 1, 
     947                hide => 1, 
    951948                managed => 1, 
    952949                iname => 'name', 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r2206 r2219  
    783783} 
    784784 
     785sub PostSetAttribute { 
     786    my ($self) = @_; 
     787 
     788    my %data; 
     789    foreach my $attr ($self->base->list_canonical_fields($self->type, 'r')) { 
     790        my $oattr = $self->base->get_attr_schema($self->type, $attr); 
     791        if ($oattr->{auto}) { 
     792            my $source = "_$attr"; 
     793            $data{$attr} = $self->_get_c_field($source); 
     794        } 
     795    } 
     796    my $res =  $self->set_fields(%data); 
     797 
     798    return $res ? $res : 'OEO'; 
     799} 
     800 
    785801 
    786802=head2 SetNoDelete($value) 
Note: See TracChangeset for help on using the changeset viewer.