PHPackages                             novactive/ezprotectedcontentbundle - 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. [Security](/categories/security)
4. /
5. novactive/ezprotectedcontentbundle

ActiveIbexa-bundle[Security](/categories/security)

novactive/ezprotectedcontentbundle
==================================

Novactive eZ Protected Content Bundle is an Ibexa bundle that provides quick protection on Contents

v2.2.0(9mo ago)28.2k3[2 PRs](https://github.com/Novactive/NovaeZProtectedContentBundle/pulls)MITPHPPHP ^8.1

Since May 22Pushed 2w ago15 watchersCompare

[ Source](https://github.com/Novactive/NovaeZProtectedContentBundle)[ Packagist](https://packagist.org/packages/novactive/ezprotectedcontentbundle)[ Docs](https://github.com/Novactive/NovaeZProtectedContentBundle)[ RSS](/packages/novactive-ezprotectedcontentbundle/feed)WikiDiscussions master Synced today

READMEChangelog (10)Dependencies (1)Versions (24)Used By (0)

Novactive eZ Protected Content Bundle
=====================================

[](#novactive-ez-protected-content-bundle)

---

This repository is what we call a "subtree split": a read-only copy of one directory of the main repository. It is used by Composer to allow developers to depend on specific bundles.

If you want to report or contribute, you should instead open your issue on the main repository:

Documentation is available in this repository via `.md` files but also packaged here:

---

[![Downloads](https://camo.githubusercontent.com/ef4ab54b8d919ac407728b29808f381ff6309361218986bb6dc8565258dc3fef/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f6e6f766163746976652f657a70726f746563746564636f6e74656e7462756e646c652e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/novactive/ezprotectedcontentbundle)[![Latest version](https://camo.githubusercontent.com/0e1bbb57132ef1eda1c599cd71dcaaec69e8a110fd39b2cc4c9934b24d3c6b88/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f4e6f766163746976652f4e6f7661655a50726f746563746564436f6e74656e7442756e646c652e7376673f7374796c653d666c61742d737175617265)](https://github.com/Novactive/NovaeZProtectedContentBundle/releases)[![License](https://camo.githubusercontent.com/0aea49e33ef37edaeffd4a2cd84a776f826d4d30a4107a754d3f201edc6aa030/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6e6f766163746976652f657a70726f746563746564636f6e74656e7462756e646c652e7376673f7374796c653d666c61742d737175617265)](LICENSE)

A bundle that provides quick password protection on Contents.

How it works
============

[](#how-it-works)

Allows you to add 1 on N password on a Content in the Admin UI. Once a protection is set, the Content becomes Protected. In this situation you can have 3 new variables in the view full

- canReadProtectedContent (always)
- requestProtectedContentPasswordForm (if content is protected by password)
- requestProtectedContentEmailForm (if content is protected with email verification)

Allowing you do:

```
{{ ibexa_content_name(content) }}
{% if not canReadProtectedContent %}
    {% if requestProtectedContentPasswordForm is defined %}
        This content has been protected by a password

            {{ form(requestProtectedContentPasswordForm) }}

    {% elseif requestProtectedContentEmailForm is defined %}
        This content has been protected by an email verification

                {{ form(requestProtectedContentEmailForm) }}

    {% endif %}
{% else %}
    {% for field in content.fieldsByLanguage(language|default(null)) %}
        {{ field.fieldDefIdentifier }}
        {{ ez_render_field(content, field.fieldDefIdentifier) }}
    {% endfor %}
{% endif %}
```

You can also manage this globally through the pagelayout wrapping the content block.

Once you have unlocked the content, **canReadProtectedContent** will be **true**

> HTTP Cache is disabled for Protected Content.

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

[](#installation)

### Installation steps

[](#installation-steps)

Add the lib to your composer.json, run `composer require novactive/ezprotectedcontentbundle` to refresh dependencies.

Then inject the bundle in the `bundles.php` of your application.

```
    Novactive\Bundle\eZProtectedContentBundle\NovaeZProtectedContentBundle::class => [ 'all'=> true ],
```

### Add routes

[](#add-routes)

```
_novaezprotectedcontent_routes:
    resource: '@NovaeZProtectedContentBundle/Resources/config/routing/main.yml'
```

### Copie migration files

[](#copie-migration-files)

```
cp vendor/novactive/ezprotectedcontentbundle/bundle/Resources/migrations/* src/Migrations/Ibexa/migrations/
php bin/console ibexa:migrations:migrate --allow-no-migration --disable-locking -v
```

### Install the database schema

[](#install-the-database-schema)

```
bin/console novaezprotectedcontent:install
```

### Varnish

[](#varnish)

This module add a cookie to unlock the contents that match it, for that reason you want to keep all the cookie that starts with PasswordProvided::COOKIE\_PREFIX (i.e: **protected-content-**).

```
 // Remove all cookies besides Session ID, as JS tracker cookies and so will make the responses effectively un-cached
    if (req.http.cookie) {
        set req.http.cookie = ";" + req.http.cookie;
        set req.http.cookie = regsuball(req.http.cookie, "; +", ";");
        set req.http.cookie = regsuball(req.http.cookie, ";[ ]*(eZSESSID[^=]*|protected-content-[^=]*)=", "; \1=");
        set req.http.cookie = regsuball(req.http.cookie, ";[^ ][^;]*", "");
        set req.http.cookie = regsuball(req.http.cookie, "^[; ]+|[; ]+$", "");
    }
```

###  Health Score

55

—

FairBetter than 97% of packages

Maintenance79

Regular maintenance activity

Popularity27

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity82

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 60.7% 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 ~203 days

Recently: every ~196 days

Total

12

Last Release

294d ago

Major Versions

0.9.0 → 1.0.02020-08-21

1.1.0 → v2.0.02023-05-12

PHP version history (4 changes)0.9.0PHP ^7.1

1.0.0PHP ^7.3

v2.0.0PHP ^7.3 || ^8.0

v2.2.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/7bf781acfc713c38985bfb2e7bee5fd2decefdeed1df550643af57aa8e315db7?d=identicon)[Almaviacx](/maintainers/Almaviacx)

---

Top Contributors

[![Plopix](https://avatars.githubusercontent.com/u/313532?v=4)](https://github.com/Plopix "Plopix (17 commits)")[![erdnaxelaweb](https://avatars.githubusercontent.com/u/2130120?v=4)](https://github.com/erdnaxelaweb "erdnaxelaweb (6 commits)")[![RemyNovactive](https://avatars.githubusercontent.com/u/61149932?v=4)](https://github.com/RemyNovactive "RemyNovactive (5 commits)")

---

Tags

private contentibexaprotected contentalmaviacx

### Embed Badge

![Health badge](/badges/novactive-ezprotectedcontentbundle/health.svg)

```
[![Health](https://phpackages.com/badges/novactive-ezprotectedcontentbundle/health.svg)](https://phpackages.com/packages/novactive-ezprotectedcontentbundle)
```

###  Alternatives

[laravel/horizon

Dashboard and code-driven configuration for Laravel queues.

4.2k95.4M305](/packages/laravel-horizon)[illuminate/queue

The Illuminate Queue package.

21332.6M1.6k](/packages/illuminate-queue)[pocketmine/pocketmine-mp

A server software for Minecraft: Bedrock Edition written in PHP

3.5k78.3k91](/packages/pocketmine-pocketmine-mp)[directorytree/ldaprecord-laravel

LDAP Authentication &amp; Management for Laravel.

5752.3M18](/packages/directorytree-ldaprecord-laravel)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

585.6M574](/packages/shopware-core)[bowphp/framework

The bow PHP Framework

6017.5k13](/packages/bowphp-framework)

PHPackages © 2026

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