ThunderED EVE Discord Bot v1.3.2
Pre-releaseV1.3.2
- Added optional SkipDiscordAuthPage param to auth groups to be able to store ESI token and skip Discord auth
- Added unit tests project
- Added means to counter Linux data location problems (explanation below)
- Added delete member buttons to HRM main page
- Added filters for member lists on main HRM page
- Added UseDumpForMembers and DumpInvalidationInHours params to HRM module config
- Added new Spies list for HR members. Dumped members can be marked as Spies to avoid being recycled.
- Added new SovTrackerModule (read highlight section below)
- Added new clist command to list contracts for specified group
- Added new simplified auth management file (read highlight section below)
- Added new auth param to use only one button for authentication UseOneAuthButton
- Added support for BR web compression
- Added SpiesMailFeedChannelId to be able to feed new mail for characters marked as spies
- Enhanced HRM module access options and security (explanation below)
- Removed Discord mention from language file entry mailMsgTitle
- Removed default text for authPageHeaderText language string
- Changed default MySQL collation to utf8mb4_general_ci
- Improved HTML templating and unified CSS+JS includes
- Updated SQLite to work in WAL mode
HIGHLIGHTS
-
One auth button mode can be enabled by setting UseOneAuthButton param to true. In this case the bot will search for first group which satisfies member corp/alliance condition. There is also a change in auth process wotkflow which force users to authenticate twice if found auth group contains ESI permissions. In this case automatic redirects are used so user logs in once and select character twice.
-
Added new SovTrackerModule which now allows to track sov space holder changes and ADM index falls beyond the threshold in the filtered sets of solar systems. Systems can be filtered by ID, holder alliance, region ID and constellation ID. All filters are ADDITIVE. !!!WARNING - this module can be very resource consuming so please read following recommendations.
- Specifying HolderAlliances param will search through 5k+ entries for holder changes on each check (up to 8-10 sec processing on good PC if not prefiltered by Systems).
- Specifying Regions or Constellations will force bot to fetch system data for each entry which has mild impact on performance.
- Recommended CheckIntervalInMinutes is 30+ minutes to avoid excessive stress
- Additive filter hierarchy: Systems -> HolderAlliances -> Regions -> Constellations. The most efficient way to setup this module is to specify Systems only.
-
Added an ability to read and inject authentication data from standalone file named _simplifiedAuth.txt.
This file holds auth data in a compact CSV-like manner which can be helpful for less IT skilled admins or people who manage access right quite often. In this file all entities are identified by names instead of numeric IDs which are then looked up on ESI during the bot startup. Specified auth data will be injected into auth groups during runtime. You can even end up with empty predefined auth groups in settings.json file.
All fields are | delimeted, Discord roles are comma delimited.
Format: Exact Alliance or Corp or Character name|exact auth group name from config file|Discord role1,Discord role2
Example1: Starlane Limited|PrelimAlly|Members,[UF]
Example2: Goonswarm Federation|GuestAuthGroup|GuestRole,TempRoleYou can edit this file and use !rehash command to apply changes right away
BREAKING CHANGES
- To counter multiple problems with config and logs location under Linux we now search all sensitive data under folder named Data in bot root directory. Sensitive data is represented by config file, db file and log files. Linux users now should use Docker mount or Linux link commands to mount Data folder into the app directory.
In the following example we mount /opt/thunder directory to Data folder.
EXAMPLE:
mkdir /opt/thunder
--copy settings.json into newly created folder
docker run -p 8080:8080 -v /opt/thunder:/app/ThunderED/Data thundered:latest
WARNING!!! Config param named DatabaseFile in Database section should now contain only DB filename without a path to avoid errors.
-
Introduced AccessLists param for HRMModule which now allows advanced access distribution.
Now you can:- Limit access and display of specific user groups for certain roles and characters
- Limit access for certain roles and characters to members authed under specific group
- Limit access for certain roles and characters to members of specific corps and alliances
- Limit features access
EXAMPLE:
"AccessList": {
"accessList1": {
"UsersAccessList": [],
"RolesAccessList": [],
"AuthGroupNamesFilter": [],
"AuthAllianceIdFilter": [],
"AuthCorporationIdFilter": [],
"ApplyGroupFilterToAwaitingUsers": false,
"IsAwaitingUsersVisible": true,
"IsDumpedUsersVisible": true,
"IsAuthedUsersVisible": true,
"IsSpyUsersVisible": true,
"CanSearchMail": true,
"CanKickUsers": true,
"CanMoveToSpies": true,
"CanInspectAuthedUsers": true,
"CanInspectAwaitingUsers": true,
"CanInspectDumpedUsers": true,
"CanInspectSpyUsers": true
}
},
NOTE: For fast migration to new layout just copy old UsersAccessList and RolesAccessList content to new location
UsersAccessList and RolesAccessList acts as before limiting authentication access.
AuthGroupNamesFilter, AuthAllianceIdFilter and AuthCorporationIdFilter filters are additive. They are used to limit HR user access to view distinct members. Members are identified by their auth group name, alliance ID or corp ID according to mentioned params.
ApplyGroupFilterToAwaitingUsers will apply group name filtering to members awaiting auth (which is off by default)
Is_____UsersVisible gain access to members list of the specific section
CanSearchMail gain access to mail search functions
CanKickUsers gain access to ban hammer
CanMoveToSpies gain access to make-a-spy button for dumped users
CanInspect____Users gain access to detailed info about members of the specific section