Changeset 1705 for trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases
- Timestamp:
- 02/03/16 05:29:32 (8 years ago)
- Location:
- trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap/User.pm
r1702 r1705 43 43 44 44 sub _key_attr { 'cn' } 45 46 sub _key_attribute { 47 my ($self, $base) = @_; 48 $base ||= $self->base; 49 50 $base->config($self->type . '_key_attribute') || 'uid'; 51 } 45 52 46 53 sub _my_ldap_classes { qw( -
trunk/LATMOS-Accounts/lib/LATMOS/Accounts/Bases/Ldap/objects.pm
r1616 r1705 146 146 147 147 my $mesg; 148 if ($class->_key_attribute($base) eq 148 149 if ($class->_key_attribute($base) ne 149 150 $class->_dn_attribute($base)) { 150 $mesg = $base->ldap->moddn( $obj->{entry}, 151 newrdn => $class->_dn_attribute($base) . '=' . escape_filter_value($newuid), 152 deleteoldrdn => 1,) 153 } else { 154 $obj->{entry}->replace($class->_key_attribute($base), $newuid); 155 $mesg = $obj->{entry}->update($base->ldap); 156 } 151 152 my $entry = $obj->{entry}->clone; 153 $entry->add( 154 $class->_key_attribute($base), 155 $newuid 156 ); 157 $mesg = $entry->update($base->ldap); 158 if ($mesg->code && $mesg->code ne 20) { 159 $base->log(LA_ERR, "Cannot update key_attribute for object %s: %s", $uid, $mesg->error); 160 return; 161 } 162 } 163 164 165 $mesg = $base->ldap->moddn( 166 $obj->{entry}, 167 newrdn => $class->_dn_attribute($base) . '=' . escape_filter_value($newuid), 168 deleteoldrdn => 1, 169 ); 170 if ($mesg->code) { 171 $base->log(LA_ERR, "Cannot rename object %s: %s", $uid, $mesg->error); 172 return; 173 } 174 175 $mesg = $base->ldap->search( 176 filter => sprintf( 177 '(&%s (%s=%s))', 178 $class->_class_filter, 179 $class->_key_attribute($base), 180 escape_filter_value($newuid), 181 ), 182 base => $base->object_base_dn($class->type), 183 attrs => [ $class->_canonical_fields($base, 'r') ], 184 ); 185 186 if ($mesg->code) { 187 $base->log(LA_ERR, 'Cannot fetch %s/%s: %s', $class->type, $uid, $mesg->code); 188 return; 189 } 190 191 my ($entry, @others) = $mesg->entries; 192 193 $obj->{entry} = $entry; 194 195 $obj->{entry}->replace( 196 $class->_key_attribute($base), 197 $newuid 198 ); 199 $mesg = $obj->{entry}->update($base->ldap); 157 200 158 201 if ($mesg->code) {
Note: See TracChangeset
for help on using the changeset viewer.