mirror of
https://github.com/processwire/processwire.git
synced 2025-08-10 08:44:46 +02:00
Update Role and User classes to use new $permissions->getDelegatedMethod() where appropriate
This commit is contained in:
@@ -108,6 +108,13 @@ class Role extends Page {
|
|||||||
if(!ctype_alnum(str_replace('-', '', $name))) {
|
if(!ctype_alnum(str_replace('-', '', $name))) {
|
||||||
$name = $this->wire()->sanitizer->pageName($name);
|
$name = $this->wire()->sanitizer->pageName($name);
|
||||||
}
|
}
|
||||||
|
if($context) {
|
||||||
|
$method = $permissions->getDelegatedMethod($name, $context);
|
||||||
|
if($method) {
|
||||||
|
// non-installed permission delegates to a method call such as $page->editable()
|
||||||
|
return $context->$method();
|
||||||
|
}
|
||||||
|
}
|
||||||
$delegated = $permissions->getDelegatedPermissions();
|
$delegated = $permissions->getDelegatedPermissions();
|
||||||
if(isset($delegated[$name])) $name = $delegated[$name];
|
if(isset($delegated[$name])) $name = $delegated[$name];
|
||||||
}
|
}
|
||||||
@@ -243,4 +250,3 @@ class Role extends Page {
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -261,6 +261,10 @@ class User extends Page {
|
|||||||
// code later on will make sure they exist in the template's addRoles/createRoles
|
// code later on will make sure they exist in the template's addRoles/createRoles
|
||||||
$p = 'page-edit';
|
$p = 'page-edit';
|
||||||
} else if(!$permissions->has($name)) {
|
} else if(!$permissions->has($name)) {
|
||||||
|
if($page) {
|
||||||
|
$method = $permissions->getDelegatedMethod($name, $page);
|
||||||
|
if($method) return $page->$method(); // i.e. $page->editable()
|
||||||
|
}
|
||||||
$delegated = $permissions->getDelegatedPermissions();
|
$delegated = $permissions->getDelegatedPermissions();
|
||||||
$p = isset($delegated[$name]) ? $delegated[$name] : $name;
|
$p = isset($delegated[$name]) ? $delegated[$name] : $name;
|
||||||
} else {
|
} else {
|
||||||
|
Reference in New Issue
Block a user