forward port of MultiSearch docs and setParent privilege checks

This commit is contained in:
Colin Kuskie 2006-02-23 00:54:30 +00:00
parent 406b9310a6
commit b32a94d4d0
5 changed files with 74 additions and 6 deletions

View file

@ -568,11 +568,13 @@ An asset object reference representing the new parent to paste the asset to.
sub setParent {
my $self = shift;
my $newParent = shift;
return 0 unless $self->session->user->isInGroup('4');
return 0 unless (defined $newParent); # can't move it if a parent object doesn't exist
return 0 if ($newParent->getId eq $self->get("parentId")); # don't move it to where it already is
return 0 if ($newParent->getId eq $self->getId); # don't move it to itself
if (defined $newParent) {
my $oldLineage = $self->get("lineage");
return 0 unless $newParent->canEdit;
my $lineage = $newParent->get("lineage").$newParent->getNextChildRank;
return 0 if ($lineage =~ m/^$oldLineage/); # can't move it to its own child
$self->session->db->beginTransaction;
@ -698,7 +700,10 @@ sub www_setParent {
my $self = shift;
return $self->session->privilege->insufficient() unless $self->canEdit;
my $newParent = WebGUI::Asset->newByDynamicClass($self->session->form->process("assetId"));
$self->setParent($newParent) if (defined $newParent);
if (defined $newParent) {
my $success = $self->setParent($newParent);
return $self->session->privilege->insufficient() unless $success;
}
return $self->www_manageAssets();
}