You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ri...@apache.org on 2021/12/01 09:05:16 UTC
[incubator-streampipes] 02/04: [STREAMPIPES-426] Allow admins to change usernames of existing users
This is an automated email from the ASF dual-hosted git repository.
riemer pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git
commit d47938a8c6771da86432ff133f7c7626dfedf835
Author: Dominik Riemer <do...@gmail.com>
AuthorDate: Wed Dec 1 09:59:02 2021 +0100
[STREAMPIPES-426] Allow admins to change usernames of existing users
---
.../edit-user-dialog.component.html | 21 ++++++++++++---------
.../edit-user-dialog.component.scss | 6 ++++++
.../edit-user-dialog/edit-user-dialog.component.ts | 16 ++++++++++++++--
3 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.html b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.html
index 7f3c131..224264a 100644
--- a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.html
+++ b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.html
@@ -37,6 +37,7 @@
data-cy="new-user-email">
<mat-error>Must be a valid email address.</mat-error>
</mat-form-field>
+ <div class="email-changed" *ngIf="emailChanged">Changing the current user's email will require a re-login.</div>
<mat-form-field color="accent" *ngIf="isUserAccount">
<mat-label>Full Name</mat-label>
<input formControlName="fullName" fxFlex
@@ -110,15 +111,17 @@
</div>
<mat-divider></mat-divider>
<div class="sp-dialog-actions">
- <div fxLayout="row">
- <button mat-button mat-raised-button color="accent" (click)="save()" style="margin-right:10px;"
- [disabled]="!parentForm.valid"
- data-cy="sp-element-edit-user-save">
- <i class="material-icons">save</i><span> Save</span>
- </button>
- <button mat-button mat-raised-button class="mat-basic" (click)="close(false)">
- Cancel
- </button>
+ <div fxLayout="column">
+ <div fxLayout="row">
+ <button mat-button mat-raised-button color="accent" (click)="save()" style="margin-right:10px;"
+ [disabled]="!parentForm.valid"
+ data-cy="sp-element-edit-user-save">
+ <i class="material-icons">save</i><span> Save</span>
+ </button>
+ <button mat-button mat-raised-button class="mat-basic" (click)="close(false)">
+ Cancel
+ </button>
+ </div>
</div>
</div>
</div>
diff --git a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.scss b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.scss
index aad1d42..71c46ee 100644
--- a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.scss
+++ b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.scss
@@ -26,3 +26,9 @@
.form-field .mat-form-field-infix {
border-top: 0;
}
+
+.email-changed {
+ color: var(--color-warn);
+ font-size: small;
+ margin-bottom: 10px;
+}
diff --git a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
index 7044766..d29eede 100644
--- a/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
+++ b/ui/src/app/configuration/security-configuration/edit-user-dialog/edit-user-dialog.component.ts
@@ -39,6 +39,8 @@ import { UserService } from '../../../platform-services/apis/user.service';
import { UserGroupService } from '../../../platform-services/apis/user-group.service';
import { RoleDescription } from '../../../_models/auth.model';
import { AvailableRolesService } from '../../../services/available-roles.service';
+import {AuthService} from "../../../services/auth.service";
+import {Router} from "@angular/router";
@Component({
selector: 'sp-edit-user-dialog',
@@ -64,12 +66,15 @@ export class EditUserDialogComponent implements OnInit {
registrationError: string;
sendPasswordToUser = false;
+ emailChanged = false;
constructor(private dialogRef: DialogRef<EditUserDialogComponent>,
private availableRolesService: AvailableRolesService,
private fb: FormBuilder,
private userService: UserService,
- private userGroupService: UserGroupService) {
+ private userGroupService: UserGroupService,
+ private authService: AuthService,
+ private router: Router) {
}
ngOnInit(): void {
@@ -105,6 +110,7 @@ export class EditUserDialogComponent implements OnInit {
this.clonedUser.accountLocked = v.accountLocked;
this.clonedUser.accountEnabled = v.accountEnabled;
if (this.clonedUser instanceof UserAccount) {
+ this.emailChanged = (this.clonedUser.username !== this.user.username) && this.user.username === this.authService.getCurrentUser().username && this.editMode;
this.clonedUser.fullName = v.fullName;
if (!this.editMode) {
this.sendPasswordToUser = v.sendPasswordToUser;
@@ -149,7 +155,13 @@ export class EditUserDialogComponent implements OnInit {
if (this.editMode) {
if (this.isUserAccount) {
this.userService.updateUser(this.clonedUser as UserAccount).subscribe(() => {
- this.close(true);
+ if (this.emailChanged) {
+ this.authService.logout();
+ this.close(false);
+ this.router.navigate(['login']);
+ } else {
+ this.close(true);
+ }
});
} else {
this.userService.updateService(this.clonedUser as ServiceAccount).subscribe(() => {