getSupportedRights(); $updated = 0; /** @var \core_kernel_classes_Class $class */ foreach (PermissionProvider::getSupportedRootClasses() as $class) { $updated += $this->addPermissionsToClass($class, $rights); } return new \common_report_Report(\common_report_Report::TYPE_SUCCESS, __('%s classes and instances have been updated', $updated)); } private function addPermissionsToClass($class, $rights) { $updated = 0; /** @var DataBaseAccess $databaseAccess */ $databaseAccess = $this->getServiceLocator()->get(DataBaseAccess::SERVICE_ID); if (empty($databaseAccess->getResourcePermissions($class->getUri()))) { $databaseAccess->addPermissions(TaoRoles::BACK_OFFICE, $class->getUri(), $rights); $updated++; } foreach ($class->getInstances(false) as $instance) { if (empty($databaseAccess->getResourcePermissions($instance->getUri()))) { $databaseAccess->addPermissions(TaoRoles::BACK_OFFICE, $instance->getUri(), $rights); $updated++; } } foreach ($class->getSubClasses(false) as $subclass) { $updated += $this->addPermissionsToClass($subclass, $rights); } return $updated; } }