Changeset 851
- Timestamp:
- 04/04/10 03:41:53 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LATMOS-Accounts/lib/LATMOS/Accounts/Cli.pm
r850 r851 325 325 if (lc($otype) eq 'user') { 326 326 $objenv->add_func('group', { 327 help => 'group add|remove goupname',327 help => 'group add|remove|primary goupname', 328 328 code => sub { 329 329 my ($env, $action, @groups) = @_; 330 330 foreach my $obj (@{$env->{_objects}}) { 331 my %gr; 332 foreach ($obj->get_attributes('memberOf')) { 333 $gr{$_} = 1; 331 if ($action eq 'primary') { 332 my $gid = $groups[0]; 333 if ($gid !~ /^\d/) { 334 my $gobj = $env->base->get_object('group', $gid) or 335 do { 336 print $OUT "Cannot find group $gid"; 337 return; 338 }; 339 $gid = $gobj->get_attributes('gidNumber'); 340 } 341 $obj->set_c_fields('gidNumber', $gid); 342 } else { 343 my %gr; 344 foreach ($obj->get_attributes('memberOf')) { 345 $gr{$_} = 1; 346 } 347 if ($action eq 'add') { 348 $gr{$_} = 1 foreach(@groups); 349 } elsif ($action eq 'remove') { 350 delete($gr{$_}) foreach(@groups); 351 } else { 352 print $OUT 'invalid action'; 353 return; 354 } 355 defined $obj->set_c_fields('memberOf' => [ keys %gr ]) or do { 356 print $OUT "cannot set memberOf attributes for " . 357 $obj->id; 358 return; 359 }; 334 360 } 335 if ($action eq 'add') {336 $gr{$_} = 1 foreach(@groups);337 } elsif ($action eq 'remove') {338 delete($gr{$_}) foreach(@groups);339 } else {340 print $OUT 'invalid action';341 return;342 }343 defined $obj->set_c_fields('memberOf' => [ keys %gr ]) or do {344 print $OUT "cannot set memberOf attributes for " .345 $obj->id;346 return;347 };348 361 } 349 362 $env->base->commit; … … 351 364 completion => sub { 352 365 if (!$_[2]) { 353 return (qw(add remove ));366 return (qw(add remove primary)); 354 367 } else { 355 368 return $_[0]->base->search_objects('group');
Note: See TracChangeset
for help on using the changeset viewer.