Changeset 29


Ignore:
Timestamp:
04/23/09 02:54:47 (15 years ago)
Author:
nanardon
Message:
  • fix Sql driver
Location:
LATMOS-Accounts/lib/LATMOS/Accounts/Bases
Files:
2 edited
2 copied
1 moved

Legend:

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

    r21 r29  
    1 package LATMOS::Accounts::Bases::SQL; 
     1package LATMOS::Accounts::Bases::Sql; 
    22 
    33use 5.010000; 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Group.pm

    r21 r29  
    1 package LATMOS::Accounts::Bases::SQL::User; 
     1package LATMOS::Accounts::Bases::Sql::Group; 
    22 
    33use 5.010000; 
     
    55use warnings; 
    66 
    7 use base qw(LATMOS::Accounts::Bases::SQL::objects); 
     7use base qw(LATMOS::Accounts::Bases::Sql::objects); 
    88 
    99our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0]; 
     
    3939sub object_table { 'group' } 
    4040 
     41sub key_field { 'groupname' } 
     42 
    41431; 
    4244 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r20 r29  
    1 package LATMOS::Accounts::Bases::SQL::User; 
     1package LATMOS::Accounts::Bases::Sql::User; 
    22 
    33use 5.010000; 
     
    55use warnings; 
    66 
    7 use base qw(LATMOS::Accounts::Bases::SQL::objects); 
     7use base qw(LATMOS::Accounts::Bases::Sql::objects); 
    88 
    99our $VERSION = (q$Rev$ =~ /^Rev: (\d+) /)[0]; 
     
    3939sub object_table { 'person' } 
    4040 
     41sub key_field { 'login' } 
     42 
    41431; 
    4244 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r21 r29  
    1 package LATMOS::Accounts::Bases::SQL::object; 
     1package LATMOS::Accounts::Bases::Sql::objects; 
    22 
    33use 5.010000; 
     
    3737=cut 
    3838 
     39sub list { 
     40    my ($class, $base) = @_; 
     41 
     42    my $sth = $base->db->prepare_cached( 
     43        sprintf( 
     44            q{select %s as k from %s order by %s}, 
     45            $base->db->quote_identifier($class->key_field), 
     46            $base->db->quote_identifier($class->object_table), 
     47            $base->db->quote_identifier($class->key_field), 
     48        ) 
     49    ); 
     50    $sth->execute; 
     51    my @keys; 
     52    while(my $res = $sth->fetchrow_hashref) { 
     53        push(@keys, $res->{k}); 
     54    } 
     55    @keys 
     56} 
     57 
    3958sub new { 
    4059    my ($class, $base, $id) = @_; 
     
    5170    $self->db->quote_identifier($table); 
    5271} 
     72sub quote_key_field {  
     73    my ($self) = @_; 
     74    my $key_field = $self->key_field or return; 
     75    $self->db->quote_identifier($key_field); 
     76} 
    5377 
    5478sub get_field { 
     
    5680    my $sth = $self->db->prepare_cached( 
    5781        sprintf( 
    58             q{select %s from %s where login = ?}, 
     82            q{select %s from %s where %s = ?}, 
    5983            $self->db->quote_identifier($field), 
    6084            $self->quote_object_table, 
     85            $self->quote_key_field, 
    6186        ) 
    6287    ); 
     
    79104        sprintf( 
    80105            q{update %s set %s where login = ?}, 
    81             $self->quote_object_table), 
     106            $self->quote_object_table, 
    82107            join(', ', @fields), 
    83108        ) 
Note: See TracChangeset for help on using the changeset viewer.