protected function _parsePermissionName($permissionName)
{
$parts = explode('::', $permissionName);
switch (count($parts)) {
case 1:
$module = $this->dispatcher->getModuleName();
$controller = $this->dispatcher->getControllerName();
$action = $parts[0];
break;
case 2:
$module = $this->dispatcher->getModuleName();
$controller = $parts[0];
/** @noinspection MultiAssignmentUsageInspection */
$action = $parts[1];
break;
case 3:
$module = $parts[0];
/** @noinspection MultiAssignmentUsageInspection */
$controller = $parts[1];
/** @noinspection MultiAssignmentUsageInspection */
$action = $parts[2];
break;
default:
throw new RbacException('`:permission` has too many parts', ['permission' => $permissionName]);
}
return [$module, $controller, $action];
}