Title: Kistenstein Club Document Portal
Author: kistenstein
Published: <strong>June 18, 2026</strong>
Last modified: June 18, 2026

---

Search plugins

![](https://ps.w.org/kistenstein-club-document-portal/assets/banner-772x250.png?
rev=3577600)

![](https://ps.w.org/kistenstein-club-document-portal/assets/icon-256x256.png?rev
=3577600)

# Kistenstein Club Document Portal

 By [kistenstein](https://profiles.wordpress.org/kistenstein/)

[Download](https://downloads.wordpress.org/plugin/kistenstein-club-document-portal.1.5.0.zip)

 * [Details](https://wordpress.org/plugins/kistenstein-club-document-portal/#description)
 * [Reviews](https://wordpress.org/plugins/kistenstein-club-document-portal/#reviews)
 *  [Installation](https://wordpress.org/plugins/kistenstein-club-document-portal/#installation)
 * [Development](https://wordpress.org/plugins/kistenstein-club-document-portal/#developers)

 [Support](https://wordpress.org/support/plugin/kistenstein-club-document-portal/)

## Description

**Kistenstein Club Document Portal** turns any WordPress page into a private document
library and member area — a Nextcloud-style file manager perfect for associations,
clubs, sports teams and small organisations that need to share documents with their
members.

Members open a familiar file explorer with folders, drag-and-drop upload, PDF preview
and search. Every area is protected — either by WordPress role/group or by a single
shared password — and files are delivered securely through WordPress so they can
never be downloaded by guessing a URL.

#### Key Features

 * **Nextcloud-style file explorer** — folder navigation with breadcrumb trail
 * **Upload** — button and drag-and-drop from desktop
 * **PDF preview** — inline browser preview via modal iframe, no download required
 * **Drag-and-drop move** — drag files or folders onto other folders or breadcrumb
   items to move them
 * **Folder management** — create, rename and delete folders
 * **File management** — rename and delete (soft-delete) files
 * **Soft-delete trash** — deleted items are kept for a configurable retention period(
   default 180 days)
 * **Admin trash view** — restore or permanently delete items; configurable retention
   directly in the trash panel
 * **Two protection modes per area** — choose for every area whether it is restricted
   to a WordPress role/group, or unlocked with a single shared password
 * **Upload permissions by role** — define which WordPress role may upload, rename
   and delete files
 * **Secure file delivery** — all files are streamed through WordPress, and the 
   upload folder is blocked from direct HTTP access, so protected files cannot be
   downloaded by guessing their URL
 * **Page password manager** — editors can view and update the shared password of
   a password-protected page directly inside the portal (optional)
 * **Fully translatable** — every string uses the `kistenstein-club-document-portal`
   text domain; the interface follows each user’s WordPress language

#### How access protection works

When you set up an area in the wizard you pick one of two modes:

 * **Only a specific role / group** — only logged-in users who hold the chosen WordPress
   role can open the area. Each member needs their own WordPress account. Best when
   you want individual accounts (e.g. a board with named members).
 * **Shared password** — the area’s page is protected with WordPress’ built-in page
   password. Everyone uses the same password — no individual accounts needed. Best
   for a members’ area where you simply hand out one password.

In both cases files are delivered through WordPress and the storage folder is protected
from direct access, so the chosen rule is always enforced — not just hidden in the
listing.

#### Block editor

Prefer the block editor? Add the **Document Portal** block to any page and pick 
the folder in the sidebar — no shortcode required. The classic shortcodes below 
work exactly the same.

#### Shortcodes

    ```
    [kcdp_explorer folder="documents"]
    ```

Renders a file explorer for the named sub-folder. The area’s protection mode is 
configured in the setup wizard.

    ```
    [kcdp_explorer folder="members" manage_password="1"]
    ```

Adds a shared-password manager panel for editors (requires the **Password-Protected
Page** ID to be set under **File Portal  Advanced**).

    ```
    [kcdp_trash]
    ```

Trash view with restore and permanent-delete actions. Visible to administrators 
only.

    ```
    [kcdp_audit]
    ```

Audit log of all file actions (upload, download, delete, restore …). Visible to 
administrators only.

#### Configuration

 1. After activation you are taken to **File Portal  Set Up**.
 2. Tick the areas your association needs, name each page, and choose how each area
    is protected (role/group or shared password).
 3. Pick which role may upload and manage files.
 4. Save — the pages are created automatically. Add `[kcdp_trash]` to a restricted 
    admin page to manage deleted files.

#### Server requirements for protected areas

Protected files are blocked from direct download with an `.htaccess` file written
into the upload folder. This is honoured by **Apache** and **LiteSpeed**. If you
run **nginx**, add an equivalent rule that denies direct access to the portal’s 
upload folder (e.g. `location ^~ /wp-content/uploads/file-portal/ { deny all; }`),
so that protected files are only reachable through the plugin.

#### Privacy

When a file is deleted, the following metadata is stored in a trash index file on
the server: the original file path, the WordPress user ID and display name of the
user who deleted it, and the timestamps for deletion and scheduled expiry. The audit
log additionally records, per action, the acting user, a timestamp and the request
IP address. This data is stored only on your server and is never transmitted off-
site.

## Screenshots

[⌊The member file explorer — folders, drag-and-drop upload, search and per-file 
actions⌉⌊The member file explorer — folders, drag-and-drop upload, search and per-
file actions⌉[

The member file explorer — folders, drag-and-drop upload, search and per-file actions

[⌊The setup wizard — choose your areas and how each one is protected (role/group
or shared password)⌉⌊The setup wizard — choose your areas and how each one is protected(
role/group or shared password)⌉[

The setup wizard — choose your areas and how each one is protected (role/group or
shared password)

[⌊The trash view — restore deleted items or remove them permanently, with configurable
retention⌉⌊The trash view — restore deleted items or remove them permanently, with
configurable retention⌉[

The trash view — restore deleted items or remove them permanently, with configurable
retention

## Blocks

This plugin provides 1 block.

 *   Document Portal Embed the document portal file explorer for one of your areas.

## Installation

 1. In your dashboard go to **Plugins  Add New**, search for “Kistenstein Club Document
    Portal”, and click **Install Now** (or upload the ZIP under **Plugins  Add New  
    Upload Plugin**).
 2. Activate the plugin — you are taken straight to the **File Portal  Set Up** wizard.
 3. Choose your areas and how each is protected, then save. The pages are created for
    you.
 4. Or add the **Document Portal** block / `[kcdp_explorer folder="documents"]` shortcode
    to any page yourself.

## FAQ

### Where are the files stored?

All files are stored in your WordPress uploads directory, inside the sub-folder 
you configure (default: `wp-content/uploads/file-portal/`). The trash folder (`.
trash/`) is protected with an `.htaccess` file to prevent direct HTTP access.

### What happens to deleted files?

Deleted files are moved to a hidden trash folder rather than immediately destroyed.
An administrator can restore them or delete them permanently from the `[kcdp_trash]`
view. Items older than the configured retention period (default 180 days) are automatically
purged on the next trash-list request.

### Can I have multiple explorers on the same page?

Yes. Each `[kcdp_explorer folder="..."]` instance is independent. Use a different`
folder` value for each one.

### Which file types are allowed for upload?

By default: PDF, DOC, DOCX, XLS, XLSX, PPT, PPTX, TXT, JPG, JPEG, PNG, ZIP. You 
can customise the list in **Settings  File Portal**.

### How is this different from a normal media library?

The WordPress media library is built for editors working inside wp-admin. This plugin
gives your _members_ a front-end file explorer on a normal page — with their own
folders, drag-and-drop upload, search and access control — without giving them access
to the dashboard.

### Can members access files without a WordPress account?

Yes. Use the **shared password** mode: the area is protected by a single page password
that you hand out to your members — no individual accounts required. For named, 
per-person access use the **role/group** mode instead.

### Is it safe? Can people download protected files directly?

No. Every file is streamed through WordPress after the access check, and the upload
folder is blocked from direct HTTP access via `.htaccess`. Protected files cannot
be reached by guessing their URL. (On nginx, add the deny rule shown above.)

### Can I use it with the block editor?

Yes. Add the **Document Portal** block to any page and choose the folder in the 
block sidebar. The `[kcdp_explorer]` shortcode remains fully supported.

### What is the maximum upload size?

Uploads use WordPress’ standard handling, so the limit is whatever your server’s`
upload_max_filesize` / `post_max_size` allow. Ask your host to raise these if you
need larger files.

### Can I translate the plugin?

Yes. The text domain is `kistenstein-club-document-portal` and the interface follows
each user’s WordPress language. German (de_DE and de_CH) is bundled; create additional`.
po`/`.mo` files in the `languages/` folder, or use Loco Translate.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“Kistenstein Club Document Portal” is open source software. The following people
have contributed to this plugin.

Contributors

 *   [ kistenstein ](https://profiles.wordpress.org/kistenstein/)

[Translate “Kistenstein Club Document Portal” into your language.](https://translate.wordpress.org/projects/wp-plugins/kistenstein-club-document-portal)

### Interested in development?

[Browse the code](https://plugins.trac.wordpress.org/browser/kistenstein-club-document-portal/),
check out the [SVN repository](https://plugins.svn.wordpress.org/kistenstein-club-document-portal/),
or subscribe to the [development log](https://plugins.trac.wordpress.org/log/kistenstein-club-document-portal/)
by [RSS](https://plugins.trac.wordpress.org/log/kistenstein-club-document-portal/?limit=100&mode=stop_on_copy&format=rss).

## Changelog

#### 1.5.0

 * New: **Document Portal block** for the block editor — insert the explorer without
   a shortcode and pick the folder in the sidebar
 * New: `uninstall.php` — optionally remove all plugin data (options and audit table)
   when you delete the plugin; off by default so nothing is lost by accident
 * Docs: rewritten readme — corrected the access-mode description (role/group or
   shared password), fixed the menu paths, expanded the FAQ
 * Housekeeping: minor polish and refreshed plugin assets

#### 1.4.0

 * New: choose a protection mode per area in the setup wizard — public, restricted
   to a WordPress role/group, or unlocked with a shared password
 * New: the setup wizard now lets you set the shared password for an area directly,
   and explains each protection mode
 * Security: the upload folder is now blocked from direct HTTP access; all files
   are streamed through WordPress so protected files can no longer be downloaded
   by guessing their URL (automatic migration on update)
 * Security: role-protected areas now check the role for viewing, not only for editing
 * Security: fixed possible stored XSS in the trash view (deleted-by name, file 
   name, path are now escaped)
 * i18n: the whole interface, including file-metadata labels, is now translatable
   and follows each user’s WordPress language
 * Improved error messages throughout the front-end (no more generic “?”)
 * Add `[kcdp_audit]` audit-log shortcode documentation

#### 1.3.2

 * Add file metadata panel (Details): EXIF for images, Author/Title for PDFs and
   Word documents (OLE2 + OOXML)
 * Add image preview thumbnail in the details panel
 * Fix: JS deployment path corrected, resolves 404 on sfp-frontend.js

#### 1.3.1

 * Add bulk ZIP download for selected files
 * Add download count badge per file
 * Add audit log with action filter and pagination
 * Add drag-and-drop move between folders
 * Add configurable trash retention directly in the trash panel

#### 1.3.0

 * Add soft-delete trash with restore and permanent-delete
 * Add inline PDF preview modal
 * Add private-folder support (login required)
 * Add page-password manager for editors

#### 1.0.0

 * Initial release
 * File explorer with folder navigation, upload (button + drag-and-drop), PDF preview
 * Folder create / rename / delete
 * File rename / delete
 * Settings page (Settings  File Portal)
 * Role-based access control (configurable editor role)
 * Fully translatable (text domain: kistenstein-club-document-portal)

## Meta

 *  Version **1.5.0**
 *  Last updated **7 hours ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.0**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [document library](https://wordpress.org/plugins/tags/document-library/)[document management](https://wordpress.org/plugins/tags/document-management/)
   [file manager](https://wordpress.org/plugins/tags/file-manager/)[member area](https://wordpress.org/plugins/tags/member-area/)
   [private files](https://wordpress.org/plugins/tags/private-files/)
 *  [Advanced View](https://wordpress.org/plugins/kistenstein-club-document-portal/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/kistenstein-club-document-portal/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/kistenstein-club-document-portal/reviews/)

## Contributors

 *   [ kistenstein ](https://profiles.wordpress.org/kistenstein/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/kistenstein-club-document-portal/)