PHPackages                             kerli81/securedpages - 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. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. kerli81/securedpages

AbandonedArchivedKirby-plugin[Authentication &amp; Authorization](/categories/authentication)

kerli81/securedpages
====================

Protect pages from unauthorized users

1.2.0(5y ago)312131[9 issues](https://github.com/kerli81/kirby-securedpages/issues)[1 PRs](https://github.com/kerli81/kirby-securedpages/pulls)MITPHP

Since May 16Pushed 5y ago1 watchersCompare

[ Source](https://github.com/kerli81/kirby-securedpages)[ Packagist](https://packagist.org/packages/kerli81/securedpages)[ RSS](/packages/kerli81-securedpages/feed)WikiDiscussions master Synced 3mo ago

READMEChangelogDependencies (2)Versions (9)Used By (0)

Kirby Secured Pages
===================

[](#kirby-secured-pages)

[![Version](https://camo.githubusercontent.com/889af09d88d86e3261cced5e7b19255b72241a9289e3f0c78623f0058e449da9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e322e302d626c75652e737667)](https://camo.githubusercontent.com/889af09d88d86e3261cced5e7b19255b72241a9289e3f0c78623f0058e449da9/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f56657273696f6e2d312e322e302d626c75652e737667) [![License](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667)](https://camo.githubusercontent.com/784362b26e4b3546254f1893e778ba64616e362bd6ac791991d2c9e880a3a64e/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e2e737667) [![Kirby](https://camo.githubusercontent.com/e7fabf0d91c65a4687177daea996e5a8437ec6b996c316ddfe8b455781454c47/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b697262792d332e782d6630633637342e737667)](https://camo.githubusercontent.com/e7fabf0d91c65a4687177daea996e5a8437ec6b996c316ddfe8b455781454c47/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4b697262792d332e782d6630633637342e737667)

With this plugin for [Kirby CMS](http://getkirby.com) you can prevent unauthorized users to access a page or a hierarchy of pages. The permission will be granted by a user group. If the user is not yet logged in, a login page will be displayed.

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

[](#requirements)

- Kirby CMS, Version **3.x**

---

Installation
============

[](#installation)

Download
--------

[](#download)

Download and extract this repository, rename the folder to `securedpages` and drop it into the plugins folder of your Kirby 3 installation. You should end up with a folder structure like this:

```
site/plugins/securedpages/
```

Composer
--------

[](#composer)

If you are using Composer, you can install the plugin with

```
composer require kerli81/securedpages
```

Git submodule
-------------

[](#git-submodule)

```
git submodule add https://github.com/kerli81/kerby-securedpages.git site/plugins/securedpages
```

---

Usage
=====

[](#usage)

Blueprint
---------

[](#blueprint)

To enable the configuration for the page security your blueprint needs to include the security field. Here an example ho such a page blueprint could look like.

```
title: Protected Page

columns:
  # main
  - width: 2/3
    sections:
      content:
        type: fields
        fields:
          text:
            text:
            type: textarea
            size: large

  # sidebar
  - width: 1/3
    sections:
        securityconfig:
            type: fields
            fields:
                security: fields/kerli81.securedpages.pageconfiguration
        pages:
            type: pages
        files:
            type: files
```

[![Template](/.github/template.png?raw=true "Template")](/.github/template.png?raw=true)

User Group
----------

[](#user-group)

The plugin will check if a user is part of a certain user group. To create such a group, create a \*.yml file in folder `blueprints/users/`. You will find below an example of a group definition.

```
title: Webpage Access
description: Usergroup for frontend access

permissions:
  access:
    panel: false
```

To use the group create a new user on the panel.

Secure a page incl. sub pages
-----------------------------

[](#secure-a-page-incl-sub-pages)

Go to the page which you will protected and enable the protection. After you enabled it a user group selction field will be displayed. Select the just defined group.

[![Protection Configuration](/.github/security_area.png?raw=true "Protection Configuration")](/.github/security_area.png?raw=true)

Options
-------

[](#options)

### Default Behavior

[](#default-behavior)

If you navigate to a page which is protected and you are not logged in or your user is not part of the correct user group, your request is forwarded to `/no-permission`. On this page a login form will be displayed. After correct login you will be forward to your requested page.

### Adjust texts of default behavior

[](#adjust-texts-of-default-behavior)

to adjust the texts just override the provided options:

OptionDefaultDescriptionkerli81.securedpages.loginform.username.nameUsernameName of the field 'username'kerli81.securedpages.loginform.username.errorPlease enter your usernameError message for the field 'username'kerli81.securedpages.loginform.password.namePasswordName of the field 'password'kerli81.securedpages.loginform.password.errorPlease enter your passwordError message for the field 'password'[![Login Form](/.github/loginform.png?raw=true "Login Form")](/.github/loginform.png?raw=true)

### display another error page

[](#display-another-error-page)

If you would like to show your custom error page, just update following options:

OptionValueDescriptionkerli81.securedpages.logintypecustomWill trigger the page to display. Possible values are: \[loginform, custom\]kerli81.securedpages.custom.page---The url (url-slug) to navigate to.Filter the pages (i.e. in search)
---------------------------------

[](#filter-the-pages-ie-in-search)

If you do some search and would like to filter the collection of pages, you could filter them like this:

```
$results = $site->index()->listed()->filterBy('kerli81-securedpages', 'OnlyUserVisiblePages');
```

This example will return only the pages, which are accessable by the current user.

###  Health Score

31

—

LowBetter than 66% of packages

Maintenance14

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community10

Small or concentrated contributor base

Maturity65

Established project with proven stability

 Bus Factor1

Top contributor holds 95.2% 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 ~99 days

Recently: every ~147 days

Total

7

Last Release

2010d ago

Major Versions

0.5.1 → 1.0.02019-05-23

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/5836810?v=4)[Pascal Rusch](/maintainers/kerli81)[@kerli81](https://github.com/kerli81)

---

Top Contributors

[![kerli81](https://avatars.githubusercontent.com/u/5836810?v=4)](https://github.com/kerli81 "kerli81 (40 commits)")[![marcus-at-localhost](https://avatars.githubusercontent.com/u/1337223?v=4)](https://github.com/marcus-at-localhost "marcus-at-localhost (2 commits)")

---

Tags

kirby-cmskirby-pluginkirby3

### Embed Badge

![Health badge](/badges/kerli81-securedpages/health.svg)

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

###  Alternatives

[getkirby/cms

The Kirby core

1.5k584.8k474](/packages/getkirby-cms)[medienbaecker/kirby-modules

Easily add modules to your pages

895.5k1](/packages/medienbaecker-kirby-modules)[thathoff/kirby-oauth

Kirby OAuth 2 Plugin

3926.4k](/packages/thathoff-kirby-oauth)[sylvainjule/bouncer

Restrict access of a user role to a specific page (and its children) in the panel.

673.7k](/packages/sylvainjule-bouncer)[johannschopplich/kirby-content-translator

DeepL &amp; AI-powered content translation for Kirby CMS

2010.8k](/packages/johannschopplich-kirby-content-translator)[medienbaecker/kirby-alter

242.1k](/packages/medienbaecker-kirby-alter)

PHPackages © 2026

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