mirror of
https://gitlab.com/allianceauth/allianceauth.git
synced 2025-12-18 23:05:07 +01:00
Documentation overhaul
This commit is contained in:
@@ -7,17 +7,17 @@
|
||||
|
||||
Auto groups allows you to automatically place users of certain states into Corp or Alliance based groups. These groups are created when the first user is added to them and removed when the configuration is deleted.
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.eveonline.autogroups',` to your `INSTALLED_APPS` list and run migrations. All other settings are controlled via the admin panel under the `Eve_Autogroups` section.
|
||||
This is an optional app that needs to be installed.
|
||||
|
||||
To install this app add `'allianceauth.eveonline.autogroups',` to your `INSTALLED_APPS` list and run migrations. All other settings are controlled via the admin panel under the `Eve_Autogroups` section.
|
||||
|
||||
## Configuring a group
|
||||
|
||||
When you create an autogroup config you will be given the following options:
|
||||
|
||||

|
||||

|
||||
|
||||
```eval_rst
|
||||
.. warning::
|
||||
@@ -28,7 +28,7 @@ When you create an autogroup config you will be given the following options:
|
||||
|
||||
- Corp/Alliance groups checkbox toggles Corp/Alliance autogroups on or off for this config.
|
||||
|
||||
- Corp/Alliance group prefix sets the prefix for the group name, e.g. if your Corp was called `MyCorp` and your prefix was `Corp `, your autogroup name would be created as `Corp MyCorp`. This field accepts leading/trailing spaces.
|
||||
- Corp/Alliance group prefix sets the prefix for the group name, e.g. if your Corp was called `MyCorp` and your prefix was `Corp`, your autogroup name would be created as `Corp MyCorp`. This field accepts leading/trailing spaces.
|
||||
|
||||
- Corp/Alliance name source sets the source of the Corp/Alliance name used in creating the group name. Currently the options are Full name and Ticker.
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
# Corp Stats
|
||||
# Corporation Stats
|
||||
|
||||
This module is used to check the registration status of Corp members and to determine character relationships, being mains or alts.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Corp Stats requires access to the `esi-corporations.read_corporation_membership.v1` SSO scope. Update your application on the [EVE Developers site](https://developers.eveonline.com) to ensure it is available.
|
||||
@@ -12,17 +14,17 @@ Add `'allianceauth.corputils',` to your `INSTALLED_APPS` list in your auth proje
|
||||
|
||||
Upon initial install, nothing will be visible. For every Corp, a model will have to be created before data can be viewed.
|
||||
|
||||

|
||||

|
||||
|
||||
If you are a superuser, the add button will be immediate visible to you. If not, your user account requires the `add_corpstats` permission.
|
||||
|
||||
Corp Stats requires an EVE SSO token to access data from the EVE Swagger Interface. Upon pressing the Add button, you will be prompted to authenticated. Please select the character who is in the Corporation you want data for.
|
||||
|
||||

|
||||

|
||||
|
||||
You will return to auth where you are asked to select a token with the green arrow button. If you want to use a different character, press the `LOG IN with EVE Online` button.
|
||||
|
||||

|
||||

|
||||
|
||||
If this works (and you have permission to view the Corp Stats you just created) you'll be returned to a view of the Corp Stats.
|
||||
If it fails an error message will be displayed.
|
||||
@@ -31,7 +33,7 @@ If it fails an error message will be displayed.
|
||||
|
||||
### Navigation Bar
|
||||
|
||||

|
||||

|
||||
|
||||
This bar contains a dropdown menu of all available Corporations. If the user has the `add_corpstats` permission, a button to add a Corp Stats will be shown.
|
||||
|
||||
@@ -39,52 +41,51 @@ On the right of this bar is a search field. Press enter to search. It checks all
|
||||
|
||||
### Last Update
|
||||
|
||||

|
||||

|
||||
|
||||
An update can be performed immediately by pressing the update button. Anyone who can view the Corp Stats can update it.
|
||||
|
||||
### Character Lists
|
||||
|
||||

|
||||

|
||||
|
||||
Three views are available:
|
||||
- main characters and their alts
|
||||
- registered characters and their main character
|
||||
- unregistered characters
|
||||
|
||||
- main characters and their alts
|
||||
- registered characters and their main character
|
||||
- unregistered characters
|
||||
|
||||
Each view contains a sortable and searchable table. The number of listings shown can be increased with a dropdown selector. Pages can be changed using the controls on the bottom-right of the table. Each list is searchable at the top-right. Tables can be re-ordered by clicking on column headings.
|
||||
|
||||

|
||||

|
||||
|
||||
#### Main List
|
||||
|
||||

|
||||

|
||||
|
||||
This list contains all main characters in registered in the selected Corporation and their alts. Each character has a link to [zKillboard](https://zkillboard.com).
|
||||
|
||||
|
||||
#### Member List
|
||||
|
||||

|
||||

|
||||
|
||||
The list contains all characters in the Corporation. Red backgrounds means they are not registered in auth. A link to [zKillboard](https://zkillboard.com) is present for all characters.
|
||||
If registered, the character will also have a main character, main Corporation, and main Alliance field.
|
||||
|
||||
#### Unregistered List
|
||||
|
||||

|
||||

|
||||
|
||||
This list contains all characters not registered on auth. Each character has a link to [zKillboard](https://zkillboard.com).
|
||||
|
||||
## Search View
|
||||
|
||||

|
||||

|
||||
|
||||
This view is essentially the same as the Corp Stats page, but not specific to a single Corporation.
|
||||
The search query is visible in the search box.
|
||||
Characters from all Corp Stats to which the user has view access will be displayed. APIs respect permissions.
|
||||
|
||||
|
||||
## Permissions
|
||||
|
||||
To use this feature, users will require some of the following:
|
||||
@@ -108,15 +109,18 @@ To use this feature, users will require some of the following:
|
||||
|
||||
```
|
||||
|
||||
Users who add a Corp Stats with their token will be granted permissions to view it regardless of the above permissions. View permissions are interpreted in the "OR" sense: a user can view their Corporations's Corp Stats without the `view_corp_corpstats` permission if they have the `view_alliance_corpstats` permission, same idea for their state. Note that these evaluate against the user's main character.
|
||||
Users who add a Corp Stats with their token will be granted permissions to view it regardless of the above permissions. View permissions are interpreted in the "OR" sense: a user can view their corporation's Corp Stats without the `view_corp_corpstats` permission if they have the `view_alliance_corpstats` permission, same idea for their state. Note that these evaluate against the user's main character.
|
||||
|
||||
## Automatic Updating
|
||||
|
||||
By default Corp Stats are only updated on demand. If you want to automatically refresh on a schedule, add an entry to your project's settings file:
|
||||
|
||||
CELERYBEAT_SCHEDULE['update_all_corpstats'] = {
|
||||
'task': 'allianceauth.corputils.tasks.update_all_corpstats',
|
||||
'schedule': crontab(minute=0, hour="*/6"),
|
||||
}
|
||||
```python
|
||||
CELERYBEAT_SCHEDULE['update_all_corpstats'] = {
|
||||
'task': 'allianceauth.corputils.tasks.update_all_corpstats',
|
||||
'schedule': crontab(minute=0, hour="*/6"),
|
||||
}
|
||||
```
|
||||
|
||||
Adjust the crontab as desired.
|
||||
|
||||
@@ -1,7 +1,11 @@
|
||||
# Fleet Activity Tracking
|
||||
|
||||
The Fleet Activity Tracking (FAT) app allows you to track fleet participation.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Fleet Activity Tracking requires access to the `esi-location.read_location.v1`, `esi-location.read_ship_type.v1`, and `esi-universe.read_structures.v1` SSO scopes. Update your application on the [EVE Developers site](https://developers.eveonline.com) to ensure these are available.
|
||||
|
||||
Add `'allianceauth.fleetactivitytracking',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
Add `'allianceauth.fleetactivitytracking',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
@@ -1,5 +1,13 @@
|
||||
# HR Applications
|
||||
|
||||
This app allows you to manage applications for multiple corporations in your alliance. Key features include:
|
||||
|
||||
- Define application questionnaires for corporations
|
||||
- Users can apply to corporations by filling outquestionnaires
|
||||
- Manage review and approval process of applications
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.hrapplications',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
17
docs/features/apps/index.md
Normal file
17
docs/features/apps/index.md
Normal file
@@ -0,0 +1,17 @@
|
||||
# Apps
|
||||
|
||||
**Alliance Auth** comes with a set of apps (also called plugin-apps) which provide basic functions useful to many organizations in Eve Online like a fleet schedule and a timerboard. This section describes which apps are available and how to install and use them. Please note that any app need to be installed before it can be used.
|
||||
|
||||
```eval_rst
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
autogroups
|
||||
corpstats
|
||||
fleetactivitytracking
|
||||
hrapplications
|
||||
optimer
|
||||
permissions_tool
|
||||
srp
|
||||
timerboard
|
||||
```
|
||||
9
docs/features/apps/optimer.md
Normal file
9
docs/features/apps/optimer.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Fleet Operations
|
||||
|
||||
Fleet Operations is an app for organizing and communicating fleet schedules.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.optimer',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
Access to most of Alliance Auth's features are controlled by Django's permissions system. In order to help you secure your services, Alliance Auth provides a permissions auditing tool.
|
||||
|
||||
## Installation
|
||||
This is an optional app that needs to be installed.
|
||||
|
||||
Add `'allianceauth.permissions_tool',` to your `INSTALLED_APPS` list in your auth project's settings file.
|
||||
To install it add `'allianceauth.permissions_tool',` to your `INSTALLED_APPS` list in your auth project's settings file.
|
||||
|
||||
## Usage
|
||||
|
||||
@@ -14,12 +14,11 @@ In order to grant users access to the permissions auditing tool they will need t
|
||||
|
||||
When a user has access to the tool they will see the "Permissions Audit" menu item under the "Util" sub menu.
|
||||
|
||||
|
||||
### Permissions Overview
|
||||
|
||||
The first page gives you a general overview of permissions and how many users have access to each permission.
|
||||
|
||||

|
||||

|
||||
|
||||
**App**, **Model** and **Code Name** contain the internal details of the permission while **Name** contains the name/description you'll see in the admin panel.
|
||||
|
||||
@@ -35,6 +34,6 @@ Clicking on the **Code Name** link will take you to the [Permissions Audit Page]
|
||||
|
||||
The permissions audit page will give you an overview of all the users who have access to this permission either directly or granted via group membership.
|
||||
|
||||

|
||||

|
||||
|
||||
Please note that users may appear multiple times if this permission is granted via multiple sources.
|
||||
9
docs/features/apps/srp.md
Normal file
9
docs/features/apps/srp.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Ship Replacement
|
||||
|
||||
Ship Replacement helps you to organize ship replacement programs (SRP) for your alliance.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.srp',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
9
docs/features/apps/timerboard.md
Normal file
9
docs/features/apps/timerboard.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Structure Timers
|
||||
|
||||
Structure Timers helps you keep track of both offensive and defensive structure timers in your space.
|
||||
|
||||

|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.timerboard',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
7
docs/features/community/index.md
Normal file
7
docs/features/community/index.md
Normal file
@@ -0,0 +1,7 @@
|
||||
# Community Contributions
|
||||
|
||||
Another key feature of **Alliance Auth** is that it can be easily extended. Our great community is providing a variety of plug-in apps and services, which you can choose from to add more functions to your AA installation.
|
||||
|
||||
Check out the [Community Creations](https://gitlab.com/allianceauth/community-creations) repo for more details.
|
||||
|
||||
Or if you have very specific needs you can of course develop your own plugin- apps and services. Please see the [Development](/development/index.md) chapter details.
|
||||
9
docs/features/core/dashboard.md
Normal file
9
docs/features/core/dashboard.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# Dashboard
|
||||
|
||||
The dashboard is the main page of the **Alliance Auth** website and the first page every logged in user will see.
|
||||
|
||||
The content of the dashboard is specific to the logged in user. It has a sidebar, which will display the list of apps a user currently as access to based on his permissions. And it also shows which character the user has registered and to which group he belongs.
|
||||
|
||||
For admin users the dashboard shows additional technical information about the AA instance.
|
||||
|
||||

|
||||
41
docs/features/core/groupmanagement.md
Normal file
41
docs/features/core/groupmanagement.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# Group Management
|
||||
|
||||
In order to access group management, users need to be either a superuser, granted the `auth | user | group_management ( Access to add members to groups within the alliance )` permission or a group leader (discussed later).
|
||||
|
||||
## Group Requests
|
||||
|
||||
When a user joins or leaves a group which is not marked as "Open", their group request will have to be approved manually by a user with the `group_management` permission or by a group leader of the group they are requesting.
|
||||
|
||||
## Group Membership
|
||||
|
||||
The group membership tab gives an overview of all of the non-internal groups.
|
||||
|
||||

|
||||
|
||||
### Group Member Management
|
||||
|
||||
Clicking on the blue eye will take you to the group member management screen. Here you can see a list of people who are in the group, and remove members where necessary.
|
||||
|
||||

|
||||
|
||||
### Group Audit Log
|
||||
|
||||
Whenever a user Joins, Leaves, or is Removed from a group, this is logged. To find the audit log for a given group, click the light-blue button to the right of the Group Member Management (blue eye) button.
|
||||
|
||||
These logs contain the Date and Time the action was taken (in EVE/UTC), the user which submitted the request being acted upon (requestor), the user's main character, the type of request (join, leave or removed), the action taken (accept, reject or remove), and the user that took the action (actor).
|
||||
|
||||

|
||||
|
||||
```eval_rst
|
||||
.. note::
|
||||
There is no tracking for "Open" groups as members are able to freely join/leave these groups.
|
||||
```
|
||||
|
||||
## Group Leaders
|
||||
|
||||
Group leaders have the same abilities as users with the `group_management` permission, _however_, they will only be able to:
|
||||
|
||||
- Approve requests for groups they are a leader of.
|
||||
- View the Group Membership and Group Members of groups they are leaders of.
|
||||
|
||||
This allows you to more finely control who has access to manage which groups. Currently it is not possible to add a Group as group leaders.
|
||||
@@ -1,42 +1,45 @@
|
||||
# Groups
|
||||
|
||||
Group Management is one of the core tasks of Alliance Auth. Many of Alliance Auth's services allow for synchronising of group membership, allowing you to grant permissions or roles in services to access certain aspects of them.
|
||||
|
||||
## User Organised Groups
|
||||
## User Organized Groups
|
||||
|
||||
Administrators can create custom groups for users to join. Examples might be groups like `Leadership`, `CEO` or `Scouts`.
|
||||
|
||||
When you create a `Group` additional settings are available beyond the normal Django group model. The admin page looks like this:
|
||||
|
||||

|
||||

|
||||
|
||||
Here you have several options:
|
||||
|
||||
#### Internal
|
||||
### Internal
|
||||
|
||||
Users cannot see, join or request to join this group. This is primarily used for Auth's internally managed groups, though can be useful if you want to prevent users from managing their membership of this group themselves. This option will override the Hidden, Open and Public options when enabled.
|
||||
|
||||
By default, every new group created will be an internal group.
|
||||
|
||||
#### Hidden
|
||||
### Hidden
|
||||
|
||||
Group is hidden from the user interface, but users can still join if you give them the appropriate join link. The URL will be along the lines of `https://example.com/en/group/request_add/{group_id}`. You can get the Group ID from the admin page URL.
|
||||
|
||||
This option still respects the Open option.
|
||||
|
||||
|
||||
### Open
|
||||
|
||||
When a group is toggled open, users who request to join the group will be immediately added to the group.
|
||||
|
||||
If the group is not open, their request will have to be approved manually by someone with the group management role, or a group leader of that group.
|
||||
|
||||
|
||||
### Public
|
||||
|
||||
Group is accessible to any registered user, even when they do not have permission to join regular groups.
|
||||
|
||||
The key difference is that the group is completely unmanaged by Auth. **Once a member joins they will not be removed unless they leave manually, you remove them manually, or their account is deliberately set inactive or deleted.**
|
||||
|
||||
Most people won't have a use for public groups, though it can be useful if you wish to allow public access to some services. You can grant service permissions on a public group to allow this behaviour.
|
||||
|
||||
Most people won't have a use for public groups, though it can be useful if you wish to allow public access to some services. You can grant service permissions on a public group to allow this behavior.
|
||||
|
||||
## Permission
|
||||
|
||||
In order to join a group other than a public group, the permission `groupmanagement.request_groups` (`Can request non-public groups` in the admin panel) must be active on their account, either via a group or directly applied to their User account.
|
||||
|
||||
When a user loses this permission, they will be removed from all groups _except_ Public groups.
|
||||
@@ -45,44 +48,3 @@ When a user loses this permission, they will be removed from all groups _except_
|
||||
.. note::
|
||||
By default, the ``groupmanagement.request_groups`` permission is applied to the ``Member`` group. In most instances this, and perhaps adding it to the ``Blue`` group, should be all that is ever needed. It is unsupported and NOT advisable to apply this permission to a public group. See #697 for more information.
|
||||
```
|
||||
|
||||
# Group Management
|
||||
|
||||
In order to access group management, users need to be either a superuser, granted the `auth | user | group_management ( Access to add members to groups within the alliance )` permission or a group leader (discussed later).
|
||||
|
||||
## Group Requests
|
||||
|
||||
When a user joins or leaves a group which is not marked as "Open", their group request will have to be approved manually by a user with the `group_management` permission or by a group leader of the group they are requesting.
|
||||
|
||||
## Group Membership
|
||||
|
||||
The group membership tab gives an overview of all of the non-internal groups.
|
||||
|
||||

|
||||
|
||||
### Group Member Management
|
||||
|
||||
Clicking on the blue eye will take you to the group member management screen. Here you can see a list of people who are in the group, and remove members where necessary.
|
||||
|
||||

|
||||
|
||||
### Group Audit Log
|
||||
Whenever a user Joins, Leaves, or is Removed from a group, this is logged. To find the audit log for a given group, click the light-blue button to the right of the Group Member Management (blue eye) button.
|
||||
|
||||
These logs contain the Date and Time the action was taken (in EVE/UTC), the user which submitted the request being acted upon (requestor), the user's main character, the type of request (join, leave or removed), the action taken (accept, reject or remove), and the user that took the action (actor).
|
||||
|
||||

|
||||
|
||||
```eval_rst
|
||||
.. note::
|
||||
There is no tracking for "Open" groups as members are able to freely join/leave these groups.
|
||||
```
|
||||
|
||||
## Group Leaders
|
||||
|
||||
Group leaders have the same abilities as users with the `group_management` permission, _however_, they will only be able to:
|
||||
|
||||
- Approve requests for groups they are a leader of.
|
||||
- View the Group Membership and Group Members of groups they are leaders of.
|
||||
|
||||
This allows you to more finely control who has access to manage which groups. Currently it is not possible to add a Group as group leaders.
|
||||
13
docs/features/core/index.md
Normal file
13
docs/features/core/index.md
Normal file
@@ -0,0 +1,13 @@
|
||||
# Core Features
|
||||
|
||||
Managing access to applications and services is one of the core functions of **Alliance Auth**. The related key concepts and functionalities are describes in this section.
|
||||
|
||||
```eval_rst
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
dashboard
|
||||
states
|
||||
groups
|
||||
groupmanagement
|
||||
```
|
||||
@@ -1,38 +1,49 @@
|
||||
# The State System
|
||||
# States
|
||||
|
||||
## Overview
|
||||
States define the basic role of a user based on his affiliation with your organization. A user that has a character in your organization (e.g. alliance) will usually have the `Member` state. And a user, that has no characters in your organization will usually have the `Guest` state.
|
||||
|
||||
In Alliance Auth v1 admins were able to define which Corporations and Alliances were to be considered "members" with full permissions and "blues" with restricted permissions. The state system is the replacement for these static definitions: admins can now create as many states as desired, as well as extend membership to specific characters.
|
||||
States are assigned and updated automatically. So a user which character just left your organization will automatically loose his `Member` state and get the `Guest` state instead.
|
||||
|
||||
The main purpose of states like `Member` is to have one place where you can assign all permissions that should apply to all users with that particular state. For example if all your members should have access to the SRP app you would add the permission that gives access to the SRP app to the `Member` state.
|
||||
|
||||
## Creating a State
|
||||
|
||||
States are created through your installation's admin site. Upon install three states are created for you: `Member`, `Blue`, and `Guest`. New ones can be created like any other Django model by users with the appropriate permission (`authentication | state | Can add state`) or superusers.
|
||||
|
||||
A number of fields are available and are described below.
|
||||
|
||||
### Name
|
||||
|
||||
This is the displayed name of a state. Should be self-explanatory.
|
||||
|
||||
### Permissions
|
||||
|
||||
This lets you select permissions to grant to the entire state, much like a group. Any user with this state will be granted these permissions.
|
||||
|
||||
A common use case would be granting service access to a state.
|
||||
|
||||
### Priority
|
||||
|
||||
This value determines the order in which states are applied to users. Higher numbers come first. So if a random user `Bob` could member of both the `Member` and `Blue` states, because `Member` has a higher priority `Bob` will be assigned to it.
|
||||
|
||||
### Public
|
||||
|
||||
Checking this box means this state is available to all users. There isn't much use for this outside the `Guest` state.
|
||||
|
||||
### Member Characters
|
||||
|
||||
This lets you select which characters the state is available to. Characters can be added by selecting the green plus icon.
|
||||
|
||||
### Member Corporations
|
||||
|
||||
This lets you select which Corporations the state is available to. Corporations can be added by selecting the green plus icon.
|
||||
|
||||
### Member Alliances
|
||||
|
||||
This lets you select which Alliances the state is available to. Alliances can be added by selecting the green plus icon.
|
||||
|
||||
## Determining a User's State
|
||||
|
||||
States are mutually exclusive, meaning a user can only be in one at a time.
|
||||
|
||||
Membership is determined based on a user's main character. States are tested in order of descending priority - the first one which allows membership to the main character is assigned to the user.
|
||||
@@ -42,6 +53,7 @@ States are automatically assigned when a user registers to the site, their main
|
||||
Assigned states are visible in the `Users` section of the `Authentication` admin site.
|
||||
|
||||
## The Guest State
|
||||
|
||||
If no states are available to a user's main character, or their account has been deactivated, they are assigned to a catch-all `Guest` state. This state cannot be deleted nor can its name be changed.
|
||||
|
||||
The `Guest` state allows permissions to be granted to users who would otherwise not get any. For example access to public services can be granted by giving the `Guest` state a service access permission.
|
||||
@@ -1,20 +1,14 @@
|
||||
# Features
|
||||
|
||||
Learn about the features of **Alliance Auth** and how to install and use them.
|
||||
|
||||
```eval_rst
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:caption: Features Contents
|
||||
|
||||
states
|
||||
groups
|
||||
autogroups
|
||||
hrapplications
|
||||
corpstats
|
||||
permissions_tool
|
||||
nameformats
|
||||
fleetup
|
||||
fleetactivitytracking
|
||||
optimer
|
||||
srp
|
||||
timerboard
|
||||
overview
|
||||
core/index
|
||||
services/index
|
||||
apps/index
|
||||
community/index
|
||||
```
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
# Optimer
|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.optimer',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
19
docs/features/overview.md
Normal file
19
docs/features/overview.md
Normal file
@@ -0,0 +1,19 @@
|
||||
# Overview
|
||||
|
||||
**Alliance Auth** (AA) is a web application that helps Eve Online organizations efficiently manage access to external services and web apps.
|
||||
|
||||
It has the following key features:
|
||||
|
||||
- Automatically grants or revokes users access to external services (e.g. Discord, Mumble) and web apps (e.g. SRP requests) based on the user's current membership to [in-game organizations](/features/core/states) and [groups](/features/core/groups)
|
||||
|
||||
- Provides a central web site where users can directly access web apps (e.g. SRP requests) and manage their access to external services and groups.
|
||||
|
||||
- Includes a set of connectors (called ["services"](/features/services/index)) for integrating access management with many popular external services like Discord, Mumble, Teamspeak 3, SMF and others
|
||||
|
||||
- Includes a set of web [apps](/features/apps/index) which add many useful functions, e.g.: fleet schedule, timer board, SRP request management, fleet activity tracker
|
||||
|
||||
- Can be easily extended with additional services and apps. Many are provided by the [community](/features/community/index).
|
||||
|
||||
Here is an example how the main page of the web site looks:
|
||||
|
||||

|
||||
94
docs/features/services/discord.md
Normal file
94
docs/features/services/discord.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# Discord
|
||||
|
||||
## Overview
|
||||
|
||||
Discord is a web-based instant messaging client with voice. Kind of like TeamSpeak meets Slack meets Skype. It also has a standalone app for phones and desktop.
|
||||
|
||||
Discord is very popular amongst ad-hoc small groups and larger organizations seeking a modern technology. Alternative voice communications should be investigated for larger than small-medium groups for more advanced features.
|
||||
|
||||
## Setup
|
||||
|
||||
```eval_rst
|
||||
.. warning::
|
||||
Do not run the `discord.update_*` periodic tasks on a regular schedule, doing so can cause your discord service to stop syncing completely.
|
||||
```
|
||||
|
||||
### Prepare Your Settings File
|
||||
|
||||
In your auth project's settings file, do the following:
|
||||
|
||||
- Add `'allianceauth.services.modules.discord',` to your `INSTALLED_APPS` list
|
||||
- Append the following to the bottom of the settings file:
|
||||
|
||||
```python
|
||||
# Discord Configuration
|
||||
DISCORD_GUILD_ID = ''
|
||||
DISCORD_CALLBACK_URL = ''
|
||||
DISCORD_APP_ID = ''
|
||||
DISCORD_APP_SECRET = ''
|
||||
DISCORD_BOT_TOKEN = ''
|
||||
DISCORD_SYNC_NAMES = False
|
||||
```
|
||||
|
||||
### Creating a Server
|
||||
|
||||
Navigate to the [Discord site](https://discordapp.com/) and register an account, or log in if you have one already.
|
||||
|
||||
On the left side of the screen you’ll see a circle with a plus sign. This is the button to create a new server. Go ahead and do that, naming it something obvious.
|
||||
|
||||
Now retrieve the server ID [following this procedure.](https://support.discordapp.com/hc/en-us/articles/206346498-Where-can-I-find-my-User-Server-Message-ID-)
|
||||
|
||||
Update your auth project's settings file, inputting the server ID as `DISCORD_GUILD_ID`
|
||||
|
||||
```eval_rst
|
||||
.. note::
|
||||
If you already have a Discord server skip the creation step, but be sure to retrieve the server ID
|
||||
```
|
||||
|
||||
### Registering an Application
|
||||
|
||||
Navigate to the [Discord Developers site.](https://discordapp.com/developers/applications/me) Press the plus sign to create a new application.
|
||||
|
||||
Give it a name and description relating to your auth site. Add a redirect to `https://example.com/discord/callback/`, substituting your domain. Press Create Application.
|
||||
|
||||
Update your auth project's settings file, inputting this redirect address as `DISCORD_CALLBACK_URL`
|
||||
|
||||
On the application summary page, press Create a Bot User.
|
||||
|
||||
Update your auth project's settings file with these pieces of information from the summary page:
|
||||
|
||||
- From the App Details panel, `DISCORD_APP_ID` is the Client/Application ID
|
||||
- From the App Details panel, `DISCORD_APP_SECRET` is the Secret
|
||||
- From the App Bot Users panel, `DISCORD_BOT_TOKEN` is the Token
|
||||
|
||||
### Preparing Auth
|
||||
|
||||
Before continuing it is essential to run migrations and restart Gunicorn and Celery.
|
||||
|
||||
### Adding a Bot to the Server
|
||||
|
||||
Once created, navigate to the services page of your Alliance Auth install as the superuser account. At the top there is a big green button labelled Link Discord Server. Click it, then from the drop down select the server you created, and then Authorize.
|
||||
|
||||
This adds a new user to your Discord server with a `BOT` tag, and a new role with the same name as your Discord application. Don't touch either of these. If for some reason the bot loses permissions or is removed from the server, click this button again.
|
||||
|
||||
To manage roles, this bot role must be at the top of the hierarchy. Edit your Discord server, roles, and click and drag the role with the same name as your application to the top of the list. This role must stay at the top of the list for the bot to work. Finally, the owner of the bot account must enable 2 Factor Authentication (this is required from Discord for kicking and modifying member roles). If you are unsure what 2FA is or how to set it up, refer to [this support page](https://support.discordapp.com/hc/en-us/articles/219576828). It is also recommended to force 2FA on your server (this forces any admins or moderators to have 2fa enabled to perform similar functions on discord).
|
||||
|
||||
Note that the bot will never appear online as it does not participate in chat channels.
|
||||
|
||||
### Linking Accounts
|
||||
|
||||
Instead of the usual account creation procedure, for Discord to work we need to link accounts to Alliance Auth. When attempting to enable the Discord service, users are redirected to the official Discord site to authenticate. They will need to create an account if they don't have one prior to continuing. Upon authorization, users are redirected back to Alliance Auth with an OAuth code which is used to join the Discord server.
|
||||
|
||||
### Syncing Nicknames
|
||||
|
||||
If you want users to have their Discord nickname changed to their in-game character name, set `DISCORD_SYNC_NAMES` to `True`
|
||||
|
||||
## Managing Roles
|
||||
|
||||
Once users link their accounts you’ll notice Roles get populated on Discord. These are the equivalent to Groups on every other service. The default permissions should be enough for members to use text and audio communications. Add more permissions to the roles as desired through the server management window.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### "Unknown Error" on Discord site when activating service
|
||||
|
||||
This indicates your callback URL doesn't match. Ensure the `DISCORD_CALLBACK_URL` setting exactly matches the URL entered on the Discord developers site. This includes http(s), trailing slash, etc.
|
||||
130
docs/features/services/discourse.md
Normal file
130
docs/features/services/discourse.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# Discourse
|
||||
|
||||
## Prepare Your Settings
|
||||
|
||||
In your auth project's settings file, do the following:
|
||||
|
||||
- Add `'allianceauth.services.modules.discourse',` to your `INSTALLED_APPS` list
|
||||
- Append the following to your local.py settings file:
|
||||
|
||||
```python
|
||||
# Discourse Configuration
|
||||
DISCOURSE_URL = ''
|
||||
DISCOURSE_API_USERNAME = ''
|
||||
DISCOURSE_API_KEY = ''
|
||||
DISCOURSE_SSO_SECRET = ''
|
||||
```
|
||||
|
||||
## Install Docker
|
||||
|
||||
wget -qO- https://get.docker.io/ | sh
|
||||
|
||||
## Install Discourse
|
||||
|
||||
### Download Discourse
|
||||
|
||||
mkdir /var/discourse
|
||||
git clone https://github.com/discourse/discourse_docker.git /var/discourse
|
||||
|
||||
### Configure
|
||||
|
||||
cd /var/discourse
|
||||
cp samples/standalone.yml containers/app.yml
|
||||
nano containers/app.yml
|
||||
|
||||
Change the following:
|
||||
|
||||
- `DISCOURSE_DEVELOPER_EMAILS` should be a list of admin account email addresses separated by commas.
|
||||
- `DISCOUSE_HOSTNAME` should be `discourse.example.com` or something similar.
|
||||
- Everything with `SMTP` depends on your mail settings. [There are plenty of free email services online recommended by Discourse](https://github.com/discourse/discourse/blob/master/docs/INSTALL-email.md#recommended-email-providers-for-discourse) if you haven't set one up for auth already.
|
||||
|
||||
To install behind Apache/Nginx, look for this section:
|
||||
|
||||
...
|
||||
## which TCP/IP ports should this container expose?
|
||||
expose:
|
||||
- "80:80" # fwd host port 80 to container port 80 (http)
|
||||
...
|
||||
|
||||
Change it to this:
|
||||
|
||||
...
|
||||
## which TCP/IP ports should this container expose?
|
||||
expose:
|
||||
- "7890:80" # fwd host port 7890 to container port 80 (http)
|
||||
...
|
||||
|
||||
Or any other port will do, if taken. Remember this number.
|
||||
|
||||
### Build and launch
|
||||
|
||||
nano /etc/default/docker
|
||||
|
||||
Uncomment this line:
|
||||
|
||||
DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"
|
||||
|
||||
Restart Docker:
|
||||
|
||||
service docker restart
|
||||
|
||||
Now build:
|
||||
|
||||
./launcher bootstrap app
|
||||
./launcher start app
|
||||
|
||||
## Web Server Configuration
|
||||
|
||||
You will need to configure your web server to proxy requests to Discourse.
|
||||
|
||||
A minimal Apache config might look like:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName discourse.example.com
|
||||
ProxyPass / http://0.0.0.0:7890/
|
||||
ProxyPassReverse / http://0.0.0.0:7890/
|
||||
</VirtualHost>
|
||||
|
||||
A minimal Nginx config might look like:
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name discourse.example.com;
|
||||
location / {
|
||||
include proxy_params;
|
||||
proxy_pass http://127.0.0.1:7890;
|
||||
}
|
||||
}
|
||||
|
||||
## Configure API
|
||||
|
||||
### Generate admin account
|
||||
|
||||
From the `/var/discourse` directory,
|
||||
|
||||
./launcher enter app
|
||||
rake admin:create
|
||||
|
||||
Follow prompts, being sure to answer `y` when asked to allow admin privileges.
|
||||
|
||||
### Create API key
|
||||
|
||||
Navigate to `discourse.example.com` and log on. Top right press the 3 lines and select `Admin`. Go to API tab and press `Generate Master API Key`.
|
||||
|
||||
Add the following values to your auth project's settings file:
|
||||
|
||||
- `DISCOURSE_URL`: `https://discourse.example.com` (do not add a trailing slash!)
|
||||
- `DISCOURSE_API_USERNAME`: the username of the admin account you generated the API key with
|
||||
- `DISCOURSE_API_KEY`: the key you just generated
|
||||
|
||||
### Configure SSO
|
||||
|
||||
Navigate to `discourse.example.com` and log in. Back to the admin site, scroll down to find SSO settings and set the following:
|
||||
|
||||
- `enable_sso`: True
|
||||
- `sso_url`: `http://example.com/discourse/sso`
|
||||
- `sso_secret`: some secure key
|
||||
|
||||
Save, now set `DISCOURSE_SSO_SECRET` in your auth project's settings file to the secure key you just put in Discourse.
|
||||
|
||||
Finally run migrations and restart Gunicorn and Celery.
|
||||
29
docs/features/services/index.md
Normal file
29
docs/features/services/index.md
Normal file
@@ -0,0 +1,29 @@
|
||||
# Services
|
||||
|
||||
**Alliance Auth** supports managing access to many 3rd party services and apps. This section describes which services are supported and how to install and configure them. Please note that any service need to be installed and configured before it can be used.
|
||||
|
||||
## Supported Services
|
||||
|
||||
```eval_rst
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
discord
|
||||
discourse
|
||||
mumble
|
||||
openfire
|
||||
phpbb3
|
||||
smf
|
||||
teamspeak3
|
||||
xenforo
|
||||
```
|
||||
|
||||
## Tools
|
||||
|
||||
```eval_rst
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
nameformats
|
||||
permissions
|
||||
```
|
||||
106
docs/features/services/mumble.md
Normal file
106
docs/features/services/mumble.md
Normal file
@@ -0,0 +1,106 @@
|
||||
# Mumble
|
||||
|
||||
## Prepare Your Settings
|
||||
In your auth project's settings file, do the following:
|
||||
- Add `'allianceauth.services.modules.mumble',` to your `INSTALLED_APPS` list
|
||||
- Append the following to your local.py settings file:
|
||||
|
||||
```python
|
||||
# Mumble Configuration
|
||||
MUMBLE_URL = ""
|
||||
```
|
||||
|
||||
## Overview
|
||||
Mumble is a free voice chat server. While not as flashy as TeamSpeak, it has all the functionality and is easier to customize. And is better. I may be slightly biased.
|
||||
|
||||
## Dependencies
|
||||
The mumble server package can be retrieved from a repository we need to add, mumble/release.
|
||||
|
||||
apt-add-repository ppa:mumble/release
|
||||
apt-get update
|
||||
|
||||
Now two packages need to be installed:
|
||||
|
||||
apt-get install python-software-properties mumble-server
|
||||
|
||||
Download the appropriate authenticator release from [the authenticator repository](https://gitlab.com/allianceauth/mumble-authenticator) and install the python dependencies for it:
|
||||
|
||||
pip install -r requirements.txt
|
||||
|
||||
## Configuring Mumble
|
||||
Mumble ships with a configuration file that needs customization. By default it’s located at /etc/mumble-server.ini. Open it with your favourite text editor:
|
||||
|
||||
nano /etc/mumble-server.ini
|
||||
|
||||
REQUIRED: To enable the ICE authenticator, edit the following:
|
||||
|
||||
- `icesecretwrite=MY_CLEVER_PASSWORD`, obviously choosing a secure password
|
||||
- ensure the line containing `Ice="tcp -h 127.0.0.1 -p 6502"` is uncommented
|
||||
|
||||
By default mumble operates on SQLite which is fine, but slower than a dedicated MySQL server. To customize the database, edit the following:
|
||||
|
||||
- uncomment the database line, and change it to `database=alliance_mumble`
|
||||
- `dbDriver=QMYSQL`
|
||||
- `dbUsername=allianceserver` or whatever you called the Alliance Auth MySQL user
|
||||
- `dbPassword=` that user’s password
|
||||
- `dbPort=3306`
|
||||
- `dbPrefix=murmur_`
|
||||
|
||||
To name your root channel, uncomment and set `registerName=` to whatever cool name you want
|
||||
|
||||
Save and close the file.
|
||||
|
||||
To get Mumble superuser account credentials, run the following:
|
||||
|
||||
dpkg-reconfigure mumble-server
|
||||
|
||||
Set the password to something you’ll remember and write it down. This is needed to manage ACLs.
|
||||
|
||||
Now restart the server to see the changes reflected.
|
||||
|
||||
service mumble-server restart
|
||||
|
||||
That’s it! Your server is ready to be connected to at example.com:64738
|
||||
|
||||
## Configuring the Authenticator
|
||||
|
||||
The ICE authenticator lives in the mumble-authenticator repository, cd to the directory where you cloned it.
|
||||
|
||||
Make a copy of the default config:
|
||||
|
||||
cp authenticator.ini.example authenticator.ini
|
||||
|
||||
Edit `authenticator.ini` and change these values:
|
||||
|
||||
- `[database]`
|
||||
- `user = ` your allianceserver MySQL user
|
||||
- `password = ` your allianceserver MySQL user's password
|
||||
- `[ice]`
|
||||
- `secret = ` the `icewritesecret` password set earlier
|
||||
|
||||
Test your configuration by starting it: `python authenticator.py`
|
||||
|
||||
## Running the Authenticator
|
||||
|
||||
The authenticator needs to be running 24/7 to validate users on Mumble. This can be achieved by adding a section to your auth project's supervisor config file like the following example:
|
||||
|
||||
```
|
||||
[program:authenticator]
|
||||
command=/path/to/venv/bin/python authenticator.py
|
||||
directory=/path/to/authenticator/directory/
|
||||
user=allianceserver
|
||||
stdout_logfile=/path/to/authenticator/directory/authenticator.log
|
||||
stderr_logfile=/path/to/authenticator/directory/authenticator.log
|
||||
autostart=true
|
||||
autorestart=true
|
||||
startsecs=10
|
||||
priority=998
|
||||
```
|
||||
|
||||
|
||||
Note that groups will only be created on Mumble automatically when a user joins who is in the group.
|
||||
|
||||
## Prepare Auth
|
||||
In your project's settings file, set `MUMBLE_URL` to the public address of your mumble server. Do not include any leading `http://` or `mumble://`.
|
||||
|
||||
Run migrations and restart Gunicorn and Celery to complete setup.
|
||||
@@ -1,11 +1,8 @@
|
||||
# Services Name Formats
|
||||
|
||||
```eval_rst
|
||||
.. note::
|
||||
New in 2.0
|
||||
```
|
||||
This app allows you to customize how usernames for services are created.
|
||||
|
||||
Each service's username or nickname, depending on which the service supports, can be customised through the use of the Name Formatter config provided the service supports custom formats. This config can be found in the admin panel under **Services -> Name format config**
|
||||
Each service's username or nickname, depending on which the service supports, can be customized through the use of the Name Formatter config provided the service supports custom formats. This config can be found in the admin panel under **Services -> Name format config**
|
||||
|
||||
Currently the following services support custom name formats:
|
||||
|
||||
@@ -35,24 +32,24 @@ Currently the following services support custom name formats:
|
||||
|
||||
```eval_rst
|
||||
.. note::
|
||||
It's important to note here, before we get into what you can do with a name formatter, that before the generated name is passed off to the service to create an account it will be sanitised to remove characters (the letters and numbers etc.) that the service cannot support. This means that, despite what you configured, the service may display something different. It is up to you to test your formatter and understand how your format may be disrupted by a certain services sanitisation function.
|
||||
It's important to note here, before we get into what you can do with a name formatter, that before the generated name is passed off to the service to create an account it will be sanitized to remove characters (the letters and numbers etc.) that the service cannot support. This means that, despite what you configured, the service may display something different. It is up to you to test your formatter and understand how your format may be disrupted by a certain services sanitization function.
|
||||
```
|
||||
|
||||
## Available format data
|
||||
|
||||
The following fields are available from a users account and main character:
|
||||
|
||||
- `username` - Alliance Auth username
|
||||
- `character_id`
|
||||
- `character_name`
|
||||
- `corp_id`
|
||||
- `corp_name`
|
||||
- `corp_ticker`
|
||||
- `alliance_id`
|
||||
- `alliance_name`
|
||||
- `alliance_ticker`
|
||||
- `alliance_or_corp_name` (defaults to Corporation name if there is no Alliance)
|
||||
- `alliance_or_corp_ticker` (defaults to Corporation ticker if there is no Alliance)
|
||||
- `username` - Alliance Auth username
|
||||
- `character_id`
|
||||
- `character_name`
|
||||
- `corp_id`
|
||||
- `corp_name`
|
||||
- `corp_ticker`
|
||||
- `alliance_id`
|
||||
- `alliance_name`
|
||||
- `alliance_ticker`
|
||||
- `alliance_or_corp_name` (defaults to Corporation name if there is no Alliance)
|
||||
- `alliance_or_corp_ticker` (defaults to Corporation ticker if there is no Alliance)
|
||||
|
||||
## Building a formatter string
|
||||
|
||||
@@ -61,6 +58,7 @@ The name formatter uses the advanced string formatting specified by [PEP-3101](h
|
||||
A more digestible documentation of string formatting in Python is available on the [PyFormat](https://pyformat.info/) website.
|
||||
|
||||
Some examples of strings you could use:
|
||||
|
||||
```eval_rst
|
||||
+------------------------------------------+---------------------------+
|
||||
| Formatter | Result |
|
||||
137
docs/features/services/openfire.md
Normal file
137
docs/features/services/openfire.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# Openfire
|
||||
|
||||
Openfire is a Jabber (XMPP) server.
|
||||
|
||||
## Prepare Your Settings
|
||||
|
||||
- Add `'allianceauth.services.modules.openfire',` to your `INSTALLED_APPS` list
|
||||
- Append the following to your auth project's settings file:
|
||||
|
||||
```python
|
||||
# Jabber Configuration
|
||||
JABBER_URL = ""
|
||||
JABBER_PORT = 5223
|
||||
JABBER_SERVER = ""
|
||||
OPENFIRE_ADDRESS = ""
|
||||
OPENFIRE_SECRET_KEY = ""
|
||||
BROADCAST_USER = ""
|
||||
BROADCAST_USER_PASSWORD = ""
|
||||
BROADCAST_SERVICE_NAME = "broadcast"
|
||||
```
|
||||
|
||||
## Dependencies
|
||||
Openfire require a Java 8 runtime environment.
|
||||
|
||||
Ubuntu:
|
||||
|
||||
apt-get install openjdk-8-jdk
|
||||
|
||||
CentOS:
|
||||
|
||||
yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
|
||||
|
||||
## Setup
|
||||
### Download Installer
|
||||
Openfire is not available through repositories so we need to get a package from the developer.
|
||||
|
||||
On your PC, navigate to the [Ignite Realtime downloads section](https://www.igniterealtime.org/downloads/index.jsp), and under Openfire select Linux, click on the Ubuntu: Debian package (second from bottom of list, ends with .deb) or CentOS: RPM Package (no JRE bundled, as we have installed it on the host)
|
||||
|
||||
Retrieve the file location by copying the URL from the “click here” link, depending on your browser you may have a Copy Link or similar option in your right click menu.
|
||||
|
||||
In the console, ensure you’re in your user’s home directory: `cd ~`
|
||||
|
||||
Now download the package. Replace the link below with the link you got earlier.
|
||||
|
||||
wget https://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_4.2.3_all.deb
|
||||
|
||||
Now install from the package. Replace the filename with your filename (the last part of the download URL is the file name)
|
||||
|
||||
Ubuntu:
|
||||
|
||||
dpkg -i openfire_4.2.3_all.deb
|
||||
|
||||
CentOS:
|
||||
|
||||
yum install -y openfire-4.2.3-1.noarch.rpm
|
||||
|
||||
### Create Database
|
||||
Performance is best when working from a SQL database. If you installed MySQL or MariaDB alongside your auth project, go ahead and create a database for Openfire:
|
||||
|
||||
mysql -u root -p
|
||||
create database alliance_jabber;
|
||||
grant all privileges on alliance_jabber . * to 'allianceserver'@'localhost';
|
||||
exit;
|
||||
|
||||
### Web Configuration
|
||||
The remainder of the setup occurs through Openfire’s web interface. Navigate to http://example.com:9090, or if you’re behind CloudFlare, go straight to your server’s IP:9090.
|
||||
|
||||
Select your language. I sure hope it’s English if you’re reading this guide.
|
||||
|
||||
Under Server Settings, set the Domain to `example.com` replacing it with your actual domain. Don’t touch the rest.
|
||||
|
||||
Under Database Settings, select `Standard Database Connection`
|
||||
|
||||
On the next page, select `MySQL` from the dropdown list and change the following:
|
||||
- `[server]` is replaced by `127.0.0.1`
|
||||
- `[database]` is replaced by the name of the database to be used by Openfire
|
||||
- enter the login details for your auth project's database user
|
||||
|
||||
If Openfire returns with a failed to connect error, re-check these settings. Note the lack of square brackets.
|
||||
|
||||
Under Profile Settings, leave `Default` selected.
|
||||
|
||||
Create an administrator account. The actual name is irrelevant, just don’t lose this login information.
|
||||
|
||||
Finally, log in to the console with your admin account.
|
||||
|
||||
Edit your auth project's settings file and enter the values you just set:
|
||||
- `JABBER_URL` is the pubic address of your jabber server
|
||||
- `JABBER_PORT` is the port for clients to connect to (usually 5223)
|
||||
- `JABBER_SERVER` is the name of the jabber server. If you didn't alter it during install it'll usually be your domain (eg `example.com`)
|
||||
- `OPENFIRE_ADDRESS` is the web address of Openfire's web interface. Use http:// with port 9090 or https:// with port 9091 if you configure SSL in Openfire
|
||||
|
||||
### REST API Setup
|
||||
Navigate to the `plugins` tab, and then `Available Plugins` on the left navigation bar. You’ll need to fetch the list of available plugins by clicking the link.
|
||||
|
||||
Once loaded, press the green plus on the right for `REST API`.
|
||||
|
||||
Navigate the `Server` tab, `Sever Settings` subtab. At the bottom of the left navigation bar select `REST API`.
|
||||
|
||||
Select `Enabled`, and `Secret Key Auth`. Update your auth project's settings with this secret key as `OPENFIRE_SECRET_KEY`.
|
||||
|
||||
### Broadcast Plugin Setup
|
||||
|
||||
Navigate to the `Users/Groups` tab and select `Create New User` from the left navigation bar.
|
||||
|
||||
Pick a username (e.g. `broadcast`) and password for your ping user. Enter these in your auth project's settings file as `BROADCAST_USER` and `BROADCAST_USER_PASSWORD`. Note that `BROADCAST_USER` needs to be in the format `user@example.com` matching your jabber server name. Press `Create User` to save this user.
|
||||
|
||||
Broadcasting requires a plugin. Navigate to the `plugins` tab, press the green plus for the `Broadcast` plugin.
|
||||
|
||||
Navigate to the `Server` tab, `Server Manager` subtab, and select `System Properties`. Enter the following:
|
||||
|
||||
- Name: `plugin.broadcast.disableGroupPermissions`
|
||||
- Value: `True`
|
||||
- Do not encrypt this property value
|
||||
- Name: `plugin.broadcast.allowedUsers`
|
||||
- Value: `broadcast@example.com`, replacing the domain name with yours
|
||||
- Do not encrypt this property value
|
||||
|
||||
If you have troubles getting broadcasts to work, you can try setting the optional (you will need to add it) `BROADCAST_IGNORE_INVALID_CERT` setting to `True`. This will allow invalid certificates to be used when connecting to the Openfire server to send a broadcast.
|
||||
|
||||
### Preparing Auth
|
||||
|
||||
Once all settings are entered, run migrations and restart Gunicorn and Celery.
|
||||
|
||||
### Group Chat
|
||||
Channels are available which function like a chat room. Access can be controlled either by password or ACL (not unlike mumble).
|
||||
|
||||
Navigate to the `Group Chat` tab and select `Create New Room` from the left navigation bar.
|
||||
- Room ID is a short, easy-to-type version of the room’s name users will connect to
|
||||
- Room Name is the full name for the room
|
||||
- Description is short text describing the room’s purpose
|
||||
- Set a password if you want password authentication
|
||||
- Every other setting is optional. Save changes.
|
||||
|
||||
Now select your new room. On the left navigation bar, select `Permissions`.
|
||||
|
||||
ACL is achieved by assigning groups to each of the three tiers: `Owners`, `Admins` and `Members`. `Outcast` is the blacklist. You’ll usually only be assigning groups to the `Member` category.
|
||||
33
docs/features/services/permissions.md
Normal file
33
docs/features/services/permissions.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Service Permissions
|
||||
|
||||
In the past, access to services was dictated by a list of settings in `settings.py`, granting access to each particular service for Members and/or Blues. This meant that granting access to a service was very broad and rigidly structured around these two states.
|
||||
|
||||
## Permissions based access
|
||||
|
||||
Instead of granting access to services by the previous rigid structure, access to services is now granted by the built in Django permissions system. This means that service access can be more granular, allowing only certain states, certain groups, for instance Corp CEOs, or even individual user access to each enabled service.
|
||||
|
||||
```eval_rst
|
||||
.. important::
|
||||
If you grant access to an individual user, they will have access to that service regardless of whether or not they are a member.
|
||||
```
|
||||
|
||||
Each service has an access permission defined, named like `Can access the <service name> service`.
|
||||
|
||||
To mimick the old behaviour of enabling services for all members, you would select the `Member` group from the admin panel, add the required service permission to the group and save. Likewise for Blues, select the `Blue` group and add the required permission.
|
||||
|
||||
A user can be granted the same permission from multiple sources. e.g. they may have it granted by several groups and directly granted on their account as well. Auth will not remove their account until all instances of the permission for that service have been revoked.
|
||||
|
||||
## Removing access
|
||||
|
||||
```eval_rst
|
||||
.. danger::
|
||||
Access removal is processed immediately after removing a permission from a user or group. If you remove access from a large group, such as Member, it will immediately remove all users from that service.
|
||||
```
|
||||
|
||||
When you remove a service permission from a user, a signal is triggered which will activate an immediate permission check. For users this will trigger an access check for all services. For groups, due to the potential extra load, only the services whose permissions have changed will be verified, and only the users in that group.
|
||||
|
||||
If a user no longer has permission to access the service when this permissions check is triggered, that service will be immediately disabled for them.
|
||||
|
||||
### Disabling user accounts
|
||||
|
||||
When you unset a user as active in the admin panel, all of that users service accounts will be immediately disabled or removed. This is due to the built in behaviour of the Django permissions system, which will return False for all permissions if a users account is disabled, regardless of their actual permissions state.
|
||||
156
docs/features/services/phpbb3.md
Normal file
156
docs/features/services/phpbb3.md
Normal file
@@ -0,0 +1,156 @@
|
||||
# phpBB3
|
||||
|
||||
## Overview
|
||||
phpBB is a free PHP-based forum.
|
||||
|
||||
## Dependencies
|
||||
phpBB3 requires PHP installed in your web server. Apache has `mod_php`, NGINX requires `php-fpm`. See [the official guide](https://www.phpbb.com/community/docs/INSTALL.html) for PHP package requirements.
|
||||
|
||||
## Prepare Your Settings
|
||||
In your auth project's settings file, do the following:
|
||||
- Add `'allianceauth.services.modules.phpbb3',` to your `INSTALLED_APPS` list
|
||||
- Append the following to the bottom of the settings file:
|
||||
|
||||
```python
|
||||
# PHPBB3 Configuration
|
||||
PHPBB3_URL = ''
|
||||
DATABASES['phpbb3'] = {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': 'alliance_forum',
|
||||
'USER': 'allianceserver-phpbb3',
|
||||
'PASSWORD': 'password',
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': '3306',
|
||||
}
|
||||
```
|
||||
|
||||
## Setup
|
||||
### Prepare the Database
|
||||
Create a database to install phpBB3 in.
|
||||
|
||||
mysql -u root -p
|
||||
create database alliance_forum;
|
||||
grant all privileges on alliance_forum . * to 'allianceserver'@'localhost';
|
||||
exit;
|
||||
|
||||
Edit your auth project's settings file and fill out the `DATABASES['phpbb3']` part.
|
||||
|
||||
### Download phpBB3
|
||||
phpBB3 is available as a zip from their website. Navigate to the website’s [downloads section](https://www.phpbb.com/downloads/) using your PC browser and copy the URL for the latest version zip.
|
||||
|
||||
In the console, navigate to your user’s home directory: `cd ~`
|
||||
|
||||
Now download using wget, replacing the URL with the URL for the package you just retrieved
|
||||
|
||||
wget https://www.phpbb.com/files/release/phpBB-3.2.2.zip
|
||||
|
||||
This needs to be unpackaged. Unzip it, replacing the file name with that of the file you just downloaded
|
||||
|
||||
unzip phpBB-3.2.2.zip
|
||||
|
||||
Now we need to move this to our web directory. Usually `/var/www/forums`.
|
||||
|
||||
mv phpBB3 /var/www/forums
|
||||
|
||||
The web server needs read/write permission to this folder
|
||||
|
||||
Apache: `chown -R www-data:www-data /var/www/forums`
|
||||
Nginx: `chown -R nginx:nginx /var/www/forums`
|
||||
|
||||
```eval_rst
|
||||
.. tip::
|
||||
Nginx: Some distributions use the ``www-data:www-data`` user:group instead of ``nginx:nginx``. If you run into problems with permissions try it instead.
|
||||
..
|
||||
```
|
||||
|
||||
### Configuring Web Server
|
||||
You will need to configure you web server to serve PHPBB3 before proceeding with installation.
|
||||
|
||||
A minimal Apache config file might look like:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName forums.example.com
|
||||
DocumentRoot /var/www/forums
|
||||
<Directory /var/www/forums>
|
||||
Require all granted
|
||||
DirectoryIndex index.php
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
A minimal Nginx config file might look like:
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name forums.example.com;
|
||||
root /var/www/forums;
|
||||
index index.php;
|
||||
access_log /var/logs/forums.access.log;
|
||||
|
||||
location ~ /(config\.php|common\.php|cache|files|images/avatars/upload|includes|store) {
|
||||
deny all;
|
||||
return 403;
|
||||
}
|
||||
|
||||
location ~* \.(gif|jpe?g|png|css)$ {
|
||||
expires 30d;
|
||||
}
|
||||
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_pass unix:/tmp/php.socket;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
|
||||
Enter your forum's web address as the `PHPBB3_URL` setting in your auth project's settings file.
|
||||
|
||||
### Web Install
|
||||
Navigate to your forums web address where you will be presented with an installer.
|
||||
|
||||
Click on the `Install` tab.
|
||||
|
||||
All the requirements should be met. Press `Start Install`.
|
||||
|
||||
Under Database Settings, set the following:
|
||||
- Database Type is `MySQL`
|
||||
- Database Server Hostname is `127.0.0.1`
|
||||
- Database Server Port is left blank
|
||||
- Database Name is `alliance_forum`
|
||||
- Database Username is your auth MySQL user, usually `allianceserver`
|
||||
- Database Password is this user’s password
|
||||
|
||||
If you use a table prefix other than the standard `phpbb_` you need to add an additional setting to your auth project's settings file, `PHPBB3_TABLE_PREFIX = ''`, and enter the prefix.
|
||||
|
||||
You should see `Successful Connection` and proceed.
|
||||
|
||||
Enter administrator credentials on the next page.
|
||||
|
||||
Everything from here should be intuitive.
|
||||
|
||||
phpBB will then write its own config file.
|
||||
|
||||
### Open the Forums
|
||||
Before users can see the forums, we need to remove the install directory
|
||||
|
||||
rm -rf /var/www/forums/install
|
||||
|
||||
### Enabling Avatars
|
||||
|
||||
AllianceAuth sets user avatars to their character portrait when the account is created or password reset. We need to allow external URLs for avatars for them to behave properly. Navigate to the admin control panel for phpbb3, and under the `General` tab, along the left navigation bar beneath `Board Configuration`, select `Avatar Settings`. Set `Enable Remote Avatars` to `Yes` and then `Submit`.
|
||||
|
||||
You can allow members to overwrite the portrait with a custom image if desired. Navigate to `Users and Groups`, `Group Permissions`, select the appropriate group (usually `Member` if you want everyone to have this ability), expand `Advanced Permissions`, under the `Profile` tab, set `Can Change Avatars` to `Yes`, and press `Apply Permissions`.
|
||||
|
||||
## Setting the default theme
|
||||
|
||||
Users generated via Alliance Auth do not have a default theme set. You will need to set this on the phpbb_users table in SQL
|
||||
|
||||
mysql -u root -p
|
||||
use alliance_forum;
|
||||
alter table phpbb_users change user_style user_style int not null default 1
|
||||
|
||||
If you would like to use a theme that is NOT prosilver or theme "1". You will need to deactivate prosilver, this will then fall over to the set forum wide default.
|
||||
|
||||
### Prepare Auth
|
||||
Once settings have been configured, run migrations and restart Gunicorn and Celery.
|
||||
118
docs/features/services/smf.md
Normal file
118
docs/features/services/smf.md
Normal file
@@ -0,0 +1,118 @@
|
||||
# SMF
|
||||
|
||||
## Overview
|
||||
SMF is a free PHP-based forum.
|
||||
|
||||
## Dependencies
|
||||
SMF requires PHP installed in your web server. Apache has `mod_php`, NGINX requires `php-fpm`. More details can be found in the [SMF requirements page.](https://download.simplemachines.org/requirements.php)
|
||||
|
||||
## Prepare Your Settings
|
||||
In your auth project's settings file, do the following:
|
||||
- Add `'allianceauth.services.modules.smf',` to your `INSTALLED_APPS` list
|
||||
- Append the following to the bottom of the settings file:
|
||||
|
||||
```python
|
||||
# SMF Configuration
|
||||
SMF_URL = ''
|
||||
DATABASES['smf'] = {
|
||||
'ENGINE': 'django.db.backends.mysql',
|
||||
'NAME': 'alliance_smf',
|
||||
'USER': 'allianceserver-smf',
|
||||
'PASSWORD': 'password',
|
||||
'HOST': '127.0.0.1',
|
||||
'PORT': '3306',
|
||||
}
|
||||
```
|
||||
|
||||
## Setup
|
||||
### Download SMF
|
||||
Using your browser, you can download the latest version of SMF to your desktop computer. All SMF downloads can be found at SMF Downloads. The latest recommended version will always be available at http://www.simplemachines.org/download/index.php/latest/install/. Retrieve the file location from the hyperlinked box icon for the zip full install, depending on your browser you may have a Copy Link or similar option in your right click menu.
|
||||
|
||||
|
||||
Download using wget, replacing the URL with the URL for the package you just retrieved
|
||||
|
||||
wget https://download.simplemachines.org/index.php?thanks;filename=smf_2-0-15_install.zip
|
||||
|
||||
This needs to be unpackaged. Unzip it, replacing the file name with that of the file you just downloaded
|
||||
|
||||
unzip smf_2-0-15_install.zip
|
||||
|
||||
Now we need to move this to our web directory. Usually `/var/www/forums`.
|
||||
|
||||
mv smf /var/www/forums
|
||||
|
||||
The web server needs read/write permission to this folder
|
||||
|
||||
Apache: `chown -R www-data:www-data /var/www/forums`
|
||||
Nginx: `chown -R nginx:nginx /var/www/forums`
|
||||
|
||||
```eval_rst
|
||||
.. tip::
|
||||
Nginx: Some distributions use the ``www-data:www-data`` user:group instead of ``nginx:nginx``. If you run into problems with permissions try it instead.
|
||||
..
|
||||
```
|
||||
|
||||
### Database Preparation
|
||||
SMF needs a database. Create one:
|
||||
|
||||
mysql -u root -p
|
||||
create database alliance_smf;
|
||||
grant all privileges on alliance_smf . * to 'allianceserver'@'localhost';
|
||||
exit;
|
||||
|
||||
Enter the database information into the `DATABASES['smf']` section of your auth project's settings file.
|
||||
|
||||
### Web Server Configuration
|
||||
Your web server needs to be configured to serve SMF.
|
||||
|
||||
A minimal Apache config might look like:
|
||||
|
||||
<VirtualHost *:80>
|
||||
ServerName forums.example.com
|
||||
DocumentRoot /var/www/forums
|
||||
<Directory "/var/www/forums">
|
||||
DirectoryIndex index.php
|
||||
</Directory>
|
||||
</VirtualHost>
|
||||
|
||||
A minimal Nginx config might look like:
|
||||
|
||||
server {
|
||||
listen 80;
|
||||
server_name forums.example.com;
|
||||
root /var/www/forums;
|
||||
index index.php;
|
||||
access_log /var/logs/forums.access.log;
|
||||
|
||||
location ~ \.php$ {
|
||||
try_files $uri =404;
|
||||
fastcgi_pass unix:/tmp/php.socket;
|
||||
fastcgi_index index.php;
|
||||
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
|
||||
include fastcgi_params;
|
||||
}
|
||||
}
|
||||
|
||||
Enter the web address to your forums into the `SMF_URL` setting in your auth project's settings file.
|
||||
|
||||
### Web Install
|
||||
Navigate to your forums address where you will be presented with an installer.
|
||||
|
||||
Click on the `Install` tab.
|
||||
|
||||
All the requirements should be met. Press `Start Install`.
|
||||
|
||||
Under Database Settings, set the following:
|
||||
- Database Type is `MySQL`
|
||||
- Database Server Hostname is `127.0.0.1`
|
||||
- Database Server Port is left blank
|
||||
- Database Name is `alliance_smf`
|
||||
- Database Username is your auth MySQL user, usually `allianceserver`
|
||||
- Database Password is this user’s password
|
||||
|
||||
If you use a table prefix other than the standard `smf_` you need to add an additional setting to your auth project's settings file, `SMF_TABLE_PREFIX = ''`, and enter the prefix.
|
||||
|
||||
Follow the directions in the installer.
|
||||
|
||||
### Preparing Auth
|
||||
Once settings are entered, apply migrations and restart Gunicorn and Celery.
|
||||
131
docs/features/services/teamspeak3.md
Normal file
131
docs/features/services/teamspeak3.md
Normal file
@@ -0,0 +1,131 @@
|
||||
# TeamSpeak 3
|
||||
|
||||
## Overview
|
||||
TeamSpeak3 is the most popular VOIP program for gamers.
|
||||
|
||||
But have you considered using Mumble? Not only is it free, but it has features and performance far superior to Teamspeak3.
|
||||
|
||||
## Setup
|
||||
Sticking with TS3? Alright, I tried.
|
||||
|
||||
### Prepare Your Settings
|
||||
In your auth project's settings file, do the following:
|
||||
- Add `'allianceauth.services.modules.teamspeak3',` to your `INSTALLED_APPS` list
|
||||
- Append the following to the bottom of the settings file:
|
||||
|
||||
```python
|
||||
# Teamspeak3 Configuration
|
||||
TEAMSPEAK3_SERVER_IP = '127.0.0.1'
|
||||
TEAMSPEAK3_SERVER_PORT = 10011
|
||||
TEAMSPEAK3_SERVERQUERY_USER = 'serveradmin'
|
||||
TEAMSPEAK3_SERVERQUERY_PASSWORD = ''
|
||||
TEAMSPEAK3_VIRTUAL_SERVER = 1
|
||||
TEAMSPEAK3_PUBLIC_URL = ''
|
||||
|
||||
CELERYBEAT_SCHEDULE['run_ts3_group_update'] = {
|
||||
'task': 'allianceauth.services.modules.teamspeak3.tasks.run_ts3_group_update',
|
||||
'schedule': crontab(minute='*/30'),
|
||||
}
|
||||
```
|
||||
|
||||
### Download Installer
|
||||
To install we need a copy of the server. You can find the latest version from [this dl server](http://dl.4players.de/ts/releases/) (I’d recommend getting the latest stable version – find this version number from the [TeamSpeak site](https://www.teamspeak.com/downloads#)). Be sure to get a link to the Linux version.
|
||||
|
||||
Download the server, replacing the link with the link you got earlier.
|
||||
|
||||
http://dl.4players.de/ts/releases/3.1.1/teamspeak3-server_linux_amd64-3.1.1.tar.bz2
|
||||
|
||||
Now we need to extract the file.
|
||||
|
||||
tar -xf teamspeak3-server_linux_amd64-3.1.0.tar.bz2
|
||||
|
||||
### Create User
|
||||
TeamSpeak needs its own user.
|
||||
|
||||
adduser --disabled-login teamspeak
|
||||
|
||||
### Install Binary
|
||||
Now we move the server binary somewhere more accessible and change its ownership to the new user.
|
||||
|
||||
mv teamspeak3-server_linux_amd64 /usr/local/teamspeak
|
||||
chown -R teamspeak:teamspeak /usr/local/teamspeak
|
||||
|
||||
### Startup
|
||||
Now we generate a startup script so TeamSpeak comes up with the server.
|
||||
|
||||
ln -s /usr/local/teamspeak/ts3server_startscript.sh /etc/init.d/teamspeak
|
||||
update-rc.d teamspeak defaults
|
||||
|
||||
Finally we start the server.
|
||||
|
||||
service teamspeak start
|
||||
|
||||
### Update Settings
|
||||
The console will spit out a block of text. If it does not appear, it can be found with `service teamspeak status`. **SAVE THIS**.
|
||||
|
||||
If you plan on claiming the ServerAdmin token, do so with a different TeamSpeak client profile than the one used for your auth account, or you will lose your admin status.
|
||||
|
||||
Edit the settings you added to your auth project's settings file earlier, entering the following:
|
||||
- `TEAMSPEAK3_SERVERQUERY_USER` is `loginname` from that block of text it just spat out (usually `serveradmin`)
|
||||
- `TEAMSPEAK3_SERVERQUERY_PASSWORD` is `password` from that block of text it just spat out
|
||||
- `TEAMSPEAK_VIRTUAL_SERVER` is the virtual server ID of the server to be managed - it will only ever not be 1 if your server is hosted by a professional company
|
||||
- `TEAMSPEAK3_PUBLIC_URL` is the public address of your TeamSpeak server. Do not include any leading http:// or teamspeak://
|
||||
|
||||
Once settings are entered, run migrations and restart Gunicorn and Celery.
|
||||
|
||||
### Generate User Account
|
||||
And now we can generate ourselves a user account. Navigate to the services in Alliance Auth for your user account and press the checkmark for TeamSpeak 3.
|
||||
|
||||
Click the URL provided to automatically connect to our server. It will prompt you to redeem the serveradmin token, enter the `token` from startup.
|
||||
|
||||
### Groups
|
||||
|
||||
Now we need to make groups. AllianceAuth handles groups in teamspeak differently: instead of creating groups it creates an association between groups in TeamSpeak and groups in AllianceAuth. Go ahead and make the groups you want to associate with auth groups, keeping in mind multiple TeamSpeak groups can be associated with a single auth group.
|
||||
|
||||
Navigate back to the AllianceAuth admin interface (example.com/admin) and under `Services`, select `Auth / TS Groups`. In the top-right corner click `Add`.
|
||||
|
||||
The dropdown box provides all auth groups. Select one and assign TeamSpeak groups from the panels below. If these panels are empty, wait a minute for the database update to run, or see the [troubleshooting section](#ts-group-models-not-populating-on-admin-site) below.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### `Insufficient client permissions (failed on Invalid permission: 0x26)`
|
||||
|
||||
Using the advanced permissions editor, ensure the `Guest` group has the permission `Use Privilege Keys to gain permissions` (under `Virtual Server` expand the `Administration` section)
|
||||
|
||||
To enable advanced permissions, on your client go to the `Tools` menu, `Application`, and under the `Misc` section, tick `Advanced permission system`
|
||||
|
||||
### TS group models not populating on admin site
|
||||
The method which populates these runs every 30 minutes. To populate manually, start a django shell:
|
||||
|
||||
python manage.py shell
|
||||
|
||||
And execute the update:
|
||||
|
||||
from services.modules.teamspeak3.tasks import Teamspeak3Tasks
|
||||
Teamspeak3Tasks.run_ts3_group_update()
|
||||
|
||||
Ensure that command does not return an error.
|
||||
|
||||
### `2564 access to default group is forbidden`
|
||||
|
||||
This usually occurs because auth is trying to remove a user from the `Guest` group (group ID 8). The guest group is only assigned to a user when they have no other groups, unless you have changed the default teamspeak server config.
|
||||
|
||||
Teamspeak servers v3.0.13 and up are especially susceptible to this. Ensure the Channel Admin Group is not set to `Guest (8)`. Check by right clicking on the server name, `Edit virtual server`, and in the middle of the panel select the `Misc` tab.
|
||||
|
||||
### `TypeError: string indices must be integers, not str`
|
||||
|
||||
This error generally means teamspeak returned an error message that went unhandled. The full traceback is required for proper debugging, which the logs do not record. Please check the superuser notifications for this record and get in touch with a developer.
|
||||
|
||||
### `3331 flood ban`
|
||||
|
||||
This most commonly happens when your teamspeak server is externally hosted. You need to add the auth server IP to the teamspeak serverquery whitelist. This varies by provider.
|
||||
|
||||
If you have SSH access to the server hosting it, you need to locate the teamspeak server folder and add the auth server IP on a new line in `server_query_whitelist.txt`
|
||||
|
||||
### `520 invalid loginname or password`
|
||||
|
||||
The serverquery account login specified in local.py is incorrect. Please verify `TEAMSPEAK3_SERVERQUERY_USER` and `TEAMSPEAK3_SERVERQUERY_PASSWORD`. The [installation section](#update-settings) describes where to get them.
|
||||
|
||||
### `2568 insufficient client permissions`
|
||||
|
||||
This usually occurs if you've created a separate serverquery user to use with auth. It has not been assigned sufficient permissions to complete all the tasks required of it. The full list of required permissions is not known, so assign liberally.
|
||||
41
docs/features/services/xenforo.md
Normal file
41
docs/features/services/xenforo.md
Normal file
@@ -0,0 +1,41 @@
|
||||
# XenForo
|
||||
|
||||
## Overview
|
||||
[XenForo](https://xenforo.com/) is a popular paid forum. This guide will assume that you already have XenForo installed with a valid license (please keep in mind that XenForo is not free nor open-source, therefore you need to purchase a license first). If you come across any problems related with the installation of XenForo please contact their support service.
|
||||
|
||||
## Prepare Your Settings
|
||||
In your auth project's settings file, do the following:
|
||||
- Add `'allianceauth.services.modules.xenforo',` to your `INSTALLED_APPS` list
|
||||
- Append the following to your local.py settings file:
|
||||
|
||||
```python
|
||||
# XenForo Configuration
|
||||
XENFORO_ENDPOINT = 'example.com/api.php'
|
||||
XENFORO_DEFAULT_GROUP = 0
|
||||
XENFORO_APIKEY = 'yourapikey'
|
||||
```
|
||||
|
||||
## XenAPI
|
||||
|
||||
By default XenForo does not support any kind of API, however there is a third-party package called [XenAPI](https://github.com/Contex/XenAPI) which provides a simple REST interface by which we can access XenForo's functions in order to create and edit users.
|
||||
|
||||
The installation of XenAPI is pretty straight forward. The only thing you need to do is to download the `api.php` from the official repository and upload it in the root folder of your XenForo installation. The final result should look like this:
|
||||
*forumswebsite.com/***api.php**
|
||||
|
||||
Now that XenAPI is installed the only thing left to do is to provide a key.
|
||||
|
||||
```php
|
||||
$restAPI = new RestAPI('REPLACE_THIS_WITH_AN_API_KEY');
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The settings you created earlier now need to be filled out.
|
||||
|
||||
`XENFORO_ENDPOINT` is the address to the API you added. No leading `http://`, but be sure to include the `/api.php` at the end.
|
||||
|
||||
`XENFORO_DEFAULT_GROUP` is the ID of the group in XenForo auth users will be added to. Unfortunately XenAPI **cannot create new groups**, therefore you have to create a group manually and then get its ID.
|
||||
|
||||
`XENFORO_API_KEY` is the API key value you set earlier.
|
||||
|
||||
Once these are entered, run migrations and restart Gunicorn and Celery.
|
||||
@@ -1,5 +0,0 @@
|
||||
# SRP
|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.srp',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
@@ -1,5 +0,0 @@
|
||||
# Timerboard
|
||||
|
||||
## Installation
|
||||
|
||||
Add `'allianceauth.timerboard',` to your `INSTALLED_APPS` list in your auth project's settings file. Run migrations to complete installation.
|
||||
Reference in New Issue
Block a user