Implemented delete user. Removed ability to see yourself on members since you couldn't do anything anyways.

This commit is contained in:
Joseph Milazzo 2020-12-24 08:42:02 -06:00
parent 530e73fbea
commit 696f950f7a
4 changed files with 24 additions and 6 deletions

View file

@ -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);
}
}

View file

@ -12,7 +12,8 @@
<h4>
{{member.username | titlecase}} <span *ngIf="member.isAdmin" class="badge badge-pill badge-secondary">Admin</span>
<div class="pull-right" *ngIf="canEditMember(member)">
<button class="btn btn-danger mr-2"><i class="fa fa-trash" title="Delete {{member.username | titlecase}}"></i></button>
<button class="btn btn-danger mr-2" (click)="deleteUser(member)"><i class="fa fa-trash" title="Delete {{member.username | titlecase}}"></i></button>
<!-- <button class="btn btn-primary" (click)="openChangeRole(member)"><i class="fa fa-pencil"></i>{{member.roles.includes('Admin') ? 'Demote' : 'Promote'}}</button> -->
<button class="btn btn-primary" (click)="openEditLibraryAccess(member)"><i class="fa fa-pencil" title="Edit {{member.username | titlecase}}"></i></button>
</div>
</h4>

View file

@ -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';

View file

@ -15,7 +15,7 @@
<input id="password" class="form-control" formControlName="password" type="password">
</div>
<div class="form-check" *ngIf="adminExists">
<div class="form-check" *ngIf="!firstTimeFlow">
<input id="admin" type="checkbox" aria-label="Admin" class="form-check-input" formControlName="isAdmin">
<label for="admin" class="form-check-label">Admin</label>
</div>