}
/**
+ * Returns if the page allows a mode. Access rights and user state
+ * are taken into consideration.
+ *
+ * @see $supportedModes
+ *
+ * @param integer $mode The mode to check for.
+ *
+ * @return boolean True if the mode is allowed.
+ */
+ function allows($mode)
+ {
+ if ($mode == WICKED_MODE_EDIT) {
+ $page = Page::getPage($this->referrer());
+ if ($page->isLocked(Wicked::lockUser())) {
+ return false;
+ }
+ }
+ return parent::allows($mode);
+ }
+
+ /**
* Retrieve this user's permissions for the referring page.
*
* @return integer The permissions bitmask.
separator(true);
-if ($this->allows(WICKED_MODE_EDIT) && !$this->isLocked()) {
+if ($this->allows(WICKED_MODE_EDIT) && !$this->isLocked(Wicked::lockUser())) {
separator();
$url = Horde_Util::addParameter(Wicked::url('EditPage'),
'referrer', $this->pageName());
'widget', '', '', _("_Delete"));
}
-if ($this->allows(WICKED_MODE_EDIT)) {
+if ($this->allows(WICKED_MODE_EDIT) && !$this->isLocked(Wicked::lockUser())) {
separator();
$url = Horde_Util::addParameter(Wicked::url('MergeOrRename'),
'referrer', $this->pageName());