Changeset 1357


Ignore:
Timestamp:
06/25/15 15:38:44 (9 years ago)
Author:
nanardon
Message:

Fix id information into Unix base

Location:
trunk/LATMOS-Accounts
Files:
8 edited

Legend:

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

    r1317 r1357  
    898898            return; 
    899899        } 
    900         if ($self->_create_c_object($srcobj->type, $srcobj->id, %data)) { 
     900        if (my $res = $self->_create_c_object($srcobj->type, $srcobj->id, %data)) { 
    901901            return 'CREATED' 
    902902        } else { 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Attributes.pm

    r1332 r1357  
    223223                    $self->object->id, 
    224224                ); 
     225                $self->base->log(LA_DEBUG, "Possible value for %s: %s", 
     226                    $self->name, 
     227                    join(', ', @possible) 
     228                ); 
    225229                return; 
    226230            } 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Objects.pm

    r1351 r1357  
    7979    my $pclass = $base->_load_obj_class($otype) or return; 
    8080    my $newobj = "$pclass"->new($base, $id, @args) or return; 
     81 
    8182    $newobj->{_base} = $base; 
    8283    $newobj->{_type} = lc($otype); 
    8384    $newobj->{_id} ||= $id; 
     85 
    8486    return $newobj; 
    8587} 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix.pm

    r1298 r1357  
    125125            $self->{users}{$user}{shell} ||= ''; 
    126126            $self->{users}{$user}{shell} =~ s/^-//; 
     127            $self->{users}{$user}{_id} = $user; 
    127128        }, 
    128129    ) or return; 
     
    137138                $self->{groups}{$group}{$_} = shift(@ch); 
    138139            } 
     140            $self->{groups}{$group}{_id} = $group; 
    139141 
    140142            # split user in the group 
     
    336338        user => 'users', 
    337339        group => 'groups', 
    338     }->{$otype}; 
     340    }->{$otype} or return; 
    339341    my @obj = sort keys %{$self->{$internal_obj} || {} }; 
    340342    for ($otype) { 
     
    355357    }->{$otype}; 
    356358    for ($otype) { 
    357         /^user$/ && !defined($data{uid}) && !defined($data{gid}) and return; 
    358         /^group$/ && !defined($data{gid}) and return; 
    359     } 
    360  
    361     if ($self->{$internal_obj}{$id}) { return }; 
     359        if (/^user$/ && (!defined($data{uid}) || !defined($data{gid}))) { 
     360            $self->log(LA_ERR, "uid or gid missing to create $otype"); 
     361            return; 
     362        } 
     363        if(/^group$/ && !defined($data{gid})) { 
     364            $self->log(LA_ERR, "uid or gid missing to create $otype"); 
     365            return; 
     366        } 
     367    } 
     368 
     369    if ($self->{$internal_obj}{$id}) { 
     370        $self->log(LA_ERR, "Object %s.%s already exists", $otype, $id); 
     371        return 
     372    } 
     373 
    362374    $self->{$internal_obj}{$id} = { 
    363375        account => $id, 
    364376        uid => $data{uid}, 
    365377        gid => $data{gid}, 
    366     }; 
    367     my $obj = $self->get_object($otype, $id) or return; 
     378        _id => $id, 
     379    }; 
     380 
     381    my $obj = $self->get_object($otype, $id) or do { 
     382        $self->log(LA_ERR, "Cannot find freshly create $otype $id"); 
     383        return; 
     384    }; 
     385 
    368386    $obj->set_fields(%data) or return; 
    369387    $obj 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix/Group.pm

    r1071 r1357  
    5858sub new { 
    5959    my ($class, $base, $id, @args) = @_; 
    60     # we profit of ref, quite easy 
    61     if (exists($base->{groups}{$id}) && $base->{groups}{$id}) { 
     60 
     61    if (exists($base->{groups}{$id})) { 
    6262        if ($base->{groups}{$id}{gid} < ($base->{min_gid} || 0)) { 
     63            $base->log(LA_DEBUG, "gid %d less than minimal %d", $base->{groups}{$id}{gid}, ($base->{min_gid} || 0)); 
    6364            return; 
    6465        } 
    6566        return bless($base->{groups}{$id}, $class); 
    66     } else { return } 
    67 } 
    68  
    69 sub id { 
    70     $_[0]->{group_name} 
     67    } else { 
     68        $base->log(LA_ERR, "Cannot find group $id"); 
     69        return 
     70    } 
    7171} 
    7272 
     
    7575    if ($field eq 'user_list') { 
    7676        return [ keys %{ $self->{'users'} || {} } ]; 
    77     } elsif ($field eq 'goup_name') { 
     77    } elsif ($field eq 'group_name') { 
    7878        return $self->id; 
    7979    } 
     
    8888            if (!(defined($data{$field}) && $data{$field} =~ /^\d+$/)) { 
    8989                $self->base->log(LA_ERR, 
    90                     "Invalid data for $field: " . ($data{$field} || '')); 
     90                    "Invalid Group data for $field: " . (defined($data{$field}) ? $data{$field} : '')); 
    9191                return; 
    9292            } 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix/User.pm

    r1352 r1357  
    8484} 
    8585 
    86 sub id { 
    87     $_[0]->{account} 
    88 } 
    89  
    9086sub get_field { 
    9187    my ($self, $field) = @_; 
     
    115111            if(!(defined($data{$field}) && $data{$field} =~ /^\d+$/)) { 
    116112                $self->base->log(LA_ERR, 
    117                     "Invalid data for $field: " . ($data{$field} || '')); 
     113                    "Invalid data for $field: " . (defined($data{$field}) ? $data{$field} : '(none)')); 
    118114                return; 
    119115            } 
  • trunk/LATMOS-Accounts/testdata/synchro/dest/group

    r46 r1357  
    11root:x:0: 
     2test:x:4: 
  • trunk/LATMOS-Accounts/testdata/synchro/source/group

    r46 r1357  
    11root:x:0: 
     2test1:x:1: 
     3test2:x:2: 
     4test3:x:3: 
     5test4:x:4: 
Note: See TracChangeset for help on using the changeset viewer.