Fix an issue with SeatGroupsController
where an unused variable blocked the edit-view to be loaded.
This new version has two main purposes:
- introduce testing
- temporally disable group memberships
Firstly i have introduced testing to strengthen my confidence in seat-groups. Doing so, i am able to work on seat-groups with the confidence i need and assure not breaking anything. Secondly, users now will lose a role gained through SeAT Group role temporally if the user group is missing a refresh token. As soon as its been regained the user group will regain the roles from its SeAT Groups he is member of and is qualified (meaning has valid affiliation) for.
This version allows the usage of seat-notifications 2.0. Be aware your subscriptions have been reset and you must resubscribe.
New features:
- Identical Missing Refresh Token SeAT-Groups notifications will not be resend within 4hrs period.
- Identical Sync SeAT-Groups notifications will not be resend within 4hrs period.
- Identical Error SeAT-Groups notifications will not be resend within 4hrs period.
Fixes:
- SeAT-Group Application notification were previously not send out correctly to all groups administrators
Small improvement based on community feedback:
- SeAT Groups are now sort alphabetically instead of in order of creation thank you @eingang for suggesting
- Fixed a bug where managed groups did not show number of open applications on button. Thank you @warlof for reporting this
- Added other outstanding applications to discord and slack notification. Thank you @warlof for suggesting this feature.
This update adds application notification about candidates which are applying to a managed group. Works only for private channel notification to managers and superusers only.
This feature was suggested by @aaronmallen. Thank you all for providing me with all this valuable feedback and ideas on how to make SeAT Group great.
This version replaces SeATGroupNotification
models in:
GroupSyncFailedNotification
listenerMissingRefreshTokenNotification
listener with correctSeatNotificationRecipient
model.
Sorry about that and thank you @GoemFunaila for reporting this issue.
Small fix to select correct notification channel
This update takes advantage on the most recent seat-notification update (>1.1.0). Notifications may now be selected individually:
- SeatGroup Sync Event: Dispatched whenever a user group is attached or detached from a role
- SeATGroup Error Event: Dispatched whenever an error happens and laravel log should be investigated
- Missing Refresh Token Event: Dispatched every time SeAT Group finds a refresh token to be missing. Please note you can stop SeAT to notify you about a certain user that might have left your corporation or sold his character by deactivating the user (link is provided inside the notification to do so).
Furthermore:
- Fixed smaller typos
- Assure
eveseat/web ~3.0.14
is present - Changed licence to MIT
- Include new seat plugin service pattern.
- Use proper form-id to subscribe to notifications
This version attempts to resolve major outages in using seat-groups >1.6.0 if not used with seat-notifications installed.
- Refactored GroupSync job to use events for missing refreshtoken, successful attaches/detached role updates and failed syncs
- Events have two listeners: one for writing a log entry and one to dispatch a notification
MissingRefreshTokenNotification
for discord contains a link to the configuration page of that user to quicker resolve false positive messages.
log events are queued into the default queue whereas notifications are prioritized. Thank you @Lawin for pointing out this bug.
Refactoring some of the logic regarding permission checks.
This update brings some minor refactoring of some logic beforeStart()
to better catch superusers and do not strip their roles.
Also notifications have been added for anyone using seat-notifications
You are going to be notified if a group receives new roles, if a group loses a role or an error happens:
This version is suited for the latest release of eveseat/web 3.0.10 and higher. SeAT now uses a newer version of datatables and therefore raw columns need to be enabled to show its html content. Also the dependency on form generator in edit blade was removed.
This is a minor usability update. All of the found improvements are based from @Eingang's Feedback. Whenever you find any issues please don't hesitate to open an issue.
- Empty corporation affiliation request caused an error. This update adds validation to form request
- Added front end validation to corporation title affiliation
- Corrected an error preventing to add multiple user groups to hidden seatgroup.
Thank you again for your feedback.
This is a security update including some smaller improvements:
- MissingRefreshToken Exception removed, however potentially gained roles by missing character are seized until refresh token is provided. Thank you @fundaris for report this issue.
- Managed Group Members don't throw null-object exceptions anymore, if a main-character has not been set. (Thank you @warlof)
- Users without a main character set will be redirected to profile settings, by trying to access seat-groups index page.
Another major update on seat-groups. Containing many demanded features such as:
- Dispatching update job via web interface.
- Seat-Groups jobs are now dispatched on
high
queue (thanks @mmolitor87 for the suggestion). - Clicking multiple times on
Add new SeAT Group
does not append multiple sets of roles anymore (thank you @MoucceuWildfire for reporting). - SeAT-Groups now only logs attached and detached role events instead of every successful run (thank you @warlof for the idea).
- Deactivated users don't raise
MissingRefreshTokenExceptions
anymore MissingRefreshTokenExceptions
are now more verbose.
As you can see many of the implemented features are based from your valuable input. Please don't hesitate to contact me IG or via slack (join plugin channel) with anything you'd like to discuss.
- Fixxed a bug causing to show all hidden-groups, instead of only the hidden-groups where a user is a member of. Thank you @jediefe for reporting this.
- Removed raw:db statements from migrations (preparation for testing).
- Added badge to
manage_members
button to indicate members in waitlist. Thank you @Busterguy for suggesting.
- missed a migration.
Introduction of Alliance Filter
- alliance filter
- styleCI Badge
- using
loadMigrationsFrom()
in ServiceProvider - refactored some classes for testing
- respect origin on SeAT-Group interaction
After this version php artisan vendor:publish --force --all
will not be needed anymore. Migrations are directly loaded from the ServiceProvider. Finally you can add alliance filters. Finally if you are working on a SeAT-Group modal, accepting or denying members will return you to the modal instead of the default index file.
This update includes preparations for package-testing and better test-coverage, an improvement to corporation_titles
table which caused users to lose corp titles in seat in some rare cases.
UI Improvements through introduction of nav-tabs and controller
- Improved SeatGroupController only returns seatgroups for which the user is allowed to see.
- Introduced Nav-tabs after community feedback of cluttered open- and manged groups (thanks @Anduriel) and some design ideas from @warlof.
- Update of README.md on github. Introduction of FAQ
Improvements on GroupSync
and some UI improvements
- Merged pull request of @warlof aiming to improve
GroupSync
job with inconsistent user_groups. Namely when a main_character is missing (which should not happen anyway). Also some logging and tagging of the job was improved. - Open-Group showed two join-buttons. Which is now fixed. Thank you @Anduriel for reporting this
- Action buttons in managed group modal collapsed in each other for large user_groups (many users). Bootstrap classes have been added to account for such cases. Thank you @Anduriel and @warlof for reporting this.
Some smaller improvements and bugfixes
- Improving
php artisan seat-groups:users:update --character_ids=ID
based on community feedback. Thank you @warlof for reporting this. - Fixing a rare bug when an managed-group is transformed to an auto group, causing the Sync to fail. Thank you @scopeh for reporting this.
- changing
affiliation
to/aff
to escape addblocker's filter. - changing from POST to a GET for current corporation & corporation_titles affiliation
- changing from POST to a GET for corporation titles
- removing unnecessary routes.
Some bug fixes:
- adapting the /affiliation url because adblockers are acting up.
- bump version.
Smaller bugfixes
- removed typo in
isQualified()
method which was blocking all_corporations affiliation. - removed some typos in changelog
- fixed detaching-error in
beforeStart()
method - added SeAT Group as Manager in panel-footer.
This update is brought to you because and thanks to mmolitor87 & Vojax. Both had very valuable input on how to make SeAT-Groups even better. Thank you for being patient with me, and keep your feedback flowing.
- Now respecting all users in a user_group in
isQualified()
method - You are able to setup a whole SeAT Group as manager of another SeAT Group
- Refactored edit-view for managed groups
- Refactored index-view for managed groups
- refactored
isManager()
method - being more strict on membership
- Changing Log from STRING to TEXT to accommodate longer messages.
- Attempting to modify LogController to resolve an issue with too large DBs
onFail
now correctly reports to log what went wrong
ATTENTION: Managers need now to be extra careful when purging members and make sure they purge all characters from a user_group, whereas before everything was bound to the main_character. If a user lacks of at least 1 character in his user_group which qualifies in respective to your configured affiliation he will get removed from the SeAT group. This means the user will lose every role bound to this SeAT Group and needs to apply/opt-in again.
This is a major update to SeAT-Groups as it introduces many asked features and refactoring lots of front end mistakes i made. This is just an initial working release. I will continue to improve SeAT Groups and refactor even classes i have introuced with this release and i see room for improvement.
-
Introducing
Corporation Title Filter
-
Refactor affiliation box on
edit
** Introducing of actions and custom validation for corporation-titles ** Serverside processed affiliation-table ** Logic refactoring to prevent assigning of corp-title affiliation whilst there is corp affiliated ** Logic introduction to prevent assigning other corporation witAll Corporations
option enabled -
Refactor
index
-page ** Removing of laravel-form-builder inside ** Refactoring of many routes. ** split view in many partials to optimize maintainability. ** Reworkedmanaged
SeAT group modal: usingDatatables
asynchronously and bigger buttons. -
Refactor of
SeatGroups
** Introducing ofisQualified()
method **GroupSync
will take use of this method. ** Refactoring ofisMember()
function ** Reducing of switch-complexity inGroupSync
Fix changed class name.
This release consist of many improvements:
- Introducing queueable SeAT-Groups update jobs.
- Remove blocking conditions if ons user group fails.
- Roles are being removed from user groups with missing RefreshToken.
- Introducing
RefreshTokenObvserver
: upon deletion a newGroupSync
is dispatched. - Introducing Logs in about-view.
seat-groups:users:update
now accepts a list of character_ids to individually update.
This means every time the scheduled update seat-groups:users:update
runs, every user group gets updated as an individual job, which is tracked and observable in Horizon dashboard. If the update job fails, the error can been seen in the workers dashboard. This further means, if one user group fails others are not blocked anymore.
Thanks to some refactoring and a new observer, user groups with a missing RefreshToken are getting striped from their roles until every character in SeAT has a valid RefreshToken again.
Thanks to Logs every Sync is getting logged and is viewable on the about-view, for anyone with the seatgroups.create
permission.
Finally with seat-groups:users:update --character_ids=123456789
you are able to dispatch an update job for the given character's SeAT group.
Thanks at this point to @warlof and his two packages https://github.com/warlof/slackbot and https://github.com/warlof/seat-discord-connector without him and his packages (which btw. integrate very well with SeAT-Groups) i wouldn't have been able to write all the job-logic.
- Stable release.
- Everything now works stable.
I seek to implement further functionalities, refactor some jobs and extend further the affiliation for eligibility (f.e. Corporation Titles). Other then that: SeAT Groups will be included in SeAT-Core with the next major release (tagged 3.1).
- Release Candidate for Version 1.0.0
- Introducing About-Section
- Introducing per User Role Sync
- Dispatching user role sync when opt-in happens
- Worked through the ToDo's in code
- Fixed isMember() function for AllCorporation SeAT Groups