Changeset 2189


Ignore:
Timestamp:
02/04/19 20:35:58 (5 years ago)
Author:
nanardon
Message:

Add sshKey managment for service accounts

Location:
trunk
Files:
5 edited

Legend:

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

    r2162 r2189  
    3333            locked 
    3434            sshPublicKey 
     35            sshPublicKeyFilter 
    3536            snNative 
    3637            givenNameNative 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r2181 r2189  
    185185                description => 'Internal group for user alias object', 
    186186                gidnumber => -1, 
    187                 unexported => 1, 
     187                unexported => 1, 
    188188            }, 
    189189            intern => 1, 
     
    380380    my ($self) = @_; 
    381381 
     382    $self->log(LA_DEBUG, 'Running PopulateDynData()'); 
     383 
    382384    $self->temp_switch_unexported(sub { 
    383385 
     
    393395        } 
    394396 
     397        my %sshUser = map { $_ => 1 } ( 
     398            $self->search_objects('user', 'authorizedKeys=*', 'oalias=NULL'), 
     399            $self->search_objects('user', 'sshPublicKeyFilter=*', 'oalias=NULL'), 
     400            $self->search_objects('user', 'sshPublicKey=*', 'oalias=NULL'), 
     401        ); 
     402 
     403        foreach my $user (keys %sshUser) { 
     404            my $ouser = $self->get_object('user', $user) or next; 
     405            $ouser->set_fields( 'authorizedKeys', $ouser->_get_c_field('_authorizedKeys') ); 
     406        } 
     407 
    395408    }, 0); 
    396409 
     
    401414    my ($self) = @_; 
    402415 
    403     $self->PopulateDynData; 
     416    # Let sync-manager update data in background 
     417 
     418    $self->PopulateDynData unless($self->config('ASyncDynData')); 
    404419 
    405420    if ($ENV{LA_NO_COMMIT}) { 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r2175 r2189  
    13051305                formopts => { length => 45 }, 
    13061306            }, 
     1307            sshPublicKeyFilter => { 
     1308                multiple => 1, 
     1309                formopts => { length => 45 }, 
     1310            }, 
     1311            _authorizedKeys => { 
     1312                multiple => 1, 
     1313                ro => 1, 
     1314                managed => 1, 
     1315                reference => 'user', 
     1316                hide => 1, 
     1317                get => sub { 
     1318                    my ($attr) = @_; 
     1319                    my $self = $attr->object; 
     1320 
     1321                    my @keys = $self->_get_attributes('sshPublicKey'); 
     1322 
     1323                    my @filters = $self->_get_attributes('sshPublicKeyFilter'); 
     1324 
     1325                    if (@filters) { 
     1326                        foreach my $user ($self->base->search_objects('user', @filters, 'oalias=NULL')) { 
     1327                            my $ouser = $self->base->get_object('user', $user) or next; 
     1328                            push(@keys, $ouser->_get_attributes('sshPublicKey')); 
     1329                        } 
     1330                    } 
     1331 
     1332                    return \@keys; 
     1333                }, 
     1334            }, 
     1335            authorizedKeys => { 
     1336                multiple => 1, 
     1337                ro => 1, 
     1338                reference => 'user', 
     1339            }, 
    13071340            currentEmployment => { 
    13081341                managed => 1, 
     
    17161749 
    17171750} 
    1718  
    17191751 
    17201752=head2 computeEmploymentDate 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Task/Updatedyndata.pm

    r1743 r2189  
    2727 
    2828# Every 10 minutes 
    29 sub runDelay { 10 * 60 } 
     29sub runDelay { 5 * 60 } 
    3030 
    3131sub init { 
  • trunk/LATMOS-Accounts/man/man8/latmos-accounts-base-sql.pod

    r2156 r2189  
    2323the group when department is changed. 
    2424The user can still be added back later. 
     25 
     26=head2 ASyncDynData 
     27 
     28Don't compute dynamic attribute at commit but let syncManager do it 
     29asynchronously. 
    2530 
    2631=head1 FEATURES 
Note: See TracChangeset for help on using the changeset viewer.