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 = '
';
- $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 = '
';
@@ -1196,7 +1196,7 @@ sub manageAssetsSearch {
my $edit;
if ($child->isLocked) {
$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 = '
';
@@ -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"));
}