Author: peter
Date: Thu Sep 17 15:24:58 2009
New Revision: 3382
Log:
restrict ability to change publicationStatus to 'published' according to ACL
permission
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Modified:
trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
==============================================================================
--- trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Thu Sep 17 15:21:39 2009 (r3381)
+++ trunk/apps/qubit/modules/informationobject/actions/editAction.class.php
Thu Sep 17 15:24:58 2009 (r3382)
@@ -64,23 +64,35 @@
case 'publicationStatus':
- if ($publicationStatusId =
$this->informationObject->getStatus($options = array('typeId' =>
QubitTerm::STATUS_TYPE_PUBLICATION_ID))->statusId)
+ if (QubitAcl::check($this->informationObject,
QubitAclAction::PUBLISH_ID))
{
- $this->form->setDefault('publicationStatus',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => $publicationStatusId)));
+ if ($publicationStatusId =
$this->informationObject->getStatus($options = array('typeId' =>
QubitTerm::STATUS_TYPE_PUBLICATION_ID))->statusId)
+ {
+ $this->form->setDefault('publicationStatus',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => $publicationStatusId)));
+ }
+ else
+ {
+ // set default publication status to 'draft'
+ $this->form->setDefault('publicationStatus',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => QubitTerm::PUBLICATION_STATUS_DRAFT_ID)));
+ }
+ $choices = array(); // no null option for publicationStatus
+ foreach
(QubitTaxonomy::getTermsById(QubitTaxonomy::PUBLICATION_STATUS_ID) as $term)
+ {
+ $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ }
}
else
{
- // set default publication status to 'draft'
+ // if user does not have publish permission always limit the widget
values to 'draft'
$this->form->setDefault('publicationStatus',
$this->context->routing->generate(null, array('module' => 'term', 'action' =>
'show', 'id' => QubitTerm::PUBLICATION_STATUS_DRAFT_ID)));
- }
- $this->form->setValidator('publicationStatus', new sfValidatorString);
- $choices = array(); // no null option for publicationStatus
- foreach
(QubitTaxonomy::getTermsById(QubitTaxonomy::PUBLICATION_STATUS_ID) as $term)
- {
- $choices[$this->context->routing->generate(null, array('module' =>
'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ $choices = array(); // no null option for publicationStatus
+ $term = QubitTerm::getById(QubitTerm::PUBLICATION_STATUS_DRAFT_ID);
+ {
+ $choices[$this->context->routing->generate(null, array('module'
=> 'term', 'action' => 'show', 'id' => $term->id))] = $term;
+ }
}
-
+ $this->form->setValidator('publicationStatus', new sfValidatorString);
$this->form->setWidget('publicationStatus', new
sfWidgetFormSelect(array('choices' => $choices)));
break;
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Qubit Toolkit Commits" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.ca/group/qubit-commits?hl=en
-~----------~----~----~----~------~----~------~--~---