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 $i18n = WebGUI::International->new($self->session, "Asset");
my $toolbar = $self->session->icon->delete('func=delete',$self->get("url"),$i18n->get(43)); my $toolbar = $self->session->icon->delete('func=delete',$self->get("url"),$i18n->get(43));
my $commit; 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")); $toolbar .= $self->session->icon->edit('func=edit',$self->get("url"));
} else { } else {
$toolbar .= $self->session->icon->locked('func=manageRevisions',$self->get("url")); $toolbar .= $self->session->icon->locked('func=manageRevisions',$self->get("url"));
@ -1036,7 +1036,7 @@ sub manageAssets {
my $edit; my $edit;
if ($child->isLocked) { if ($child->isLocked) {
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/locked.gif" alt="locked" style="border: 0px;" />'; $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 { } else {
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+"; $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;" />'; $locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/unlocked.gif" alt="unlocked" style="border: 0px;" />';
@ -1196,7 +1196,7 @@ sub manageAssetsSearch {
my $edit; my $edit;
if ($child->isLocked) { if ($child->isLocked) {
$locked = '<img src="'.$self->session->config->get("extrasURL").'/assetManager/locked.gif" alt="locked" style="border: 0px;" />'; $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 { } else {
$edit = "'<a href=\"".$child->getUrl("func=edit;proceed=manageAssets")."\">Edit</a> | '+"; $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;" />'; $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 = $self->addChild({className=>$self->session->form->process("class")});
$object->{_parent} = $self; $object->{_parent} = $self;
} else { } else {
if ($self->canEditIfLocked || !$self->isLocked) { if ($self->canEditIfLocked) {
$object = $self->addRevision; $object = $self->addRevision;
} else { } else {
return $self->getContainer->www_view; return $self->getContainer->www_view;

View file

@ -215,7 +215,7 @@ sub prepareView {
#------------------------------------------------------------------- #-------------------------------------------------------------------
sub view { sub view {
my $self = shift; 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 # 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 # for end users to work with our templates
$self->{_viewVars}{"dragger.icon"} = $self->session->icon->drag(); $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 { sub www_delete {
my $self = shift; 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"))); return $self->session->privilege->vitalComponent() if (isIn($self->getId, $self->session->setting->get("defaultPage"), $self->session->setting->get("notFoundPage")));
$self->trash; $self->trash;
$self->session->asset($self->getParent); $self->session->asset($self->getParent);
@ -166,7 +166,7 @@ sub www_deleteList {
return $self->session->privilege->insufficient() unless $self->canEdit; return $self->session->privilege->insufficient() unless $self->canEdit;
foreach my $assetId ($self->session->form->param("assetId")) { foreach my $assetId ($self->session->form->param("assetId")) {
my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId); my $asset = WebGUI::Asset->newByDynamicClass($self->session,$assetId);
if ($asset->canEdit && !($asset->isLocked && !$asset->canEditIfLocked)) { if ($asset->canEdit && $asset->canEditIfLocked) {
$asset->trash; $asset->trash;
} }
} }

View file

@ -80,14 +80,14 @@ sub addRevision {
=head2 canEditIfLocked ( ) =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 =cut
sub canEditIfLocked { sub canEditIfLocked {
my $self = shift; my $self = shift;
return 0 unless ($self->isLocked); return 1 unless ($self->isLocked);
return ($self->get("isLockedBy") eq $self->session->user->userId); return ($self->session->scratch->get("versionTag") eq $self->get("tagId"));
} }