Title: HAQ Member Document Drive
Author: Husain Ahmed
Published: <strong>August 23, 2026</strong>
Last modified: August 23, 2026

---

Search plugins

![](https://ps.w.org/haq-member-document-drive/assets/icon-128x128.png?rev=3661334)

# HAQ Member Document Drive

 By [Husain Ahmed](https://profiles.wordpress.org/husainahmedqureshi/)

[Download](https://downloads.wordpress.org/plugin/haq-member-document-drive.2.1.0.zip)

 * [Details](https://wordpress.org/plugins/haq-member-document-drive/#description)
 * [Reviews](https://wordpress.org/plugins/haq-member-document-drive/#reviews)
 *  [Installation](https://wordpress.org/plugins/haq-member-document-drive/#installation)
 * [Development](https://wordpress.org/plugins/haq-member-document-drive/#developers)

 [Support](https://wordpress.org/support/plugin/haq-member-document-drive/)

## Description

HAQ Member Document Drive gives your site a private document area. Administrators
create folders and decide, member by member and folder by folder, who may view, 
download, upload or create sub folders. Members sign in, see only the folders they
were granted, and work with their own files.

Files are stored outside the reach of the browser and are served through a permission
check on every request, so a shared link is useless to anyone without rights to 
the folder.

#### For administrators

 * Create, rename and delete folders and sub folders.
 * Upload files on behalf of members, rename them and remove them in bulk.
 * Approve, reject or block each registration before the account can be used.
 * Grant download, upload and create folder rights per member and per folder.
 * Review and action account deletion requests.
 * Browse a full activity log of uploads, downloads, renames and deletions, filter
   it and export it to CSV.
 * Configure organisation name, notification addresses, upload limits, allowed file
   types and more from a single settings screen.

#### For members

 * Browse only the folders they have been granted.
 * Download single files or select several and download them as one archive.
 * Upload files by drag and drop, with a progress bar and clear error messages.
 * Create sub folders where an administrator has granted that right.
 * Edit their profile, change their password and request that their account be closed.

#### Privacy

The plugin stores the account status, profile details and per folder rights of each
member, plus a log of the file actions they perform. Nothing is sent to any third
party service by default.

If you optionally enable Cloudflare Turnstile on the sign in and registration forms,
those forms load a script from Cloudflare and each submission is verified with Cloudflare’s
siteverify API. This is an opt-in Software as a Service integration. See Cloudflare’s
[privacy policy](https://www.cloudflare.com/privacypolicy/) and [terms of use](https://www.cloudflare.com/website-terms/).

## Installation

 1. Upload the `haq-member-document-drive` folder to `/wp-content/plugins/`, or install
    the plugin through the Plugins screen in WordPress.
 2. Activate the plugin. The database tables, the protected storage directory and the
    four member pages are created for you.
 3. Go to **HAQ Member Document Drive > Settings** and set your organisation name and
    notification email addresses.
 4. Go to **HAQ Member Document Drive > Folders** and create your first folder.
 5. Go to **HAQ Member Document Drive > Members** to approve accounts, then use **Access
    rights** to grant folder permissions.

The four pages created on activation are My Drive, Sign In, Register and Reset Password.
You can move the shortcodes to pages of your own and select them under **Settings
> Pages**.

## FAQ

### Where are uploaded files kept?

In `wp-content/uploads/haq-member-document-drive` by default. The plugin writes 
an `.htaccess` file, a `web.config` file and an `index.php` file into that directory
so the files cannot be fetched directly. Every download goes through a WordPress
request that checks the member’s rights and a one-time nonce first.

### What if my server ignores .htaccess?

Move the storage directory somewhere outside your web root by defining `HAQMEDOD_STORAGE_DIR`
in `wp-config.php` with an absolute path. The plugin will use it and the files will
be unreachable by URL regardless of server configuration. This is the recommended
setup on nginx and similar hosts.

### Can I allow any file type?

You can choose which extensions members may upload under **Settings > Uploads**.
Executable and script types such as `php`, `phtml`, `exe`, `sh`, `phar` and `svg`
can never be allowed; they are rejected even if you add them to the list. Uploads
are also checked so that a renamed executable cannot pass on its extension alone.

### Which shortcodes are available?

 * `[haqmedod_drive]` — the member drive.
 * `[haqmedod_profile]` — profile, password and account closure.
 * `[haqmedod_login]` — sign in form.
 * `[haqmedod_register]` — registration form.
 * `[haqmedod_lost_password]` — password reset form.

Legacy aliases `[haq_drive]`, `[haq_drive_profile]`, `[haq_drive_login]`, `[haq_drive_register]`
and `[haq_drive_lost_password]` still work.

### Do new members get access straight away?

No. A new registration is held as pending and cannot sign in until an administrator
approves it. If you would rather not review each one, clear **Hold new accounts 
until an administrator approves them** under **Settings > Membership**.

### I am upgrading from version 1.x. Will I lose anything?

No. On the first load after upgrading, the plugin moves existing uploads into the
protected directory and converts the old per member access data to the new format.
Your folders, files and logs are kept.

### What happens to my data if I delete the plugin?

Nothing is removed unless you ask for it. Deactivating never deletes anything. If
you want the tables, files, options and member data cleared, tick **Delete all folders,
files, logs and settings when the plugin is deleted** in the settings before you
delete the plugin.

## Reviews

There are no reviews for this plugin.

## Contributors & Developers

“HAQ Member Document Drive” is open source software. The following people have contributed
to this plugin.

Contributors

 *   [ Husain Ahmed ](https://profiles.wordpress.org/husainahmedqureshi/)

[Translate “HAQ Member Document Drive” into your language.](https://translate.wordpress.org/projects/wp-plugins/haq-member-document-drive)

### Interested in development?

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

## Changelog

#### 2.1.0

 * Compliance: text domain is now `haq-member-document-drive` (matches the plugin
   slug).
 * Compliance: unique `haqmedod` / `HAQMEDOD_` prefixes for classes, options, hooks,
   meta, AJAX, cache group and capabilities.
 * Compliance: late escaping with `esc_*` / `wp_kses` on echoed output (Plugin Check
   EscapeOutput).
 * Shortcodes: preferred tags are `[haqmedod_drive]`, `[haqmedod_login]`, `[haqmedod_register]`,`[
   haqmedod_lost_password]` and `[haqmedod_profile]` (legacy `haq_drive*` aliases
   kept).
 * Upgrade: automatic migration from former `udrv_*` / `user_drive*` options, meta,
   tables and capabilities.

#### 2.0.3

 * Distinctive plugin name: HAQ Member Document Drive. Text domain matches the plugin
   slug (`haq-member-document-drive`).
 * Security: public registration always creates Subscriber accounts; the member-
   role setting was removed.
 * Security: removed the Custom CSS setting so the plugin no longer stores or outputs
   arbitrary CSS.
 * Contributors list now uses the WordPress.org username.

#### 2.0.2

 * Compatibility: passed WordPress.org Plugin Check blockers for review-ready packaging.
 * Fixed: translators comment placement for Cloudflare policy links in settings.
 * Fixed: Cloudflare Turnstile loads via `wp_enqueue_script()` when the optional
   captcha is enabled (required Cloudflare API host).
 * Security: tightened sanitization of AJAX/profile input and clarified nonce-verified
   upload handling.
 * Database: direct queries now use `$wpdb->prefix` (or `esc_sql()`) in line with
   Plugin Check guidance.
 * Removed: manual `load_plugin_textdomain()` call (WordPress.org loads translations
   automatically).
 * Removed: discouraged `set_time_limit()` usage during downloads.

#### 2.0.1

 * Security: storage protection rules are rewritten when settings are saved, and
   removed when protection is turned off.
 * Security: download links now require a nonce in addition to folder rights.
 * Security: SVG and SVGZ uploads are refused by default as forbidden types.
 * Security: registration no longer reveals whether an email address is already 
   registered.
 * Fixed: Settings can be saved by users who hold the drive management capability.
 * Fixed: members with the create folders right can create sub folders and inherit
   access on them.
 * Accessibility / i18n: admin prompts are localised; Cloudflare Terms of Use linked
   in settings and readme.
 * Packaging: removed placeholder Plugin URI / Author URI; added directory index.
   php files; updated Tested up to.

#### 2.0.0

 * Rewritten as a standard WordPress plugin with an autoloader, a settings screen
   and admin pages for every feature.
 * Added: database tables are created and upgraded automatically on activation.
 * Added: settings for organisation name, notification addresses, membership rules,
   upload limits, allowed file types, logging, Cloudflare Turnstile and page assignments.
 * Added: activity log filtering and CSV export.
 * Added: full translation support and a `haq-member-document-drive.pot` template.
 * Added: opt in data removal on uninstall.
 * Added: automatic migration of files and access data from 1.x.
 * Changed: uploads are stored in a protected directory and served through a permission
   check instead of being publicly reachable.
 * Changed: the front end is rendered by shortcodes rather than page templates, 
   so it works with any theme.
 * Changed: assets are local and dependency free; the bundled jQuery copy, Bootstrap
   and CDN requests are gone.
 * Security: every AJAX endpoint now verifies a nonce and checks capabilities and
   folder rights.
 * Security: all database queries are prepared and all output is escaped.
 * Security: allowed file types are an allowlist, executable types are refused outright
   and file contents are checked against the extension.
 * Security: download archives are built in the system temp directory instead of
   the web root.

#### 1.0.0

 * Initial release.

## Meta

 *  Version **2.1.0**
 *  Last updated **1 day ago**
 *  Active installations **Fewer than 10**
 *  WordPress version ** 6.0 or higher **
 *  Tested up to **7.1**
 *  PHP version ** 7.4 or higher **
 * Tags
 * [documents](https://wordpress.org/plugins/tags/documents/)[downloads](https://wordpress.org/plugins/tags/downloads/)
   [file manager](https://wordpress.org/plugins/tags/file-manager/)[members](https://wordpress.org/plugins/tags/members/)
   [permissions](https://wordpress.org/plugins/tags/permissions/)
 *  [Advanced View](https://wordpress.org/plugins/haq-member-document-drive/advanced/)

## Ratings

No reviews have been submitted yet.

[Your review](https://wordpress.org/support/plugin/haq-member-document-drive/reviews/#new-post)

[See all reviews](https://wordpress.org/support/plugin/haq-member-document-drive/reviews/)

## Contributors

 *   [ Husain Ahmed ](https://profiles.wordpress.org/husainahmedqureshi/)

## Support

Got something to say? Need help?

 [View support forum](https://wordpress.org/support/plugin/haq-member-document-drive/)