/** * Remove this page from archive * * @param void * @return null */ function unarchive() { if ($this->active_page->isNew()) { $this->httpError(HTTP_ERR_NOT_FOUND); } // if if (!$this->active_page->canEdit($this->logged_user)) { $this->httpError(HTTP_ERR_FORBIDDEN); } // if if ($this->request->isSubmitted()) { $this->active_page->setIsArchived(false); $save = $this->active_page->save(); if ($save && !is_error($save)) { if ($this->request->isApiCall()) { $this->serveData($this->active_page, 'page'); } else { flash_success('Page ":name" has been archived', array('name' => $this->active_page->getName())); } // if } else { if ($this->request->isApiCall()) { $this->serveData($save); } else { flash_error('Failed to archive ":name" page', array('name' => $this->active_page->getName())); } // if } // if $this->redirectToUrl($this->active_page->getViewUrl()); } else { $this->httpError(HTTP_ERR_BAD_REQUEST); } // if }
/** * Shop Admins can edit * @param Member $member * @return Boolean */ function canEdit($member = null) { if (Permission::checkMember($member, Config::inst()->get("EcommerceRole", "admin_permission_code"))) { return true; } return parent::canEdit($member); }
public function testEditPermissionsOnDraftVsLive() { // Create an inherit-permission page $page = new Page(); $page->write(); $page->CanEditType = "Inherit"; $page->doPublish(); $pageID = $page->ID; // Lock down the site config $sc = $page->SiteConfig; $sc->CanEditType = 'OnlyTheseUsers'; $sc->EditorGroups()->add($this->idFromFixture('Group', 'admins')); $sc->write(); // Confirm that Member.editor can't edit the page $this->objFromFixture('Member', 'editor')->logIn(); $this->assertFalse($page->canEdit()); // Change the page to be editable by Group.editors, but do not publish $this->objFromFixture('Member', 'admin')->logIn(); $page->CanEditType = 'OnlyTheseUsers'; $page->EditorGroups()->add($this->idFromFixture('Group', 'editors')); $page->write(); // Clear permission cache SiteTree::on_db_reset(); // Confirm that Member.editor can now edit the page $this->objFromFixture('Member', 'editor')->logIn(); $this->assertTrue($page->canEdit()); // Publish the changes to the page $this->objFromFixture('Member', 'admin')->logIn(); $page->doPublish(); // Confirm that Member.editor can still edit the page $this->objFromFixture('Member', 'editor')->logIn(); $this->assertTrue($page->canEdit()); }
/** * {@inheritdoc} */ public function canEdit($member = null) { $member = $this->getMember($member); if (parent::canEdit($member)) { return true; } $parent = $this->Parent(); if (!$parent || !$parent->exists() || !$parent instanceof Blog) { return false; } if ($parent->isEditor($member)) { return true; } if (!$parent->isWriter($member) && !$parent->isContributor($member)) { return false; } return $this->isAuthor($member); }
/** * {@inheritdoc} */ public function canEdit($member = null) { $member = $this->getMember($member); if ($this->isEditor($member)) { return true; } return parent::canEdit($member); }
/** * Standard SS method **/ function canEdit($member = null) { if (!$member) { $member = Member::currentUser(); } if ($member) { if (Permission::check('ADMIN') || $this->Members('Member.ID = ' . $member->ID)) { return true; } else { return parent::canEdit($member); } } else { return false; } }
/** * Returns whether or not the current user can edit this page * * If the */ public function canEdit($member = null) { $can = parent::canEdit($member); if (!$can) { // see if they can via the wiki permission explicitly $can = Permission::check(EDIT_WIKI); } return $can; }
/** * Shop Admins can edit * @return Boolean */ function canEdit($member = null) { if (!$member) { $member == Member::currentUser(); } $shopAdminCode = EcommerceConfig::get("EcommerceRole", "admin_permission_code"); if ($member && Permission::checkMember($member, $shopAdminCode)) { return true; } return parent::canEdit($member); }