diff --git a/wire/core/Permissions.php b/wire/core/Permissions.php index e5602325..faa693be 100644 --- a/wire/core/Permissions.php +++ b/wire/core/Permissions.php @@ -180,6 +180,10 @@ class Permissions extends PagesType { if($role->name === 'superuser') continue; $a["user-admin-$role->name"] = sprintf($this->_('Administer users in role: %s'), $role->name); } + + if($this->wire()->modules->isInstalled('PagePathHistory')) { + $a['page-edit-redirects'] = $this->_('User can add/edit/delete redirect URLs in the page editor'); + } $languages = $this->wire()->languages; if($languages) { diff --git a/wire/modules/Process/ProcessPageEdit/ProcessPageEdit.module b/wire/modules/Process/ProcessPageEdit/ProcessPageEdit.module index 39d32ca1..2b9911a6 100644 --- a/wire/modules/Process/ProcessPageEdit/ProcessPageEdit.module +++ b/wire/modules/Process/ProcessPageEdit/ProcessPageEdit.module @@ -1267,8 +1267,9 @@ class ProcessPageEdit extends Process implements WirePageEditor, ConfigurableMod * */ protected function ___buildFormSettings() { - - $superuser = $this->wire('user')->isSuperuser(); + + $user = $this->wire()->user; + $superuser = $user->isSuperuser(); /** @var InputfieldWrapper $wrapper */ $wrapper = $this->wire(new InputfieldWrapper()); @@ -1308,7 +1309,7 @@ class ProcessPageEdit extends Process implements WirePageEditor, ConfigurableMod } // page path history (previous URLs) - if($superuser) { + if($superuser || $user->hasPermission('page-edit-redirects', $this->page)) { $f = $this->buildFormPrevPaths(); if($f) $wrapper->add($f); }