fix: Changed group assignment. Closes #1.

This commit is contained in:
2025-05-05 18:54:20 +02:00
parent 6c8b40cbad
commit fd9380a61d
8 changed files with 53 additions and 56 deletions

View File

@@ -2,6 +2,7 @@ import { Component, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { FormControl, FormGroup } from '@angular/forms';
import { LocalStorageService } from 'src/app/services/local-storage.service';
import { Group } from 'src/app/types/group';
@Component({
selector: 'app-user-edit',
@@ -10,42 +11,49 @@ import { LocalStorageService } from 'src/app/services/local-storage.service';
})
export class UserEditComponent {
form: FormGroup
groups: Group[]
constructor (public dialogRef: MatDialogRef<UserEditComponent>, @Inject(MAT_DIALOG_DATA) public data: any, readonly ls: LocalStorageService) {
if (data == null) {
data = {
if (data.user == null) {
data.user = {
fname: "",
surname: "",
room: 0,
room: "",
uname: "",
groups: [],
admin: 0
}
}
this.groups = data.groups
var flags: Array<number> = []
if (data.admin) {
if ((data.admin & 1) == 1) flags.push(1)
if ((data.admin & 2) == 2) flags.push(2)
if ((data.admin & 4) == 4) flags.push(4)
if ((data.admin & 8) == 8) flags.push(8)
if ((data.admin & 16) == 16) flags.push(16)
if ((data.admin & 32) == 32) flags.push(32)
if ((data.admin & 64) == 64) flags.push(64)
if ((data.admin & 128) == 128) flags.push(128)
if (data.user.admin) {
if ((data.user.admin & 1) == 1) flags.push(1)
if ((data.user.admin & 2) == 2) flags.push(2)
if ((data.user.admin & 4) == 4) flags.push(4)
if ((data.user.admin & 8) == 8) flags.push(8)
if ((data.user.admin & 16) == 16) flags.push(16)
if ((data.user.admin & 32) == 32) flags.push(32)
if ((data.user.admin & 64) == 64) flags.push(64)
if ((data.user.admin & 128) == 128) flags.push(128)
}
this.form = new FormGroup({
fname: new FormControl(data.fname),
surname: new FormControl(data.surname),
room: new FormControl<number>(data.room),
uname: new FormControl(data.uname),
fname: new FormControl(data.user.fname),
surname: new FormControl(data.user.surname),
room: new FormControl(data.user.room),
uname: new FormControl<string>(data.user.uname),
groups: new FormControl<Array<string>>(data.user.groups),
flags: new FormControl<Array<number>>(flags),
})
}
protected editUser() {
console.log(this.form.value);
this.dialogRef.close({
fname: this.form.get('fname')?.value,
surname: this.form.get('surname')?.value,
room: this.form.get('room')?.value,
room: this.form.get('room')?.value.length == 0 ? undefined : this.form.get('room')?.value,
uname: this.form.get('uname')?.value,
groups: this.form.get('groups')?.value,
flags: (() => {
var value = this.form.get('flags')?.value.reduce((a: number,b: number)=>a+b,0)
if (this.ls.capCheck(32)) {