Changeset 52 for LATMOS-Accounts


Ignore:
Timestamp:
04/25/09 23:56:24 (15 years ago)
Author:
nanardon
Message:
  • add revision support in Sql base
Location:
LATMOS-Accounts/lib/LATMOS/Accounts/Bases
Files:
4 edited

Legend:

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

    r48 r52  
    7676            uidNumber       => 'uid', 
    7777            gidNumber       => 'gid', 
    78             # gecos           => 'gecos', 
     78            gecos           => 'gecos', 
    7979            homeDirectory   => 'home', 
    8080            loginShell      => 'shell', 
    8181            sn              => 'name', 
    8282            givenName       => 'firstname', 
    83             #userPassword    => ($self->{use_shadow} ? 'spassword' : 'password'), 
     83            userPassword    => 'password', 
    8484        }, 
    8585        group => { 
     
    124124} 
    125125 
     126sub current_rev { 
     127    my ($self) = @_; 
     128    my $sth = $self->db->prepare_cached( 
     129        q{select max(rev) from revisions} 
     130    ); 
     131    $sth->execute; 
     132    my $res = $sth->fetchrow_hashref; 
     133    $sth->finish; 
     134    return ($res->{max}); 
     135}  
     136 
    1261371; 
    127138 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r29 r52  
    4141sub key_field { 'login' } 
    4242 
     43sub get_field { 
     44    my ($self, $field) = @_; 
     45    if ($field eq 'gecos') { 
     46        return $self->get_field('firstname') . ' ' . $self->get_field('name'); 
     47    } else { 
     48        return $self->SUPER::get_field($field); 
     49    } 
     50} 
     51 
     52sub set_fields { 
     53    my ($self, %data) = @_; 
     54    $self->SUPER::set_fields( 
     55        map { $_ => $data{$_} } 
     56        grep { $_ ne 'gecos' } keys %data 
     57    ); 
     58} 
     59 
    43601; 
    4461 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r43 r52  
    4949    ); 
    5050    $sth->execute; 
     51    my @keys; 
     52    while(my $res = $sth->fetchrow_hashref) { 
     53        push(@keys, $res->{k}); 
     54    } 
     55    @keys 
     56} 
     57 
     58sub list_from_rev { 
     59    my ($class, $base, $rev) = @_; 
     60    my $sth = $base->db->prepare_cached( 
     61        sprintf( 
     62            q{select %s as k from %s where rev > ? order by %s}, 
     63            $base->db->quote_identifier($class->key_field), 
     64            $base->db->quote_identifier($class->object_table), 
     65            $base->db->quote_identifier($class->key_field), 
     66        ) 
     67    ); 
     68    $sth->execute($rev); 
    5169    my @keys; 
    5270    while(my $res = $sth->fetchrow_hashref) { 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Unix/User.pm

    r48 r52  
    6161    foreach my $field (keys %data) { 
    6262        # TODO check fields exists ! 
     63        $field =~ /^(sn|givenName)$/ and next; 
    6364        $self->{$field} = $data{$field}; 
    6465    } 
Note: See TracChangeset for help on using the changeset viewer.