Metadata-Version: 2.4
Name: allianceauth-discord-multiverse
Version: 0.0.1
Summary: Service module for managing an unlimited number of discord servers from a single auth instance. It can run side by side with the core auth discord service, or completely standalone.
Keywords: allianceauth,eveonline
Author-email: AaronKable <aaronkable@gmail.com>
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Classifier: Environment :: Web Environment
Classifier: Framework :: Celery
Classifier: Framework :: Django
Classifier: Framework :: Django :: 4.0
Classifier: Framework :: Django :: 4.2
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: Dynamic Content
License-File: LICENSE
Requires-Dist: allianceauth>=3
Requires-Dist: allianceauth-securegroups ; extra == "test"
Requires-Dist: requests-mock ; extra == "test"
Project-URL: Homepage, https://github.com/Solar-Helix-Independent-Transport/allianceauth-discord-multiverse
Project-URL: Source, https://github.com/Solar-Helix-Independent-Transport/allianceauth-discord-multiverse
Project-URL: Tracker, https://github.com/Solar-Helix-Independent-Transport/allianceauth-discord-multiverse/issues
Provides-Extra: test

# Discord Multiverse

Service module for managing an unlimited number of discord servers from a single auth instance. It can run side by side with the core auth discord service, or completely standalone.

Most of the code is borrowed from Alliance Auth's core [Discord Service Module](https://allianceauth.readthedocs.io/en/latest/features/services/discord.html) and re-purposed to be guild agnostic.

Active Devs:

- [AaronKable](https://github.com/pvyParts)

### Installation

1.  pip install `package`
2.  Add `'aadiscordmultiverse',` to your `INSTALLED_APPS` in your projects `local.py`
3.  Add a new redirect in the [discord app SSO](https://allianceauth.readthedocs.io/en/latest/features/services/discord.html#registering-an-application)
 * the url needed is `https://yourauth.url/dmv/callback`
 * if you are using this along side the inbuilt module just add another url
4.  Add redirect url to your local.py
 * `DMV_CALLBACK_URL = f"{SITE_URL}/dmv/callback/"`
3.  Run migrations, collectstatic and restart auth.
4.  Setup your permissions as documented below

### Access Control and Server Permissions

- First and foremost to access **ANY** server a user must have this permission;
  - `aadiscordmultiverse | discord managed server | Can access the Discord Multiverse services`
- Access control to each server is managed by the Server Model
  - You can grant access by adding one of the following to the managed server in admin.
    - User State
    - User Groups
    - Main Characters Faction
    - Main Characters Alliance
    - Main Characters Corporation
    - Main Character

### Adding a Guild to Auth

1.  Add a new `DISCORD MANAGED SERVER` in admin
2.  Set the guild id to match your new server
3.  set any access control settings you need
4.  Set the included groups for the server. These are the only groups that will not be synced to this discord server. Enable the "managed groups" option if you want the auto corp/ali groups to sync magically too.
5.  Click Save
6.  Restart Auth
7.  Goto Services in the main auth site
8.  Click "Link Discord" on the new server and add your auth to the correct server.
9.  People can now join as required

