diff --git a/src/app/_services/member.service.ts b/src/app/_services/member.service.ts
index 90a4a0fa4..08eee8bfe 100644
--- a/src/app/_services/member.service.ts
+++ b/src/app/_services/member.service.ts
@@ -24,8 +24,8 @@ export class MemberService {
// TODO: Implement update password (use JWT to assume role)
}
- deleteMember(member: string) {
- // TODO: Implement delete member (admin only)
+ deleteMember(username: string) {
+ return this.httpClient.delete(this.baseUrl + 'admin/delete-user?username=' + username);
}
}
diff --git a/src/app/admin/manage-users/manage-users.component.html b/src/app/admin/manage-users/manage-users.component.html
index 28db42c81..678bac385 100644
--- a/src/app/admin/manage-users/manage-users.component.html
+++ b/src/app/admin/manage-users/manage-users.component.html
@@ -12,7 +12,8 @@
{{member.username | titlecase}} Admin
-
+
+
diff --git a/src/app/admin/manage-users/manage-users.component.ts b/src/app/admin/manage-users/manage-users.component.ts
index 6ce77b0ab..07008a465 100644
--- a/src/app/admin/manage-users/manage-users.component.ts
+++ b/src/app/admin/manage-users/manage-users.component.ts
@@ -6,6 +6,7 @@ import { Member } from 'src/app/_models/member';
import { User } from 'src/app/_models/user';
import { AccountService } from 'src/app/_services/account.service';
import { LibraryAccessModalComponent } from '../_modals/library-access-modal/library-access-modal.component';
+import { ToastrService } from 'ngx-toastr';
@Component({
selector: 'app-manage-users',
@@ -20,7 +21,10 @@ export class ManageUsersComponent implements OnInit {
// Create User functionality
createMemberToggle = false;
- constructor(private memberService: MemberService, public accountService: AccountService, private modalService: NgbModal) {
+ constructor(private memberService: MemberService,
+ private accountService: AccountService,
+ private modalService: NgbModal,
+ private toastr: ToastrService) {
this.accountService.currentUser$.pipe(take(1)).subscribe((user: User) => {
this.loggedInUsername = user.username;
});
@@ -32,7 +36,7 @@ export class ManageUsersComponent implements OnInit {
loadMembers() {
this.memberService.getMembers().subscribe(members => {
- this.members = members;
+ this.members = members.filter(member => member.username !== this.loggedInUsername);
});
}
@@ -57,6 +61,19 @@ export class ManageUsersComponent implements OnInit {
});
}
+ openChangeRole(member: Member) {
+
+ }
+
+ deleteUser(member: Member) {
+ if (confirm('Are you sure you want to delete this user?')) {
+ this.memberService.deleteMember(member.username).subscribe(() => {
+ this.loadMembers();
+ this.toastr.success(member.username + ' has been deleted.');
+ });
+ }
+ }
+
formatLibraries(member: Member) {
if (member.libraries.length === 0) {
return 'None';
diff --git a/src/app/shared/register-member/register-member.component.html b/src/app/shared/register-member/register-member.component.html
index 6ffba59c3..9a8cae997 100644
--- a/src/app/shared/register-member/register-member.component.html
+++ b/src/app/shared/register-member/register-member.component.html
@@ -15,7 +15,7 @@
-