Changeset 493
- Timestamp:
- 10/05/09 07:09:18 (15 years ago)
- Location:
- LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Aliases.pm
r462 r493 61 61 sub _create { 62 62 my ($class, $base, $id, %data) = @_; 63 $data{'forward'} = [ $data{'forward'} ] unless(ref $data{'forward'}); 63 64 my $sth = $base->db->prepare_cached(q{ 64 65 select name from aliases where lower(name) = lower(?) … … 132 133 } 133 134 135 sub set_fields { 136 my ($self, %attrs) = @_; 137 foreach (keys %attrs) { 138 /^forward$/ and do { 139 $attrs{$_} = [ $attrs{$_} ] unless(ref $attrs{$_}); 140 }; 141 } 142 $self->SUPER::set_fields(%attrs); 143 } 144 134 145 1; 135 146 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm
r488 r493 66 66 memberOf => 'memberOf', 67 67 forward => 'forward', 68 aliases => 'aliases', 68 69 (map { $_ => $_ } $self->_address_fields), 69 70 (map { $_ => $_ } $self->_office_address_fields), … … 80 81 otheraddress => 'otheraddress', 81 82 mainaddress => 'mainaddress', 82 aliases => 'aliases',83 83 revaliases => 'revaliases', 84 postalAddress => 'postalAddress', 84 85 facsimileTelephoneNumber => 'facsimileTelephoneNumber', 85 86 ) : ()), … … 197 198 $sth->finish; 198 199 return $res->{name}; 199 } elsif (grep { $field eq $_ } __PACKAGE__->_address_fields(), $self->_office_address_fields) { 200 } elsif (grep { $field eq $_ } __PACKAGE__->_address_fields(), 201 $self->_office_address_fields, 'postalAddress') { 200 202 if (my $fmainaddress = $self->get_c_field('mainaddress')) { 201 203 my $address = $self->base->get_object('address', $fmainaddress); … … 210 212 } elsif ($field eq 'aliases') { 211 213 my $sth = $self->db->prepare(q{ 212 select name from aliases where array[lower($1)] <@214 select name from aliases where array[lower($1)] = 213 215 string_to_array(lower(array_to_string("forward", ',')), ',') 214 216 } . ($self->base->{wexported} ? '' : 'and exported = true')); … … 296 298 next; 297 299 }; 300 $attr =~ /^aliases$/ and do { 301 my %aliases = map { $_ => 1 } @{$data{$attr}}; 302 foreach ($self->get_attributes('aliases')) { 303 $aliases{$_} ||= 0; 304 $aliases{$_} +=2; 305 } 306 foreach (keys %aliases) { 307 if ($aliases{$_} == 2) { 308 warn "del $_"; 309 } elsif ($aliases{$_} == 1) { 310 warn "new $_"; 311 } # 3 no change 312 } 313 next; 314 }; 298 315 grep { $attr eq $_ } (__PACKAGE__->_office_address_fields, __PACKAGE__->_address_fields()) and do { 299 316 my $fmainaddress = $self->_get_c_field('mainaddress'); … … 311 328 } 312 329 if (my $address = $self->base->get_object('address', $fmainaddress)) { 313 $res += $address->set_c_fields($attr => $data{$attr}) ;330 $res += $address->set_c_fields($attr => $data{$attr}) ||0; 314 331 } 315 332 next; -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm
r453 r493 30 30 # This fields are special in sense they may come from site field 31 31 sub _address_fields { qw(co l postalCode streetAddress postOfficeBox st 32 facsimileTelephoneNumber o postalAddress) }32 facsimileTelephoneNumber o) } 33 33 34 34 =head1 FUNCTIONS
Note: See TracChangeset
for help on using the changeset viewer.