From 30a302bf991d91923c2260de21ef30ce485eec33 Mon Sep 17 00:00:00 2001 From: Joseph Milazzo Date: Sat, 2 Oct 2021 11:35:38 -0700 Subject: [PATCH] Changed how login page works based on user feedback. By default, we have the old login flow when authentication is enabled and in addition, we will auto fill the username based on last login on device. (#621) --- API/Controllers/UsersController.cs | 9 ++-- UI/Web/src/app/_services/account.service.ts | 2 + .../app/user-login/user-login.component.html | 4 +- .../app/user-login/user-login.component.ts | 41 +++++++++++++++---- 4 files changed, 42 insertions(+), 14 deletions(-) diff --git a/API/Controllers/UsersController.cs b/API/Controllers/UsersController.cs index f2f1a34ac..f5171b819 100644 --- a/API/Controllers/UsersController.cs +++ b/API/Controllers/UsersController.cs @@ -10,6 +10,7 @@ using Microsoft.AspNetCore.Mvc; namespace API.Controllers { + [Authorize] public class UsersController : BaseApiController { private readonly IUnitOfWork _unitOfWork; @@ -42,11 +43,15 @@ namespace API.Controllers [HttpGet("names")] public async Task>> GetUserNames() { + var setting = await _unitOfWork.SettingsRepository.GetSettingsDtoAsync(); + if (setting.EnableAuthentication) + { + return Unauthorized("This API cannot be used given your server's configuration"); + } var members = await _unitOfWork.UserRepository.GetMembersAsync(); return Ok(members.Select(m => m.Username)); } - [Authorize] [HttpGet("has-reading-progress")] public async Task> HasReadingProgress(int libraryId) { @@ -55,7 +60,6 @@ namespace API.Controllers return Ok(await _unitOfWork.AppUserProgressRepository.UserHasProgress(library.Type, userId)); } - [Authorize] [HttpGet("has-library-access")] public async Task> HasLibraryAccess(int libraryId) { @@ -63,7 +67,6 @@ namespace API.Controllers return Ok(libs.Any(x => x.Id == libraryId)); } - [Authorize] [HttpPost("update-preferences")] public async Task> UpdatePreferences(UserPreferencesDto preferencesDto) { diff --git a/UI/Web/src/app/_services/account.service.ts b/UI/Web/src/app/_services/account.service.ts index a58147cab..1581dafe7 100644 --- a/UI/Web/src/app/_services/account.service.ts +++ b/UI/Web/src/app/_services/account.service.ts @@ -16,6 +16,7 @@ export class AccountService implements OnDestroy { baseUrl = environment.apiUrl; userKey = 'kavita-user'; + public lastLoginKey = 'kavita-lastlogin'; currentUser: User | undefined; // Stores values, when someone subscribes gives (1) of last values seen. @@ -70,6 +71,7 @@ export class AccountService implements OnDestroy { }); localStorage.setItem(this.userKey, JSON.stringify(user)); + localStorage.setItem(this.lastLoginKey, user.username); } this.currentUserSource.next(user); diff --git a/UI/Web/src/app/user-login/user-login.component.html b/UI/Web/src/app/user-login/user-login.component.html index de8be9137..8b505d184 100644 --- a/UI/Web/src/app/user-login/user-login.component.html +++ b/UI/Web/src/app/user-login/user-login.component.html @@ -19,9 +19,9 @@
-