Changeset 1347 for trunk


Ignore:
Timestamp:
05/29/15 19:19:25 (9 years ago)
Author:
nanardon
Message:

Ensure gidNumber for user accept both group name and number

Location:
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql
Files:
2 edited

Legend:

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

    r1329 r1347  
    132132                mandatory => 1, 
    133133                can_values => sub { 
     134                    map { $_->id, $_->get_attributes('gidNumber') } 
     135                    map { $base->get_object('group', $_) } 
     136                    $base->list_objects('group') 
     137                }, 
     138                can_values => sub { 
    134139                    my $sth = $base->db->prepare_cached( 
    135140                        q{ 
    136                         select gidnumber from "group" where exported = true 
     141                        select name, gidnumber from "group" where exported = true 
    137142                        } 
    138143                    ); 
     
    140145                    my @res; 
    141146                    while (my $res = $sth->fetchrow_hashref) { 
     147                        push(@res, $res->{name}); 
    142148                        push(@res, $res->{gidnumber}); 
    143149                    } 
     
    150156                    return $gr; 
    151157                }, 
     158                input => sub { 
     159                    my ($val) = @_; 
     160                    $val =~ /^\d+$/ and return $val; 
     161                    my ($gr) = $base->search_objects('group', "name=$val") or return; 
     162                    return $base->get_object('group', $gr)->get_attributes('gidNumber'); 
     163                }, 
    152164                reference => 'group', 
    153165            }, 
     
    155167            gidnumber => { inline => 1, hide => 1, 
    156168                can_values => sub { 
    157                     map { $_->get_attributes('gidNumber') } 
     169                    map { $_->id, $_->get_attributes('gidNumber') } 
    158170                    map { $base->get_object('group', $_) } 
    159171                    $base->list_objects('group') 
     172                }, 
     173                display => sub { 
     174                    my ($self, $val) = @_; 
     175                    my ($gr) = $self->base->search_objects('group', "gidNumber=$val") 
     176                        or return; 
     177                    return $gr; 
     178                }, 
     179                input => sub { 
     180                    my ($val) = @_; 
     181                    $val =~ /^\d+$/ and return $val; 
     182                    my ($gr) = $base->search_objects('group', "name=$val") or return; 
     183                    return $base->get_object('group', $gr)->get_attributes('gidNumber'); 
    160184                }, 
    161185                mandatory => 1, 
  • trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm

    r1346 r1347  
    192192        my $attr = $base->attribute($class->type, $_) or next; 
    193193        $_ =~ /^exported$/ and $data{$_} = $data{$_} ? 1 : 0; 
     194        warn my $formatted = ref($data{$_}) 
     195            ? map { $attr->input($_) } @{ $data{$_} } 
     196            : $attr->input($data{$_}); 
    194197        if ($attr->{inline}) { 
    195             $first{$_} = $data{$_}; 
     198            $first{$_} = $formatted; 
    196199        } else { 
    197             $second{$_} = $data{$_}; 
     200            $second{$_} = $formatted; 
    198201        } 
    199202    } 
Note: See TracChangeset for help on using the changeset viewer.