diff --git a/UI/Web/src/app/admin/edit-user/edit-user.component.scss b/UI/Web/src/app/admin/edit-user/edit-user.component.scss
index e69de29bb..3cca8a49f 100644
--- a/UI/Web/src/app/admin/edit-user/edit-user.component.scss
+++ b/UI/Web/src/app/admin/edit-user/edit-user.component.scss
@@ -0,0 +1,3 @@
+.text-muted {
+ font-size: 12px;
+}
diff --git a/UI/Web/src/app/admin/edit-user/edit-user.component.ts b/UI/Web/src/app/admin/edit-user/edit-user.component.ts
index c36bfc135..124810678 100644
--- a/UI/Web/src/app/admin/edit-user/edit-user.component.ts
+++ b/UI/Web/src/app/admin/edit-user/edit-user.component.ts
@@ -28,6 +28,7 @@ import {ServerSettings} from "../_models/server-settings";
import {UserOwner, UserOwners} from "../../_models/user";
import {UserOwnerPipe} from "../../_pipes/user-owner.pipe";
import {SettingItemComponent} from "../../settings/_components/setting-item/setting-item.component";
+import {OwnerIconComponent} from "../../shared/_components/owner-icon/owner-icon.component";
const AllowedUsernameCharacters = /^[\sa-zA-Z0-9\-._@+/\s]*$/;
const EmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
@@ -36,7 +37,7 @@ const EmailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
selector: 'app-edit-user',
templateUrl: './edit-user.component.html',
styleUrls: ['./edit-user.component.scss'],
- imports: [ReactiveFormsModule, RoleSelectorComponent, LibrarySelectorComponent, RestrictionSelectorComponent, SentenceCasePipe, TranslocoDirective, AsyncPipe, UserOwnerPipe, SettingItemComponent],
+ imports: [ReactiveFormsModule, RoleSelectorComponent, LibrarySelectorComponent, RestrictionSelectorComponent, SentenceCasePipe, TranslocoDirective, AsyncPipe, UserOwnerPipe, SettingItemComponent, OwnerIconComponent],
changeDetection: ChangeDetectionStrategy.OnPush
})
export class EditUserComponent implements OnInit {
diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.html b/UI/Web/src/app/admin/manage-users/manage-users.component.html
index 43e651e7d..2cd4b7707 100644
--- a/UI/Web/src/app/admin/manage-users/manage-users.component.html
+++ b/UI/Web/src/app/admin/manage-users/manage-users.component.html
@@ -23,14 +23,7 @@
- @switch (member.owner) {
- @case (UserOwner.OpenIdConnect) {
- ![open-id-connect-logo]()
- }
- @case (UserOwner.Native) {
- ![kavita-logo]()
- }
- }
+
|
diff --git a/UI/Web/src/app/admin/manage-users/manage-users.component.ts b/UI/Web/src/app/admin/manage-users/manage-users.component.ts
index 25a38763d..e38f04d2e 100644
--- a/UI/Web/src/app/admin/manage-users/manage-users.component.ts
+++ b/UI/Web/src/app/admin/manage-users/manage-users.component.ts
@@ -26,6 +26,7 @@ import {RoleLocalizedPipe} from "../../_pipes/role-localized.pipe";
import {SettingsService} from "../settings.service";
import {ServerSettings} from "../_models/server-settings";
import {UserOwner} from "../../_models/user";
+import {OwnerIconComponent} from "../../shared/_components/owner-icon/owner-icon.component";
@Component({
selector: 'app-manage-users',
@@ -34,7 +35,7 @@ import {UserOwner} from "../../_models/user";
changeDetection: ChangeDetectionStrategy.OnPush,
imports: [NgbTooltip, TagBadgeComponent, AsyncPipe, TitleCasePipe, TranslocoModule, DefaultDatePipe, NgClass,
DefaultValuePipe, UtcToLocalTimePipe, LoadingComponent, TimeAgoPipe, SentenceCasePipe, UtcToLocaleDatePipe,
- RoleLocalizedPipe, NgOptimizedImage]
+ RoleLocalizedPipe, NgOptimizedImage, OwnerIconComponent]
})
export class ManageUsersComponent implements OnInit {
diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html
new file mode 100644
index 000000000..af93e0b4d
--- /dev/null
+++ b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.html
@@ -0,0 +1,9 @@
+@switch (owner()) {
+ @case (UserOwner.OpenIdConnect) {
+
+ }
+ @case (UserOwner.Native) {
+
+
+ }
+}
diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.scss b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.scss
new file mode 100644
index 000000000..e69de29bb
diff --git a/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts
new file mode 100644
index 000000000..bc1fbceac
--- /dev/null
+++ b/UI/Web/src/app/shared/_components/owner-icon/owner-icon.component.ts
@@ -0,0 +1,19 @@
+import {Component, input} from '@angular/core';
+import {NgOptimizedImage} from "@angular/common";
+import {UserOwner} from "../../../_models/user";
+
+@Component({
+ selector: 'app-owner-icon',
+ imports: [
+ NgOptimizedImage
+ ],
+ templateUrl: './owner-icon.component.html',
+ styleUrl: './owner-icon.component.scss'
+})
+export class OwnerIconComponent {
+
+ owner = input.required();
+ size = input(16);
+
+ protected readonly UserOwner = UserOwner;
+}
diff --git a/UI/Web/src/assets/langs/en.json b/UI/Web/src/assets/langs/en.json
index f53a6e681..884b1f443 100644
--- a/UI/Web/src/assets/langs/en.json
+++ b/UI/Web/src/assets/langs/en.json
@@ -80,8 +80,8 @@
"notice": "Warning!",
"out-of-sync": "This user was created via OIDC, if the SynUsers setting is turned on changes made may be lost",
"oidc-managed": "This user is managed via OIDC, contact your OIDC administrator if they require changes.",
- "creationSource": "User type",
- "creationSource-tooltip": "Native users will never be synced with OIDC"
+ "owner": "User type",
+ "owner-tooltip": "Native users will never be synced with OIDC"
},
"user-scrobble-history": {
|