Changeset 185 for LATMOS-Accounts/lib


Ignore:
Timestamp:
05/25/09 11:56:21 (15 years ago)
Author:
nanardon
Message:
  • manage locked account
Location:
LATMOS-Accounts/lib/LATMOS/Accounts/Bases
Files:
3 edited

Legend:

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

    r182 r185  
    6868        initials 
    6969        manager 
     70        userAccountControl 
     71        locked 
    7072        ), 
    7173        ($mode !~ /w/ 
     
    8789    $entry->replace('sAMAccountName', $id); 
    8890    $entry->replace(objectClass => [ qw(top person organizationalPerson user)],); 
    89     $entry->replace(userAccountControl => 544); 
     91    $entry->replace(userAccountControl => 66112); 
     92    $entry->replace(sAMAccountType => 0x30000000); 
    9093    $entry->replace(accountExpires => '9223372036854775807'); # TODO hardcoded, burk 
    9194    $entry->replace(userPrincipalName => "$id\@" . $base->ad_domain); 
     
    152155            next; 
    153156        }; 
     157        $f eq 'locked' and do { 
     158            my $uac = $self->get_field('userAccountControl'); 
     159            if ($val) { 
     160                $uac |= 0x00000002; 
     161            } else { 
     162                $uac &= (0xFFFFFFFF ^ 0x00000002); 
     163            } 
     164            warn $uac; 
     165            $ndata{userAccountControl} = "$uac"; 
     166            next; 
     167        }; 
    154168        $ndata{$f} = $val; 
    155169    } 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r183 r185  
    7777        return join(' ', grep { $_ } ($self->get_c_field('givenName'), ($self->get_c_field('sn')))) 
    7878            || $self->id; 
    79     } elsif ($field =~ /^(sAMAccountName)$/) { 
    80         return $self->id, 
     79    } elsif ($field eq 'sAMAccountName') { 
     80        return $self->id; 
    8181    } elsif ($field eq 'memberOf') { 
    8282        my $sth = $self->db->prepare_cached( 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix.pm

    r128 r185  
    6969            userPassword    => ($self->{use_shadow} ? 'spassword' : 'password'), 
    7070            memberOf        => 'memberOf', 
     71            locked          => 'locked', 
    7172            ($for !~ /w/ ? ( 
    7273            givenName       => 'givenName', 
     
    147148                $self->{users}{$user}{$_} = shift(@ch); 
    148149            } 
     150            if ($self->{users}{$user}{password} =~ /^!!/) { 
     151                $self->{users}{$user}{password} =~ s/^!!//; 
     152                $self->{users}{$user}{locked} = 1; 
     153            } 
     154            $self->{users}{$user}{shell} =~ s/^-//; 
    149155        }, 
    150156    ) or return; 
     
    177183                $self->{users}{$user}{$_} = shift(@ch); 
    178184            } 
     185            if ($self->{users}{$user}{spassword} =~ /^!!/) { 
     186                $self->{users}{$user}{spassword} =~ s/^!!//; 
     187                $self->{users}{$user}{locked} = 1; 
     188            } 
    179189        } 
    180190    ) or return; 
     
    218228        map {[ 
    219229            $_, 
    220             $self->{users}{$_}{password} || 'x', # No empty pass !! 
     230            ($self->{users}{$_}{locked} 
     231                ? '!!' . ($self->{users}{$_}{password} || '') 
     232                : ($self->{users}{$_}{password} || 'x')), # No empty pass !! 
    221233            $self->{users}{$_}{uid}, 
    222234            $self->{users}{$_}{gid}, 
    223235            $self->{users}{$_}{gecos}, 
    224236            $self->{users}{$_}{home}, 
    225             $self->{users}{$_}{shell}, 
     237            ($self->{users}{$_}{locked} ? '-' : '') . $self->{users}{$_}{shell}, 
    226238        ]} sort { $self->{users}{$a}{uid} <=> $self->{users}{$b}{uid} } keys %{$self->{users}} 
    227239    ) or return; 
     
    243255        map {[ 
    244256            $_, 
    245             $self->{users}{$_}{spassword} || 'x', 
     257            ($self->{users}{$_}{locked} 
     258                ? '!!' . ($self->{users}{$_}{spassword} || '') 
     259                : $self->{users}{$_}{spassword} || 'x'), 
    246260            $self->{users}{$_}{last_changed}, 
    247261            $self->{users}{$_}{before_ch}, 
Note: See TracChangeset for help on using the changeset viewer.