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 @@ -
+