PHPackages                             inuar/attribute-group-readonly-bundle - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. inuar/attribute-group-readonly-bundle

ActiveSymfony-bundle[Utility &amp; Helpers](/categories/utility)

inuar/attribute-group-readonly-bundle
=====================================

Akeneo PIM bundle to flag attribute groups as read-only on the product edit form.

2.0.0(1mo ago)00↓91.7%proprietaryPHPPHP &gt;=8.1

Since Mar 27Pushed 1mo agoCompare

[ Source](https://github.com/inuartech/AttributeGroupReadonlyBundle)[ Packagist](https://packagist.org/packages/inuar/attribute-group-readonly-bundle)[ RSS](/packages/inuar-attribute-group-readonly-bundle/feed)WikiDiscussions master Synced 3w ago

READMEChangelog (1)Dependencies (4)Versions (9)Used By (0)

InuarAttributeGroupReadOnlyBundle
=================================

[](#inuarattributegroupreadonlybundle)

A Symfony bundle for **Akeneo PIM Community Edition** that allows you to mark attribute groups as read-only, preventing users from editing any attribute values belonging to those groups on the product edit form.

[![attribute group read-only](https://private-user-images.githubusercontent.com/33385/587113021-c2c76717-36d0-48c8-bb0d-7f49b1c9a299.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3ODU0ODUsIm5iZiI6MTc4MTc4NTE4NSwicGF0aCI6Ii8zMzM4NS81ODcxMTMwMjEtYzJjNzY3MTctMzZkMC00OGM4LWJiMGQtN2Y0OWIxYzlhMjk5LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjE4VDEyMTk0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllMjcxYTg4OTBkYTI0MjU1ZTkwNTgxYzcyMWVhZWQ3NzY0ZTY5Njk1ZTY5ODkwN2VkZTQ2Y2Q2Yzk5ZWI2YjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRmdpZiJ9.NAV97w5SQ1dVXadhSWUb4n44QuNsVHEF8fqU-gKcsPo)](https://private-user-images.githubusercontent.com/33385/587113021-c2c76717-36d0-48c8-bb0d-7f49b1c9a299.gif?jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3ODE3ODU0ODUsIm5iZiI6MTc4MTc4NTE4NSwicGF0aCI6Ii8zMzM4NS81ODcxMTMwMjEtYzJjNzY3MTctMzZkMC00OGM4LWJiMGQtN2Y0OWIxYzlhMjk5LmdpZj9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNjA2MTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjYwNjE4VDEyMTk0NVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTllMjcxYTg4OTBkYTI0MjU1ZTkwNTgxYzcyMWVhZWQ3NzY0ZTY5Njk1ZTY5ODkwN2VkZTQ2Y2Q2Yzk5ZWI2YjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JnJlc3BvbnNlLWNvbnRlbnQtdHlwZT1pbWFnZSUyRmdpZiJ9.NAV97w5SQ1dVXadhSWUb4n44QuNsVHEF8fqU-gKcsPo)

---

Features
--------

[](#features)

- Toggle any attribute group as **read-only** directly from the attribute group edit page (same UI pattern as Data Quality Insights activation).
- Read-only enforcement is **visual** (fields are disabled in the product edit form) and **backend** (values stripped before save, protecting against API and CLI writes).
- The read-only state is stored in a dedicated database table and survives cache clears.
- Automatically cleans up the read-only flag when an attribute group is deleted.

---

Requirements
------------

[](#requirements)

DependencyVersionPHP^8.1Symfony^5.4 / ^6.xAkeneo PIM CE^7.0Doctrine DBAL^3.x---

Installation
------------

[](#installation)

---

1. Install the bundle
2. Register the bundle

Add the bundle to config/bundles.php:

```
return [
    // ... other bundles
    Inuar\Bundle\AttributeGroupReadOnlyBundle\InuarAttributeGroupReadOnlyBundle::class => ['all' => true],
];
```

---

3. Register the routes

Add the following to config/routes/routes.yml:

```
inuar_attribute_group_readonly:
    resource: "@InuarAttributeGroupReadOnlyBundle/Resources/config/routing.yml"
```

---

4. Run the database migration

```
bin/console doctrine:migrations:migrate
```

This creates the inuar\_readonly\_attribute\_group table used to store which attribute groups are flagged as read-only.

---

5. Install assets and rebuild the frontend

```
bin/console assets:install --symlink
bin/console pim:installer:dump-require-paths
yarn run webpack
bin/console cache:clear
```

---

Usage

1. Go to Settings → Attribute Groups in the Akeneo UI.
2. Open any attribute group.
3. In the Properties tab, find the Read-Only section.
4. Toggle the switch to enable or disable read-only mode for that group.
5. All attributes belonging to that group will be immediately locked on the product edit form — visually disabled with a notice, and protected at the backend level.

---

How it works

Backend enforcement

The bundle decorates Akeneo's pim\_catalog.updater.product service. On every product save (UI, API, or import), it queries the read-only attribute groups, resolves all attribute codes belonging to those groups, and strips those values from the update payload before delegating to the original updater.

Frontend enforcement

A form extension listens to the pim\_enrich:form:field:extension:add event on the product edit form. For each field whose attribute belongs to a read-only group, it calls field.setEditable(false) and appends a footer note: "This attribute is read-only and cannot be edited."

Database

A single table inuar\_readonly\_attribute\_group stores the codes of read-only attribute groups:

```
CREATE TABLE inuar_readonly_attribute_group (
    attribute_group_code VARCHAR(100) NOT NULL,
    PRIMARY KEY (attribute_group_code)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
```

###  Health Score

38

—

LowBetter than 83% of packages

Maintenance89

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity48

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 90% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~6 days

Total

7

Last Release

53d ago

Major Versions

1.0.5 → 2.0.02026-05-04

### Community

Maintainers

![](https://www.gravatar.com/avatar/8104c8ab80e70e6e383abf961bed5e9502062e8ed2587dcaa7bd8152ab93378b?d=identicon)[inuar](/maintainers/inuar)

---

Top Contributors

[![nei](https://avatars.githubusercontent.com/u/33385?v=4)](https://github.com/nei "nei (9 commits)")[![nei-inuartech](https://avatars.githubusercontent.com/u/145705249?v=4)](https://github.com/nei-inuartech "nei-inuartech (1 commits)")

---

Tags

akeneo

### Embed Badge

![Health badge](/badges/inuar-attribute-group-readonly-bundle/health.svg)

```
[![Health](https://phpackages.com/badges/inuar-attribute-group-readonly-bundle/health.svg)](https://phpackages.com/packages/inuar-attribute-group-readonly-bundle)
```

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M376](/packages/easycorp-easyadmin-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1615.6k12](/packages/2lenet-crudit-bundle)[metamodels/core

MetaModels core

9956.1k68](/packages/metamodels-core)[netgen/layouts-core

Netgen Layouts enables you to build and manage complex web pages in a simpler way and with less coding. This is the core of Netgen Layouts, its heart and soul.

3691.3k16](/packages/netgen-layouts-core)[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1155.2k](/packages/rcsofttech-audit-trail-bundle)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
