forward port of MultiSearch docs and setParent privilege checks
This commit is contained in:
parent
406b9310a6
commit
b32a94d4d0
5 changed files with 74 additions and 6 deletions
|
|
@ -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();
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue