Changeset 329 for LATMOS-Accounts
- Timestamp:
- 08/12/09 13:31:56 (15 years ago)
- Location:
- LATMOS-Accounts/lib/LATMOS/Accounts/Bases
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql.pm
r327 r329 64 64 undef, undef, 65 65 { 66 RaiseError => 0,66 RaiseError => 1, 67 67 AutoCommit => 0, 68 68 PrintWarn => 1, -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Address.pm
r306 r329 43 43 sub has_extended_attributes { 1 } 44 44 45 sub _initials_fields {46 return {47 gidNumber => 'gidnumber',48 user => 'user',49 }50 }51 52 45 sub _inline_fields { 53 46 my ($self, $for, $base) = @_; 54 47 55 48 my %fields = ( 56 %{ $self->SUPER::_inline_fields($for, $base) }, 49 $self->SUPER::_inline_fields($for, $base), 50 gidNumber => 'gidnumber', 51 user => 'user', 57 52 ); 58 \%fields;59 53 } 60 54 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/Group.pm
r251 r329 43 43 sub has_extended_attributes { 1 } 44 44 45 sub _initials_fields { 46 return { 45 sub _inline_fields { 46 my ($self, $for, $base) = @_; 47 return ( 48 $self->SUPER::_inline_fields($for, $base), 47 49 gidNumber => 'gidnumber', 48 }50 ); 49 51 } 50 52 51 sub _ inline_fields {53 sub _managed_fields { 52 54 my ($self, $for, $base) = @_; 53 55 54 56 my %fields = ( 55 %{ $self->SUPER::_inline_fields($for, $base) },56 57 memberUID => 'memberUID', 57 58 member => 'member', 58 # gidNumber => 'gidnumber',59 59 $for !~ /w/ ? ( 60 60 sAMAccountName => 'name', … … 62 62 ) : (), 63 63 ); 64 \%fields;64 %fields; 65 65 } 66 66 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/User.pm
r317 r329 49 49 } 50 50 51 sub _initials_fields { 52 return { 51 sub _inline_fields { 52 my ($class, $for, $base) = @_; 53 return ( 53 54 uidNumber => 'uidnumber', 54 55 gidNumber => 'gidnumber', 55 }56 } 57 58 sub _ inline_fields {56 ); 57 } 58 59 sub _managed_fields { 59 60 my ($self, $for, $base) = @_; 60 return { 61 %{ $self->SUPER::_inline_fields($for, $base) }, 61 return ( 62 62 memberOf => 'memberOf', 63 # uidNumber => 'uidnumber',64 # gidNumber => 'gidnumber',65 63 (($for !~ /w/) ? ( 66 64 uid => 'name', … … 74 72 department => 'department', 75 73 ) : ()), 76 }74 ) 77 75 } 78 76 -
LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Sql/objects.pm
r328 r329 78 78 79 79 sub has_extended_attributes { 0 } 80 81 # Work only for very simple case, must be override 80 82 81 83 sub _inline_fields { … … 100 102 } 101 103 my %fields = map { $_ => $_ } @res; 102 \%fields 103 } 104 105 sub _canonical_fields { 106 my ($class, $base, $for) = @_; 107 $for ||= 'rw'; 104 %fields 105 } 106 107 # Everything managed by the perl code 108 109 sub _managed_fields { 110 my ($class, $for, $base) = @_; 111 return(); 112 } 113 114 # Everything from attributes_list table 115 # $for is uneeded here as all this attributes are rw 116 117 sub _extended_field { 118 my ($class, $for, $base) = @_; 108 119 my @attr; 109 120 if ($class->has_extended_attributes) { 110 121 my $sth = $base->db->prepare_cached( 111 122 sprintf( 112 q{select canonical from %s order by canonical},123 q{select canonical from only %s order by canonical}, 113 124 $base->db->quote_identifier($class->object_table . '_attributes_list'), 114 125 ) … … 118 129 push(@attr, $res->{canonical}); 119 130 } 120 } 121 my %inl = %{ $class->_inline_fields($for, $base) || {} }; 122 $inl{$_} = 1 foreach(@attr); 131 return map { $_ => $_ } @attr; 132 } 133 } 134 135 sub _canonical_fields { 136 my ($class, $base, $for) = @_; 137 $for ||= 'rw'; 138 my %inl = ( 139 $class->_inline_fields($for, $base), 140 $class->_managed_fields($for, $base), 141 $class->_extended_field($for, $base), 142 ); 123 143 return sort keys %inl; 124 125 144 } 126 145 … … 146 165 $c_field or return; 147 166 $for ||= 'rw'; 148 my $inline = $class->_inline_fields($for, $base) || {}; 149 return $inline->{$c_field} 150 ? $inline->{$c_field} 151 : $class->_get_field_name_db($c_field, $base); 167 my %fields = $class->_managed_fields($for, $base); 168 return $fields{$c_field} if ($fields{$c_field}); 169 %fields = $class->_inline_fields($for, $base); 170 return $fields{$c_field} if ($fields{$c_field}); 171 %fields = $class->_extended_field($for, $base); 172 return $fields{$c_field} 152 173 } 153 174 … … 188 209 189 210 # splitting inline from extended 190 my $inl = $class->_initials_fields('w', $base) || {}; 211 my %inlined = $class->_inline_fields('w', $base); 212 my %inl = map { $_ => 1 } values %inlined; 191 213 my (%first, %second); 192 214 foreach (keys %data) { 193 if ($inl->{$_}) { 194 $first{$inl->{$_}} = $data{$_}; 215 warn $_; 216 if ($inl{$_}) { 217 $first{$_} = $data{$_}; 195 218 } else { 196 219 $second{$_} = $data{$_}; … … 244 267 sub get_field { 245 268 my ($self, $field) = @_; 246 my $inl = $self->_inline_fields('r', $self->base) || {};247 my %inline = map { $ inl->{$_} => 1 } keys %{ $inl || {}};248 if ($inline{ lc($field)}) {269 my %inl = $self->_inline_fields('r', $self->base); 270 my %inline = map { $_ => 1 } values %inl; 271 if ($inline{$field}) { 249 272 my $sth = $self->db->prepare_cached( 250 273 sprintf( … … 284 307 my @vals; 285 308 my %ext; 286 my $inl = $self->_inline_fields('w', $self->base) || {};287 my %inline = map { $ inl->{$_} => 1 } keys %{ $inl || {}};309 my %inl = $self->_inline_fields('w', $self->base); 310 my %inline = map { $_ => 1 } values %inl; 288 311 foreach my $field (keys %data) { 289 312 $data{$field} = $data{$field} ? 1 : 0 if($field eq 'exported'); … … 357 380 } 358 381 } else { 382 warn "delete"; 359 383 defined($sthd->execute($okey, $_)) or do { 360 384 $self->base->log(LA_ERR,
Note: See TracChangeset
for help on using the changeset viewer.