Ignore:
Timestamp:
01/17/19 18:27:13 (5 years ago)
Author:
nanardon
Message:

Always create internal at db load

File:
1 edited

Legend:

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

    r2149 r2175  
    1616use MIME::Base64; 
    1717 
    18 our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0]; 
     18our $VERSION = (q$Rev: 2149 $ =~ /^Rev: (\d+) /)[0]; 
    1919 
    2020sub SCHEMA_VERSION { 28 }; 
     
    155155        # return; 
    156156    } 
     157    $self->_CreateInternalObjects; 
    157158 
    158159    1; 
     160} 
     161 
     162sub _CreateInternalObjects { 
     163    my ($self) = @_; 
     164 
     165    my $dbi = $self->{_db}; 
     166 
     167    my @objects = ( 
     168        { 
     169            name => 'dpmt', 
     170            otype => 'sutype', 
     171            attrs => { 
     172                description => 'Department', 
     173            }, 
     174        }, 
     175        { 
     176            name => 'contrattype', 
     177            otype => 'sutype', 
     178            attrs => { 
     179                description => 'Contract', 
     180            }, 
     181        }, 
     182        { 
     183            name => '-useralias', 
     184            otype => 'group', 
     185            attrs => { 
     186                description => 'Internal group for user alias object', 
     187                gidnumber => -1, 
     188                unexported => 1, 
     189            }, 
     190            intern => 1, 
     191        }, 
     192    ); 
     193 
     194    $self->temp_switch_unexported( sub { 
     195 
     196            my $setnodel  = $dbi->prepare('UPDATE objects SET nodelete     = true where name = ?'); 
     197            my $setintern = $dbi->prepare('UPDATE objects SET internobject = true where name = ?'); 
     198 
     199            foreach (@objects) { 
     200                if (!$self->GetRawObject($_->{otype}, $_->{name})) { 
     201                    printf("Creating object %s/%s\n", $_->{otype}, $_->{name}); 
     202                    $self->create_object($_->{otype}, $_->{name}, %{$_->{attrs} || {}}) 
     203                        or warn sprintf("cannot create %s/%s\n", $_->{otype}, $_->{name}); 
     204 
     205                } 
     206 
     207                $setnodel->execute($_->{name}); 
     208                $setintern->execute($_->{name}) if ($_->{intern}); 
     209            } 
     210 
     211    }, 1); 
     212    $self->commit; 
     213 
     214    return 1; 
    159215} 
    160216 
Note: See TracChangeset for help on using the changeset viewer.