fixed locking bug

This commit is contained in:
JT Smith 2006-03-20 21:53:14 +00:00
parent 3931d8dcd2
commit b062e61508
4 changed files with 10 additions and 10 deletions

View file

@ -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 = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/locked.gif" alt="locked" style="border: 0px;" />';
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+" if ($child->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId"));
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+" if ($child->canEditIfLocked);
} else {
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+";
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/unlocked.gif" alt="unlocked" style="border: 0px;" />';
@ -1196,7 +1196,7 @@ sub manageAssetsSearch {
my $edit;
if ($child->isLocked) {
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/locked.gif" alt="locked" style="border: 0px;" />';
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+" if ($child->canEditIfLocked && $self->session->scratch->get("versionTag") eq $self->get("tagId"));
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+" if ($child->canEditIfLocked);
} else {
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+";
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/unlocked.gif" alt="unlocked" style="border: 0px;" />';
@ -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;

View file

@ -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();

View file

@ -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;
}
}

View file

@ -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"));
}