Metadata-Version: 2.5
Name: flaskbb-plugin-inviteonly
Version: 1.0.0
Summary: Invite-only registration for FlaskBB - let admins and quota-holding members invite new users even while registration is closed
Project-URL: Homepage, https://github.com/flaskbb/flaskbb-plugin-inviteonly
Project-URL: Repository, https://github.com/flaskbb/flaskbb-plugin-inviteonly
Project-URL: Issues, https://github.com/flaskbb/flaskbb-plugin-inviteonly/issues
Project-URL: Changelog, https://github.com/flaskbb/flaskbb-plugin-inviteonly/blob/master/CHANGELOG.md
Author-email: Peter Justin <peter@peterjustin.com>
Maintainer-email: Peter Justin <peter@peterjustin.com>
License-Expression: BSD-3-Clause
License-File: LICENSE
Keywords: flaskbb,invitation,invite,plugin,registration
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Flask
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.14
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.12
Requires-Dist: flaskbb>=3.0.0
Description-Content-Type: text/markdown

Invite-only
===========

Invite-only registration for FlaskBB. Lets an admin, or a member with an
invitation quota, generate an invitation code/link (optionally emailed)
that lets someone register even while registration is otherwise closed.


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

Install *flaskbb-plugin-inviteonly* with
``pip install flaskbb-plugin-inviteonly``

For local development against a FlaskBB checkout, see "Developing a new,
standalone plugin" in FlaskBB's own
[plugin development docs](https://flaskbb.readthedocs.io/en/latest/development/plugin/developing.html) -
in short, from FlaskBB's root folder:

```
uv pip install -e ../flaskbb-plugin-inviteonly
```


Usage
-----

Any logged-in member with a nonzero (or unlimited) invitation quota can
create invitations from "My Invitations" (linked in the user menu). Each
invitation is a one-time code/link; an email address can optionally be
given to send it directly, otherwise the code/link is shown to copy and
share manually.

The recipient registers either by following the link
(`/invite/<code>`) or by entering the code on the "Have an invitation
code?" page (`/invite`) - both work even while FlaskBB's own
registration is closed (`REGISTRATION_ENABLED` off).

Admins manage every invitation and grant/adjust any user's quota from
the admin panel's "Invitations" page.


Settings
--------

*Invite-only Settings*, under the admin panel's Plugin Settings, has
three options:

* **Enable invite-only registration** - master toggle for the invitation
  routes (default: on).
* **Default invitation quota** - how many invitations a user can create
  before an admin has granted them a quota (default: 0, meaning
  invitations are admin-only until granted).
* **Invitation expiry (days)** - how long an invitation stays valid
  (default: 7, 0 means it never expires).

Admins always bypass the quota check and can create invitations
regardless of their own quota.


License
-------
This project is licensed under the terms of the [BSD License](/LICENSE).
