* Implemented a new role "Change Password". This role allows you to change your own password. By default, all users will have it. A user can have it removed arbitrarliy.
Removed components that are no longer going to be used.
* Cleaned up some code
* Moved the Server Settings out into a button on nav header
* Refactored Mange Users page to the new design (skeleton). Implemented skeleton code for Invite User.
* Hashed out more of the code, but need to move all the email code to a Kavita controlled API server due to password credentials.
* Cleaned up some warnings
* When no user exists for an api key in Plugin controller, throw 401.
* Hooked in the ability to check if the Kavita instance can be accessed externally so we can determine if the user can invite or not.
* Hooked up some logic if the user's server isn't accessible, then default to old flow
* Basic flow is working for confirm email. Needs validation, error handling, etc.
* Refactored Password validation to account service
* Cleaned up the code in confirm-email to work much better.
* Refactored the login page to have a container functionality, so we can reuse the styles on multiple pages (registration pages). Hooked up the code for confirm email.
* Messy code, but making progress. Refactored Register to be used only for first time user registration. Added a new register component to handle first time flow only.
* Invite works much better, still needs a bit of work for non-accessible server setup. Started work on underlying manage users page to meet new design.
* Changed (you) to a star to indicate who you're logged in as.
* Inviting a user is now working and tested fully.
* Removed the register member component as we now have invite and confirm components.
* Editing a user is now working. Username change and Role/Library access from within one screen. Email changing is on hold.
* Cleaned up code for edit user and disabled email field for now.
* Cleaned up the code to indicate changing a user's email is not possible.
* Implemented a migration for existing accounts so they can validate their emails and still login.
* Change url for email server
* Implemented the ability to resend an email confirmation code (or regenerate for non accessible servers). Fixed an overflow on the confirm dialog.
* Took care of some code cleanup
* Removed 3 db calls from cover refresh and some misc cleanup
* Fixed a broken test
* Implemented the framework for Refresh Token. Needs testing.
* Implemented Refresh Tokens. Users are issued tokens that last 7 days, just before the 7 days, the UI will request a new token to avoid having to re-authenticate.
* Partially complete, got some code to validate your Role. Needs to be applied to all methods and made a filter.
* Cleaned up the code on the backend to validate each call. The reason the RequireDownloadRole doesn't work is that the user still has the claim in their token so the simple validation isn't working. We need explicit checks.
* Don't allow users to download files if they have lost the claim but not refreshed token.
* Don't allow users to download files if they have lost the claim but not refreshed token.
* Implemented ability to see downloads users are performing on the events widget.
* Fixed a bug where version update task was calling wrong code
* Fixed a bug where when checking for updates, the event wouldn't be pushed to server with correct name.
Added update check to the event widget rather than opening a modal on the user.
* Relaxed password requirements to only be 6-32 characters and inform user on register form about the requirements
* Removed a ton of duplicate logic for series cards where the logic was already defined in action service
* Fixed OPDS total items giving a rounded number rather than total items.
* Fixed off by one issue on OPDS pagination
# Added
- Added: Ability to check for updates (stable-only) and be notified with a changelog. This is a first pass implementation.
- Added: Ability to use SignalR within Kavita (websockets)
=====================================
* (some debug code present). Implemented the ability to check and log if the server is up to date or not.
* Fixed a bug for dark mode where anchor buttons wouldn't have the correct font color.
Suppress filter/sort button if there is no filters to show.
Debug: Active indicators for users currently on your server.
Refactored code to send update notification only to admins. Admins now get a popup where they can open the Github release (docker users can just close).
* Fixed an issue where getLibraryNames on first load would call for as many cards there was on the screen. Now we call it much earlier and the data is cached faster.
* Fixed a dark mode bug from previous commit
* Release notes is now rendered markdown
* Implemented the ability to check for an update ad-hoc. Response will come via websocket to all admins.
* Fixed a missing padding
* Cleanup, added some temp code to carousel
* Cleaned up old stat stuff from dev config and added debug only flow for checking for update
* Misc cleanup
* Added readonly to one variable
* Fixed In Progress not showing for all series due to pagination bug
* Fixed the In progress API returning back series that had another users progress on them. Added SplitQuery which speeds up query significantly.
* SplitQuery in GetRecentlyAdded for a speed increase on API.
Fixed the logic on VersionUpdaterService to properly send on non-dev systems.
Disable the check button once it's triggered once since the API does a task, so it can't return anything.
* Cleaned up the admin actions to be more friendly on mobile.
* Cleaned up the message as we wait for SingalR to notify the user
* more textual changes
* Code smells
* Implemented the ability to download files (series, volume, chapter)
* Added RBS checks to ensure user is either an admin or has download role
* Added the ability to change a users feature RBS. Changed the Role seed to use reflection