Changeset 959


Ignore:
Timestamp:
05/15/12 03:30:21 (12 years ago)
Author:
nanardon
Message:
  • merge all work around forms
Files:
18 edited

Legend:

Unmodified
Added
Removed
  • LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Controller/Request.pm

    r946 r959  
    5454    $c->stash->{datarequest} = 
    5555        LATMOS::Accounts::Bases::Sql::DataRequest->new($accreq); 
     56    $c->stash->{datarequest}->set_ptr_object($c->stash->{object}) 
     57        if ($c->stash->{object}); 
     58 
    5659    $c->stash->{form} = $c->model( 
    5760        'AttrForms', 
    5861        '', 
    59         $c->stash->{object}, 
     62        $c->stash->{datarequest}, 
    6063        $c->model('Accounts')->db 
    6164    ); 
     65 
     66    # Default apply date: 
     67    my @date = localtime( time + 3600 * 24 ); 
     68    $c->stash->{default_apply_date} = sprintf( 
     69        '%02d/%02d/%d', 
     70        @date[3,4], 
     71        $date[5] + 1900 
     72    ); 
     73 
     74    if ($c->req->param('send')) { 
     75        my %attrs; 
     76        foreach ($c->stash->{datarequest}->attributes) { 
     77            my $htmlname = $c->stash->{form}->attr_field_name($_); 
     78            my @vals = $c->req->param($htmlname); 
     79            $attrs{$_} = @vals > 1 ? \@vals : $vals[0]; 
     80        } 
     81        if ($c->stash->{datarequest}->register( 
     82            $c->user->{username}, 
     83            $c->req->param('apply') || $c->stash->{default_apply_date}, 
     84            %attrs, 
     85        )) { 
     86            $c->go('recorded'); 
     87        } 
     88    } 
     89 
    6290} 
    6391 
     92sub recorded : Private { 
     93    my ($self, $c) = @_; 
    6494 
     95    my %attrs = $c->stash->{datarequest}->get_values; 
     96    $c->stash->{values} = \%attrs; 
     97} 
    6598 
    6699=head1 AUTHOR 
  • LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Model/AttrFilter.pm

    r861 r959  
    9191sub search_field { 
    9292    my ($self, $count) = @_; 
    93     my $form = $self->{c}->model('AttrForms'); 
     93    my $form = $self->{c}->model('AttrForms', '', $self->otype, $self->{c}->stash->{db}); 
    9494    my $html = '<select name="attr"> 
    9595    <option value=""></option>'; 
  • LATMOS-Accounts-Web/lib/LATMOS/Accounts/Web/Model/AttrForms.pm

    r955 r959  
    216216 
    217217sub attr_label { 
    218     my ($self, $attr) = @_; 
    219     my ($hint, $label) = ('', ''); 
     218    my ($self, $attr, $label, $hint) = @_; 
     219    $label ||= ''; 
     220    $hint ||= ''; 
    220221    LATMOS::Accounts::Web->config->{attrs} ||= {}; 
    221     my $htmlname = ($self->{object} ? $self->{object}->id . '_' : '') . $attr; 
     222    my $attribute = $self->base->attribute($self->otype, $attr); 
     223    my $htmlname = $self->escape($self->attr_field_name($attr)); 
    222224    if (my $attr_config = LATMOS::Accounts::Web->config->{attrs}{$attr}) { 
    223         $label = $attr_config->{label} || ''; 
     225        $label ||= $attr_config->{label} || ''; 
    224226        #utf8::is_utf8($label) && utf8::encode($label); 
    225         $hint = $attr_config->{hint} || ''; 
     227        $hint ||= $attr_config->{hint} || ''; 
    226228        #utf8::is_utf8($hint) && utf8::encode($hint); 
    227229    } 
     
    243245 
    244246sub attr_raw_value { 
    245     my ($self, $attr) = @_; 
    246     return $self->{c}->req->param($attr) || 
    247         ($self->{object} ? $self->{object}->get_attributes($attr) : '') 
     247    my ($self, $attribute) = @_; 
     248    my @val = grep { $_ }   
     249        ($self->{c}->req->param($attribute->name)) 
     250        || ($self->{object} 
     251            ? ($self->{object}->get_attributes($attribute->name)) 
     252            : ()); 
     253 
     254    if (@val) { 
     255        return @val; 
     256    } else { 
     257        return (grep { $_ } ($attribute->default_value)) 
     258    } 
    248259} 
    249260 
     
    251262    my ($self, $attr) = @_; 
    252263    my $id = $self->{object} 
    253         ? $self->{object}->id . '_' 
     264        ? ($self->{object}->id || '') 
    254265        : ''; 
     266    $id .= '_' if ($id); 
    255267    $id =~ s/\./_/g; 
    256268    $id =~ s/-/_/g; 
     
    403415                last; 
    404416            }; 
    405  
    406             warn $_; 
    407417        } 
    408418    return ''; 
     
    450460                    frequency => 1, 
    451461                    with => "'val='+element.value" . 
    452                     ($self->{object} ? "+'&exclude=" . $self->{object}->id . "'" : 
    453                         ''), 
     462                    ($self->{object} ? 
     463                        "+'&exclude=" . ($self->{object}->id || '') . "'"  
     464                        : ''), 
    454465                } 
    455466            ) 
     
    463474    my ($self, $attr, $type) = @_; 
    464475 
    465     my $attr_info = $type 
    466         ? { formtype => $type } 
    467         : undef; 
    468  
    469     my $attribute = ($self->{object} 
    470         ? $self->{object}->attribute($attr) 
    471         : $self->base->attribute($self->otype, $attr)); 
    472  
    473     $attribute ||= $self->base->attribute( 
    474         $self->otype, 
    475         {  
    476             name => $attr, 
    477             formtype => $type 
    478         }, 
    479     ); 
     476    my $attribute = ($type 
     477        ? ref $type 
     478            ? $self->base->attribute( 
     479                $self->otype, 
     480                { %$type, name => $attr },) 
     481            : $self->base->attribute( 
     482                $self->otype, 
     483                { formtype => $type , name => $attr },) 
     484        : ($self->{object} 
     485            ? $self->{object}->attribute($attr) 
     486            : $self->base->attribute($self->otype, $attr, { formtype => $type }))) 
     487        || $self->base->attribute($self->otype, { name => $attr }); 
     488 
    480489 
    481490    my $htmlname = $self->escape($self->attr_field_name($attr)); 
    482491 
    483492    my @html_fields; 
    484     foreach my $attr_raw_value ( 
    485         $attribute->multiple 
    486             ? (grep { $_ } $self->attr_raw_value($attr)) 
    487             : $self->attr_raw_value($attr) || '') { 
     493 
     494    # Force Array context: 
     495    my @attr_raw_value = (); 
     496    if ($attribute->multiple) { 
     497        @attr_raw_value = grep { $_ } $self->attr_raw_value($attribute); 
     498    } else { 
     499        my ($val) = $self->attr_raw_value($attribute); 
     500        @attr_raw_value = ($val || ''); 
     501    } 
     502 
     503    foreach my $attr_raw_value (@attr_raw_value) { 
    488504 
    489505        my $html_id = $htmlname . 
     
    501517    } 
    502518 
    503     if ($attribute->{multiple}) { 
     519    if ($attribute->{multiple} && !$attribute->readonly) { 
    504520        my $html_id = $htmlname . '_m_SUBID'; 
    505521 
  • LATMOS-Accounts-Web/root/html/includes/header.tt

    r888 r959  
    103103        </span> 
    104104        <span> 
    105             <a href="[% c.uri_for('/sites') %]" 
    106             onMouseOver="document.getElementById('menui').innerHTML='Liste des sites';" 
    107             onMouseOut="resetmenu();" 
    108             > 
    109             <img title="Sites" src="[% c.uri_for('/static', 'icons', 'xfce-internet.png') %]"></a> 
    110         </span> 
    111         [% # On cache volontairement les alias si l'utilisateur ne doit pas y 
    112         toucher %] 
    113         [% IF c.model('Accounts').db.check_acl('aliases', '@CREATE', 'w') %] 
    114         <span> 
    115             <a href="[% c.uri_for('/aliases') %]" 
    116             onMouseOver="document.getElementById('menui').innerHTML= 
    117                 'Alias mail sans utilisateur';" 
    118             onMouseOut="resetmenu();" 
    119             > 
    120             <img title="Alias mail" src="[% c.uri_for('/static', 'icons', 'mail_forward.png') %]"></a> 
    121         </span> 
    122         [% END %] 
    123         <span> 
    124105            <a href="[% c.uri_for('/nethosts') %]" 
    125106            onMouseOver="document.getElementById('menui').innerHTML='Liste des hÃŽtes réseau';" 
     
    135116        [% END %] 
    136117        </span> 
    137         [% # On cache volontaire les zones si l'utilisateur ne doit pas y 
    138         toucher %] 
    139         [% IF c.model('Accounts').db.check_acl('netzone', '@CREATE', 'w') %] 
    140118        <span> 
    141             <a href="[% c.uri_for('/netzones') %]" 
    142             onMouseOver="document.getElementById('menui').innerHTML='Liste des zones réseaux';" 
     119            <a href="[% c.uri_for('/request') %]" 
     120            onMouseOver="document.getElementById('menui').innerHTML='Demandes';" 
    143121            onMouseOut="resetmenu();" 
    144122            > 
    145             <img title="Gestion Réseau" src="[% c.uri_for('/static', 'icons', 'network-workgroup.png') %]"></a> 
    146             <a href="[% c.uri_for('/create', 'netzone') %]" 
    147             onMouseOver="document.getElementById('menui').innerHTML='Ajouter une zones réseau';" 
     123            <img title="Demandes" src="[% c.uri_for('/static', 'icons', 'logviewer.png') %]"></a> 
     124        </span> 
     125        <span> 
     126            <a href="[% c.uri_for('/admin') %]" 
     127            onMouseOver="document.getElementById('menui').innerHTML='Administrer...';" 
    148128            onMouseOut="resetmenu();" 
    149             ><img title="Ajouter une zone" src="[% c.uri_for('/static', 'icons', 'add.png') %]"></a> 
     129            > 
     130            <img title="Administrer..." src="[% c.uri_for('/static', 'icons', 'gtk-execute.png') %]"></a> 
    150131        </span> 
    151         [% END %] 
    152132        <span> 
    153133            <a href="[% c.uri_for('/about') %]" 
  • LATMOS-Accounts-Web/root/html/request/default.tt

    r952 r959  
    11<!-- $Id$ --> 
     2 
     3<h2>[% accreq.get_attributes('description') | html %]</h2> 
    24 
    35[% IF select_object %] 
     
    2527[% ELSE %] 
    2628 
     29[% IF accreq.get_attributes('requireObject') %] 
     30<h3>[% datarequest.get_attributes('displayName') || datarequest.id %]</h3> 
     31[% END %] 
     32 
    2733<form action="[% c.uri_for('/request', accreq.id, object.id) %]"> 
    2834[% FOREACH attr = datarequest.attributes %] 
     
    3137[% END %] 
    3238<tr> 
    33 <th>[% form.attr_label(attr) %]</th> 
     39[% attrinfo = datarequest.attribute_info(attr) %] 
     40<th>[% form.attr_label(attr, attrinfo.label) %]</th> 
    3441<td>[% form.attr_field(attr) %]</td> 
    3542</tr> 
    3643[% IF loop.last %] 
    37  
     44<tr> 
     45<th>Date d'application</th> 
     46<td> 
     47[% form.attr_field('apply', { formtype => 'date', _noacl => 1, default => default_apply_date } ) %] 
     48</td> 
     49</tr> 
     50<tr><td></td><td> 
     51<input type="submit" name="send"> 
     52</td></tr> 
    3853</table> 
    3954[% END %] 
    4055[% END %] 
    41 [% form.attr_field('apply', 'DATE') %] 
    42 <input type="submit" name="send"> 
    4356</form> 
    4457 
  • LATMOS-Accounts-Web/root/html/request/index.tt

    r946 r959  
    11<!-- $Id$ --> 
    22 
     3<h2>Formuler une demande:</h2> 
     4 
    35[% FOREACH h = c.model('Accounts').db.search_objects('accreq', 'exported=*') %] 
     6[% IF loop.first %] 
     7<ul> 
     8[% END %] 
    49[% o = c.model('Accounts').db.get_object('accreq', h) %] 
     10<li> 
    511<a href="[% c.uri_for(h) %]"> 
    612[% o.get_attributes('description') || o.id | html %] 
    713</a> 
    8 <br> 
    9  
     14</li> 
     15[% IF loop.last %] 
     16</ul> 
    1017[% END %] 
     18[% END %] 
  • LATMOS-Accounts/MANIFEST

    r881 r959  
    3737bin/la-sync-manager 
    3838bin/la-warn-expire 
     39bin/la-sql-valid-request 
     40bin/la-sql-list-request 
    3941etc/cron.d/latmos-accounts 
    4042etc/init.d/la-sync-manager 
  • LATMOS-Accounts/Makefile.PL

    r881 r959  
    5858        bin/la-sql-loadatt 
    5959        bin/la-sql-upgrade 
     60        bin/la-sql-edit-form 
    6061        ) ], 
    6162        macro => { 
  • LATMOS-Accounts/lib/LATMOS/Accounts.pm

    r868 r959  
    189189        allowed_values => $self->{_allowed_values}, 
    190190        configdir => $self->_configdir, 
     191        _la => $self, 
    191192    ) or do { 
    192193        la_log(LA_WARN, "Cannot instanciate base $section ($type)"); 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases.pm

    r937 r959  
    5050    $base->{_acls} = $options{acls}; 
    5151    $base->{_allowed_values} = $options{allowed_values}; 
     52    $base->{_la} = $options{_la}; 
    5253    la_log(LA_DEBUG, 'Instanciate base %s (%s)', ($options{label} || 'N/A'), $pclass); 
    5354    $base 
     
    9293    $_[0]->{_type}; 
    9394} 
     95 
     96=head2 la 
     97 
     98return LATMOS::Accounts object parent to the base 
     99 
     100=cut 
     101 
     102sub la { $_[0]->{_la} }; 
    94103 
    95104sub options { 
     
    276285sub _create_c_object { 
    277286    my ($self, $otype, $id, %cdata) = @_; 
     287 
     288    $id ||= ''; # Avoid undef 
    278289     
    279290    if (my $chk = ( 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Attributes.pm

    r950 r959  
    152152sub check_acl { 
    153153    my ($self, $mode) = @_; 
     154 
     155    return 1 if ($self->{_noacl}); 
     156 
    154157    return $self->base->check_acl($self->object 
    155158        ? ($self->object, $self->name, $mode) 
     
    234237 
    235238    if (ref $self->{set} eq 'CODE') { 
    236         return $self->{set}->($self, $values); 
     239        return $self->{set}->($self, 
     240            ref $values 
     241            ? [ map { $self->input($_) } @$values ] 
     242            : $values ? $self->input($values) : undef); 
    237243    } else { 
    238244        return $self->object->set_fields( 
     
    240246            ref $values 
    241247                ? [ map { $self->input($_) } @$values ] 
    242                 : $self->input($values), 
    243         ); 
    244     } 
     248                : $values ? $self->input($values) : undef); 
     249    } 
     250} 
     251 
     252sub default_value { 
     253    my ($self) = @_; 
     254    return grep { $_ } (ref $self->{default} 
     255        ? @{ $self->{default} } 
     256        : $self->{default}); 
    245257} 
    246258 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/OCHelper/User.pm

    r941 r959  
    1010sub _step { 
    1111    my ($self, $info) = @_; 
    12     if ($info->{step} == 0) { 
     12    if ($info->{step} <= 0) { 
    1313        $info->{name}{ask} = 1; 
    1414        push(@{$info->{ask}}, qw(givenName sn)); 
    1515        $info->{step} = 1; 
    16         return 'NEEDINFO'; 
    17     } elsif ($info->{step} == 1) { 
     16        if (!($info->{name}{content} ||  
     17              ($info->{contents}{sn}) && $info->{contents}{givenName})) { 
     18            return 'NEEDINFO'; 
     19        } 
     20    }  
     21    if ($info->{step} == 1) { 
    1822        $info->{step} = 2; 
    1923        my $login = $info->{name}{content}; 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm

    r944 r959  
    77use base qw(LATMOS::Accounts::Bases); 
    88use LATMOS::Accounts::Log; 
     9use LATMOS::Accounts::Bases::Sql::DataRequest; 
    910use DBI; 
    1011use Crypt::RSA; 
     
    371372} 
    372373 
     374sub get_datarequest { 
     375    my ($self, $id) = @_; 
     376 
     377    my $sth = $self->db->prepare(q{ 
     378        select name from request 
     379        where id = ? 
     380        }); 
     381    $sth->execute($id); 
     382    if (my $res = $sth->fetchrow_hashref) { 
     383        my $accreq = $self->get_object('accreq', $res->{name}); 
     384        return LATMOS::Accounts::Bases::Sql::DataRequest->new($accreq, $id); 
     385    } else { 
     386        return; 
     387    } 
     388} 
     389 
     390sub list_requests { 
     391    my ($self) = @_; 
     392 
     393    my $sth = $self->db->prepare(q{ 
     394        select id from request 
     395        where done is null 
     396        order by apply 
     397    }); 
     398    $sth->execute; 
     399    my @ids; 
     400    while (my $res = $sth->fetchrow_hashref) { 
     401        push(@ids, $res->{id}); 
     402    } 
     403 
     404    @ids 
     405} 
     406 
     407sub list_pending_requests { 
     408    my ($self) = @_; 
     409 
     410    my $sth = $self->db->prepare(q{ 
     411        select id from request 
     412        where done is null 
     413            and apply < now() 
     414        order by apply 
     415    }); 
     416    $sth->execute; 
     417    my @ids; 
     418    while (my $res = $sth->fetchrow_hashref) { 
     419        push(@ids, $res->{id}); 
     420    } 
     421 
     422    @ids 
     423} 
     424 
    3734251; 
    374426 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Accreq.pm

    r945 r959  
    88use LATMOS::Accounts::Log; 
    99use base qw(LATMOS::Accounts::Bases::Sql::objects); 
     10use YAML; 
    1011 
    1112our $VERSION = (q$Rev: 2008 $ =~ /^Rev: (\d+) /)[0]; 
     
    1314=head1 NAME 
    1415 
    15 LATMOS::Ad - Perl extension for blah blah blah 
    16  
    17 =head1 SYNOPSIS 
    18  
    19   use LATMOS::Accounts::Bases; 
    20   my $base = LATMOS::Accounts::Bases->new('sql'); 
    21   ... 
     16LATMOS::Accounts::Bases::Sql::Accreq - Accreq object in LATMOS::Accounts system 
    2217 
    2318=head1 DESCRIPTION 
    2419 
    25 Account base access over standard unix file format. 
     20The C<Accreq> object is a form handle information about form allowing user to 
     21request admin for change 
    2622 
    2723=head1 FUNCTIONS 
     
    2925=cut 
    3026 
    31 =head2 new(%options) 
    32  
    33 Create a new LATMOS::Ad object for windows AD $domain. 
    34  
    35 domain / server: either the Ad domain or directly the server 
    36  
    37 ldap_args is an optionnal list of arguments to pass to L<Net::LDAP>. 
    38  
    39 =cut 
     27sub _yaml_attr { qw(description notifyMail) } 
    4028 
    4129sub object_table { 'accreq' } 
     
    5038    $class->SUPER::_get_attr_schema($base, 
    5139        { 
    52             unexported    => { inline => 1, formtype => 'CHECKBOX',}, 
     40            unexported  => { inline => 1, formtype => 'CHECKBOX',}, 
    5341            name        => { inline => 1, ro => 1, }, 
    5442            create      => { inline => 1, ro => 1, }, 
    5543            date        => { inline => 1, ro => 1, }, 
    56             attributes  => { multiple => 1 }, 
     44            attributes  => { 
     45                ro => 1, 
     46                multiple => 1, 
     47                get => sub { 
     48                    my ($self) = @_; 
     49                    my $ref = _parse_form($self, 
     50                        $self->object->get_attributes('form')); 
     51                    my @attributes = (); 
     52                    my @attrs = @{ $ref->{attrs} }; 
     53                    while (my $attr = shift(@attrs)) { 
     54                        my $attrname = ref $attr 
     55                        ? $attr->{name} 
     56                        : $attr; 
     57                        push(@attributes, $attrname); 
     58                    } 
     59                    \@attributes 
     60                }, 
     61            }, 
    5762            oType       => { 
    5863                can_values => sub { 
     
    6166                mandatory => 1, 
    6267            }, 
    63             requireObject => { formtype => 'CHECKBOX', } 
     68            requireObject => { formtype => 'CHECKBOX', }, 
     69            form => { 
     70                get => sub { 
     71                    my ($self) = @_; 
     72                    if (my $obj = $self->object) { 
     73                        my $res = $obj->parse_form; 
     74                        foreach (_yaml_attr()) { 
     75                            $res->{$_} = $obj->get_field($_); 
     76                        } 
     77                        return YAML::freeze($res); 
     78                    } else { 
     79                        return; 
     80                    } 
     81                }, 
     82                set => sub { 
     83                    my ($self, $yaml) = @_; 
     84                    my $res = _parse_form($self, $yaml) 
     85                        or return 0; 
     86                    my %attrs; 
     87                    foreach (_yaml_attr()) { 
     88                        $attrs{$_} = $res->{$_} if (exists($res->{$_})); 
     89                    } 
     90                    $self->object->set_fields(%attrs, form => $yaml); 
     91                }, 
     92            }, 
    6493        } 
    6594    ) 
    6695} 
    6796 
    68 sub _office_address_fields { qw(telephoneNumber physicalDeliveryOfficeName site) } 
     97sub parse_form { 
     98    my ($self) = @_; 
     99    if (my $text = $self->get_field('form')) { 
     100        $self->_parse_form($text); 
     101    } else { 
     102        return { attrs => [] }; 
     103    } 
     104} 
     105 
     106sub attr_info { 
     107    my ($self, $wanted_attr) = @_; 
     108 
     109    my $ref = $self->parse_form; 
     110 
     111    my @attrs = @{ $ref->{attrs} }; 
     112    while (my $attr = shift(@attrs)) { 
     113        my $attrname = ref $attr 
     114            ? $attr->{name} 
     115            : $attr; 
     116        if ($wanted_attr eq $attrname) { 
     117            if (ref $attr) { 
     118                return $attr; 
     119            } else { 
     120                return; 
     121            } 
     122        } 
     123    } 
     124    return; 
     125} 
     126 
     127sub _parse_form { 
     128    my ($self, $yaml) = @_; 
     129 
     130    my $ref = YAML::thaw($yaml) or return 0; 
     131 
     132    my @attributes = (); 
     133    my @attrs = @{ $ref->{attrs} }; 
     134    while (my $attr = shift(@attrs)) { 
     135        my $attrname = ref $attr 
     136            ? $attr->{name} 
     137            : $attr; 
     138 
     139        if (!$attrname) { 
     140            $self->base->log('LA_ERR', 'No attribute name supplied'); 
     141            return; 
     142        } 
     143    } 
     144 
     145    $ref 
     146} 
    69147 
    701481; 
     
    86164at your option, any later version of Perl 5 you may have available. 
    87165 
    88  
    89166=cut 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Aliases.pm

    r939 r959  
    5656                multiple => 1, 
    5757            }, 
    58             finalpoint      => { ro => 1, }, 
     58            finalpoint      => { ro => 1, multiple => 1 }, 
    5959            parents         => { ro => 1, }, 
    6060            anyparents      => { ro => 1, }, 
    61             sameforward     => { ro => 1, }, 
    62             samedestination => { ro => 1, }, 
     61            sameforward     => { ro => 1, multiple => 1 }, 
     62            samedestination => { ro => 1, multiple => 1 }, 
    6363            user            => { 
    6464                ro => 1, 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm

    r938 r959  
    1414 
    1515LATMOS::Ad - Perl extension for blah blah blah 
    16  
    17 =head1 SYNOPSIS 
    18  
    19   use LATMOS::Accounts::Bases; 
    20   my $base = LATMOS::Accounts::Bases->new('sql'); 
    21   ... 
    2216 
    2317=head1 DESCRIPTION 
     
    491485        $attr =~ /^memberOf$/ and do { 
    492486            my %member; 
    493             foreach (@{ $self->get_field('memberOf') }) { 
     487            my $memberof = $self->get_field('memberOf'); 
     488            foreach (ref $memberof 
     489                ? @{ $memberof } 
     490                : $memberof || ()) { 
    494491                $member{$_}{c} = 1; 
    495492            } 
     
    710707at your option, any later version of Perl 5 you may have available. 
    711708 
    712  
    713709=cut 
  • LATMOS-Accounts/lib/LATMOS/Accounts/Utils.pm

    r861 r959  
    148148sub check_ug_validity { 
    149149    my ($name) = @_; 
     150    return "Empty name is not a valid name !" 
     151        if (!$name); 
    150152    return "first caractere must be a-z" 
    151153        if ($name !~ /^[a-z]/); 
  • LATMOS-Accounts/sqldata/attributes.csv

    r945 r959  
    11"accreq","description","description" 
    22"accreq","oType","Type d'objet" 
    3 "accreq","attributes","Attributs" 
    43"accreq","requireObject","Mets à jour un objet existant" 
    54"accreq","notifyMail","Mail recevant la demande" 
    65"accreq","comment","Commentaire" 
     6"accreq","form","Description du formulaire" 
    77"address","isMainAddress","Cette addresse est tel l'adresse principal" 
    88"address","postalCode","Code postal" 
Note: See TracChangeset for help on using the changeset viewer.