From b062e61508a0cee9fc9d381829d42e0e04c7c104 Mon Sep 17 00:00:00 2001 From: JT Smith Date: Mon, 20 Mar 2006 21:53:14 +0000 Subject: [PATCH] fixed locking bug --- lib/WebGUI/Asset.pm | 8 ++++---- lib/WebGUI/Asset/Wobject/Layout.pm | 2 +- lib/WebGUI/AssetTrash.pm | 4 ++-- lib/WebGUI/AssetVersioning.pm | 6 +++--- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/lib/WebGUI/Asset.pm b/lib/WebGUI/Asset.pm index ae87e055c..6122f55ae 100644 --- a/lib/WebGUI/Asset.pm +++ b/lib/WebGUI/Asset.pm @@ -855,7 +855,7 @@ sub getToolbar { my $i18n = WebGUI::International->new($self->session, "Asset"); my $toolbar = $self->session->icon->delete('func=delete',$self->get("url"),$i18n->get(43)); my $commit; - if (($self->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId")) || !$self->isLocked) { + if ($self->canEditIfLocked) { $toolbar .= $self->session->icon->edit('func=edit',$self->get("url")); } else { $toolbar .= $self->session->icon->locked('func=manageRevisions',$self->get("url")); @@ -1036,7 +1036,7 @@ sub manageAssets { my $edit; if ($child->isLocked) { $locked = 'locked'; - $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId")); + $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->canEditIfLocked); } else { $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+"; $locked = 'unlocked'; @@ -1196,7 +1196,7 @@ sub manageAssetsSearch { my $edit; if ($child->isLocked) { $locked = 'locked'; - $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId")); + $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+" if ($child->canEditIfLocked); } else { $edit = "'getUrl("func=edit;proceed=manageAssets")."\">Edit | '+"; $locked = 'unlocked'; @@ -1755,7 +1755,7 @@ sub www_editSave { $object = $self->addChild({className=>$self->session->form->process("class")}); $object->{_parent} = $self; } else { - if ($self->canEditIfLocked || !$self->isLocked) { + if ($self->canEditIfLocked) { $object = $self->addRevision; } else { return $self->getContainer->www_view; diff --git a/lib/WebGUI/Asset/Wobject/Layout.pm b/lib/WebGUI/Asset/Wobject/Layout.pm index 781d6297d..f1eadbe8a 100644 --- a/lib/WebGUI/Asset/Wobject/Layout.pm +++ b/lib/WebGUI/Asset/Wobject/Layout.pm @@ -215,7 +215,7 @@ sub prepareView { #------------------------------------------------------------------- sub view { my $self = shift; - if ($self->{_viewVars}{showAdmin} && (($self->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId")) || !$self->isLocked)) { + if ($self->{_viewVars}{showAdmin} && $self->canEditIfLocked) { # under normal circumstances we don't put HTML stuff in our code, but this will make it much easier # for end users to work with our templates $self->{_viewVars}{"dragger.icon"} = $self->session->icon->drag(); diff --git a/lib/WebGUI/AssetTrash.pm b/lib/WebGUI/AssetTrash.pm index bec8db5ed..4dc673049 100644 --- a/lib/WebGUI/AssetTrash.pm +++ b/lib/WebGUI/AssetTrash.pm @@ -146,7 +146,7 @@ Moves self to trash, returns www_view() method of Parent if canEdit. Otherwise r sub www_delete { my $self = shift; - return $self->session->privilege->insufficient() unless ($self->canEdit && !($self->isLocked && !$self->canEditIfLocked)); + return $self->session->privilege->insufficient() unless ($self->canEdit && $self->canEditIfLocked); return $self->session->privilege->vitalComponent() if (isIn($self->getId, $self->session->setting->get("defaultPage"), $self->session->setting->get("notFoundPage"))); $self->trash; $self->session->asset($self->getParent); @@ -166,7 +166,7 @@ sub www_deleteList { return $self->session->privilege->insufficient() unless $self->canEdit; foreach my $assetId ($self->session->form->param("assetId")) { my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId); - if ($asset->canEdit && !($asset->isLocked && !$asset->canEditIfLocked)) { + if ($asset->canEdit && $asset->canEditIfLocked) { $asset->trash; } } diff --git a/lib/WebGUI/AssetVersioning.pm b/lib/WebGUI/AssetVersioning.pm index f4b7d2126..c74be7b89 100644 --- a/lib/WebGUI/AssetVersioning.pm +++ b/lib/WebGUI/AssetVersioning.pm @@ -80,14 +80,14 @@ sub addRevision { =head2 canEditIfLocked ( ) -Returns a boolean indicating whether this asset is locked and if the current user can edit it in that state. +Returns 1 if it's not locked. Returns 1 if is locked, and the user is using the tag it was edited under. Otherwise returns 0. =cut sub canEditIfLocked { my $self = shift; - return 0 unless ($self->isLocked); - return ($self->get("isLockedBy") eq $self->session->user->userId); + return 1 unless ($self->isLocked); + return ($self->session->scratch->get("versionTag") eq $self->get("tagId")); }