PHPackages                             texxasrulez/rounddav\_files - 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. [File &amp; Storage](/categories/file-storage)
4. /
5. texxasrulez/rounddav\_files

ActiveRoundcube-plugin[File &amp; Storage](/categories/file-storage)

texxasrulez/rounddav\_files
===========================

Roundcube plugin to enable RoundDAV Attachments and provides a File page linked to your Files page.

0.0.1(4mo ago)06GPL-3.0PHPPHP &gt;=7.4

Since Dec 15Pushed 2mo agoCompare

[ Source](https://github.com/texxasrulez/rounddav_files)[ Packagist](https://packagist.org/packages/texxasrulez/rounddav_files)[ Docs](https://github.com/texxasrulez/rounddav_files)[ RSS](/packages/texxasrulez-rounddav-files/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (2)Used By (0)

rounddav\_files
===============

[](#rounddav_files)

[![Downloads](https://camo.githubusercontent.com/c41e1c0964086835beda1328f962d0786dbe192c05690e639b7ba97c2c3434fc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f74657878617372756c657a2f726f756e646461765f66696c65732f746f74616c3f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d6171756126636f6c6f723d626c7565)](https://camo.githubusercontent.com/c41e1c0964086835beda1328f962d0786dbe192c05690e639b7ba97c2c3434fc/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f646f776e6c6f6164732f74657878617372756c657a2f726f756e646461765f66696c65732f746f74616c3f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d6171756126636f6c6f723d626c7565)[![Packagist Downloads](https://camo.githubusercontent.com/6c3d778c993754ca9e9611ca86b677a93b78aed161295cc3222f2ccdcb39dbce/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d446f776e6c6f616473266c6162656c436f6c6f723d626c756526636f6c6f723d676f6c64)](https://packagist.org/packages/texxasrulez/rounddav_files)[![Packagist Version](https://camo.githubusercontent.com/ec444ad0fb0310c6574a8054ca5648de04c1da3191d129f48422adf98106e94c/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d7061636b6167697374266c6f676f436f6c6f723d7768697465266c6162656c3d56657273696f6e266c6162656c436f6c6f723d626c756526636f6c6f723d6c696d65677265656e)](https://packagist.org/packages/texxasrulez/rounddav_files)[![Github License](https://camo.githubusercontent.com/1840d426da42e98fbcdaf58951a9d06b135458015a64f5dc6fa6b401504e2fec/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d4c6963656e7365266c6162656c436f6c6f723d626c756526636f6c6f723d636f72616c)](https://github.com/texxasrulez/rounddav_files/LICENSE)[![GitHub Stars](https://camo.githubusercontent.com/cf650a9f4f5a4e5e49ceefc0828a9688c93fed0bc60cd362ed2cd00e56559cb7/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f73746172732f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d5374617273266c6162656c436f6c6f723d626c756526636f6c6f723d64656570736b79626c7565)](https://github.com/texxasrulez/rounddav_files/stargazers)[![GitHub Issues](https://camo.githubusercontent.com/61fcf0006c2d6b4ea3c69085a8b1101c20380c8eb3ecbf9104d8828fa9f47f06/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6973737565732f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d676974687562266c6162656c3d497373756573266c6162656c436f6c6f723d626c756526636f6c6f723d61717561)](https://github.com/texxasrulez/rounddav_files/issues)[![GitHub Contributors](https://camo.githubusercontent.com/234bd6d98947d0a0e25a193c8a757f57bdc2b65b5a37c0281f68065aed3e73e4/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f636f6e7472696275746f72732f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d436f6e7472696275746f7273266c6162656c436f6c6f723d626c756526636f6c6f723d6f7263686964)](https://github.com/texxasrulez/rounddav_files/graphs/contributors)[![GitHub Forks](https://camo.githubusercontent.com/eb2e9a92758daccd40fe4c8c32ad9734a630455d3dae9bbf2cdae8b6e1fc0d7e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f666f726b732f74657878617372756c657a2f726f756e646461765f66696c65733f7374796c653d706c6173746963266c6f676f3d676974687562266c6f676f436f6c6f723d7768697465266c6162656c3d466f726b73266c6162656c436f6c6f723d626c756526636f6c6f723d6461726b6f72616e6765)](https://github.com/texxasrulez/rounddav_files/forks)[![Donate Paypal](https://camo.githubusercontent.com/02124075ee7ea4c192ef867cb30577b0b43ba74ea42b8dbe20b56ef518d94cdb/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f50617970616c2d4d6f6e65795f506c65617365212d626c75652e7376673f7374796c653d706c6173746963266c6162656c436f6c6f723d626c756526636f6c6f723d666f72657374677265656e266c6f676f3d70617970616c)](https://www.paypal.me/texxasrulez)

WebDAV Files integration for Roundcube, powered by RoundDAV.

This plugin adds a **Files** tab to Roundcube and lets users attach files directly from their RoundDAV storage into email messages.

This plugin requires:

[RoundDAV Server](https://github.com/texxasrulez/rounddav) to function.

This plugin requires:

[RoundDAV Provision Roundcube Plugin](https://github.com/texxasrulez/rounddav_provision)

Recommended Additional Plugin:

[RoundDAV Bookmarks Roundcube Plugin](https://github.com/texxasrulez/rounddav_bookmarks)

Check out the [Suite README](README_suite.md) to see what is entailed.

---

Features
--------

[](#features)

- Adds a **Files** entry to Roundcube's main menu
- Embeds the RoundDAV Files UI inside an iframe
- Uses SSO from `rounddav_provision` (no extra login)
- Adds an **Attach from RoundDAV** button in the compose window
- Works with Elastic and Larry-based skins (including variants)
- Respects Roundcube's layout and styling conventions

---

**Screenshot**
--------------

[](#screenshot)

Users Files:

[![Alt text](/images/shared-files.png?raw=true "RoundDAV Files Screenshot")](/images/shared-files.png?raw=true)

Administration Main Dashboard:

[![Alt text](/images/admin-files.png?raw=true "RoundDAV Admin Dashboard Screenshot")](/images/admin-files.png?raw=true)

Administration Shares Dashboard:

[![Alt text](/images/admin-shares.png?raw=true "RoundDAV Admin Shared Dashboard Screenshot")](/images/admin-shares.png?raw=true)
--------------------------------------------------------------------------------------------------------------------------------

[](#)

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

[](#installation)

1. Copy plugin into Roundcube:

```
roundcube/plugins/rounddav_files/

```

2. Enable it in Roundcube config:

```
$config['plugins'][] = 'rounddav_files';
```

3. Configure URLs in `config.inc.php` or your main config:

```
// Where the iframe should point to for the Files UI.
// %u will be replaced with the URL-encoded Roundcube username.
$config['rounddav_files_url'] = 'https://your.server/rounddav/public/files/?user=%u';

// (Optional) Endpoint template for attachment fetch operations.
// Supports %u for username and optional %f for file query payload.
$config['rounddav_attach_files_url'] = 'https://your.server/rounddav/public/files/rc_attach.php?user=%u';
```

---

UI Integration
--------------

[](#ui-integration)

### Files Tab

[](#files-tab)

The plugin:

- Registers a new task: `rounddav_files`
- Adds a **Files** icon/entry in the Roundcube main menu
- Loads a template that embeds the RoundDAV `/public/files/` UI inside an iframe

Example Elastic template snippet:

```

```

### Compose Window

[](#compose-window)

The plugin injects a small **Attach from RoundDAV** button inside the attachments area of the compose screen. The header-level button is intentionally hidden to avoid clutter.

When clicked:

1. Opens the Files UI (either embedded or as a modal / separate window depending on your setup).
2. Lets the user pick files from their RoundDAV storage.
3. Posts the selected files back to Roundcube using a plugin action to turn them into real message attachments.

---

SSO Behavior
------------

[](#sso-behavior)

`rounddav_files` integrates with `rounddav_provision` through `$_SESSION`:

- After login, `rounddav_provision` stores a one-shot SSO URL in:

    ```
    $_SESSION['rounddav_sso_login_url']
    ```
- When rendering the Files iframe, `rounddav_files`:

    1. Checks `$_SESSION['rounddav_sso_login_url']`.
    2. If present:
        - Uses that value as the iframe `src`.
        - Unsets it to avoid reuse.
    3. If not present:
        - Falls back to `rounddav_files_url` (with `%u` replaced by the username).

This means:

- First visit after login → automatic SSO via `/sso_login.php`
- Later visits → direct Files URL (as long as the RoundDAV session is still valid)

---

Embed Troubleshooting and Header Guidance
-----------------------------------------

[](#embed-troubleshooting-and-header-guidance)

If the Files iframe does not load or is blocked by browser policy, check RoundDAV Admin:

```
/rounddav/public/admin/?action=config

```

In **Security diagnostics** and **Security Headers**:

- Keep `security.headers.enabled = true`
- Keep `security.headers.x_content_type_options = true`
- Keep `security.headers.referrer_policy = strict-origin-when-cross-origin`
- For cross-origin Roundcube embedding, keep `security.headers.x_frame_options = ''` (empty)
- If CSP is enabled, include your Roundcube origin in `frame-ancestors`

Use **Verify Current Headers** to compare expected vs live headers on Admin and Files endpoints.

For backup/restore and retention operations (`Create backup now`, `Restore`, `Download all as ZIP`, retention pruning), see the RoundDAV admin docs:

- [RoundDAV Admin README](../rounddav/README_rounddav_admin.md)

---

Logging
-------

[](#logging)

The plugin logs to the `roundcube` log channel when it decides which URL to use for the iframe, e.g.:

- `rounddav_files: using SSO URL for iframe src: ...`
- `rounddav_files: using fallback files URL template=... for user=...`

These messages are helpful when debugging SSO behavior.

---

Philosophy
----------

[](#philosophy)

Webmail without file storage feels incomplete.

`rounddav_files` is the missing piece that lets Roundcube act like a modern client: email, calendars, contacts, and files, all with one login.

###  Health Score

30

—

LowBetter than 64% of packages

Maintenance80

Actively maintained with recent releases

Popularity5

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity24

Early-stage or recently created project

 Bus Factor1

Top contributor holds 100% 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

Unknown

Total

1

Last Release

148d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/95c3af6e41a9786e8be2edb48176e43a7d1ddef429793a312168450ff4269deb?d=identicon)[texxasrulez](/maintainers/texxasrulez)

---

Top Contributors

[![texxasrulez](https://avatars.githubusercontent.com/u/10519182?v=4)](https://github.com/texxasrulez "texxasrulez (12 commits)")

### Embed Badge

![Health badge](/badges/texxasrulez-rounddav-files/health.svg)

```
[![Health](https://phpackages.com/badges/texxasrulez-rounddav-files/health.svg)](https://phpackages.com/packages/texxasrulez-rounddav-files)
```

###  Alternatives

[knplabs/gaufrette

PHP library that provides a filesystem abstraction layer

2.5k39.8M123](/packages/knplabs-gaufrette)[google/cloud-storage

Cloud Storage Client for PHP

34390.8M125](/packages/google-cloud-storage)[illuminate/filesystem

The Illuminate Filesystem package.

15261.6M2.6k](/packages/illuminate-filesystem)[superbalist/flysystem-google-storage

Flysystem adapter for Google Cloud Storage

26320.6M30](/packages/superbalist-flysystem-google-storage)[creocoder/yii2-flysystem

The flysystem extension for the Yii framework

2931.7M62](/packages/creocoder-yii2-flysystem)[flowjs/flow-php-server

PHP library for handling chunk uploads. Works with flow.js html5 file uploads.

2451.6M15](/packages/flowjs-flow-php-server)

PHPackages © 2026

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