Skip to content
Snippets Groups Projects
Commit b196af71 authored by kbeyro's avatar kbeyro
Browse files

fix user list

parent ead20c29
No related branches found
No related tags found
No related merge requests found
...@@ -10,8 +10,7 @@ ...@@ -10,8 +10,7 @@
</div> </div>
<div class="col-sm-12" *ngIf="domainMode">
<div class="col-sm-12" *ngIf="domainMode" >
<div *roles="['ROLE_DOMAIN_ADMIN']"> <div *roles="['ROLE_DOMAIN_ADMIN']">
<nmaas-userslist *ngIf="!isInAddToDomainMode" [users]="allUsers" [allowedModes]="[ComponentMode.VIEW, ComponentMode.DELETE]" [domainMode]="true" (onUserRoleChange)="onUserRoleChange($event)" <nmaas-userslist *ngIf="!isInAddToDomainMode" [users]="allUsers" [allowedModes]="[ComponentMode.VIEW, ComponentMode.DELETE]" [domainMode]="true" (onUserRoleChange)="onUserRoleChange($event)"
(onView)="onUserView($event)" (onModeChange)="onModeChange($event)" (onDelete)="onUserDelete($event)" (onRemoveFromDomain)="onRemoveRole($event)"> (onView)="onUserView($event)" (onModeChange)="onModeChange($event)" (onDelete)="onUserDelete($event)" (onRemoveFromDomain)="onRemoveRole($event)">
......
...@@ -6,7 +6,7 @@ import {UserService} from '../../../service/user.service'; ...@@ -6,7 +6,7 @@ import {UserService} from '../../../service/user.service';
import {UserDataService} from '../../../service/userdata.service'; import {UserDataService} from '../../../service/userdata.service';
import {Component, OnInit} from '@angular/core'; import {Component, OnInit} from '@angular/core';
import {ComponentMode} from '../../../shared/common/componentmode'; import {ComponentMode} from '../../../shared/common/componentmode';
import {ActivatedRoute, NavigationEnd, Router} from '@angular/router'; import {ActivatedRoute, Router} from '@angular/router';
import {Location} from '@angular/common'; import {Location} from '@angular/common';
import {Observable, of} from 'rxjs'; import {Observable, of} from 'rxjs';
import {map} from 'rxjs/operators'; import {map} from 'rxjs/operators';
...@@ -27,7 +27,7 @@ export class UsersListComponent implements OnInit { ...@@ -27,7 +27,7 @@ export class UsersListComponent implements OnInit {
public isInAddToDomainMode = false; public isInAddToDomainMode = false;
public domainMode = false; public domainMode: boolean;
constructor(protected authService: AuthService, constructor(protected authService: AuthService,
protected userService: UserService, protected userService: UserService,
...@@ -40,14 +40,8 @@ export class UsersListComponent implements OnInit { ...@@ -40,14 +40,8 @@ export class UsersListComponent implements OnInit {
ngOnInit() { ngOnInit() {
this.domainMode = false;
this.userDataService.selectedDomainId.subscribe((domainId) => this.update(domainId)); this.userDataService.selectedDomainId.subscribe((domainId) => this.update(domainId));
this.router.events.subscribe(event => {
if (event instanceof NavigationEnd) {
if (event.url.includes('domain')) {
this.domainMode = true;
}
}
})
} }
public update(domainId: number): void { public update(domainId: number): void {
...@@ -65,6 +59,7 @@ export class UsersListComponent implements OnInit { ...@@ -65,6 +59,7 @@ export class UsersListComponent implements OnInit {
} else if (this.authService.hasRole(Role[Role.ROLE_SYSTEM_ADMIN])) { } else if (this.authService.hasRole(Role[Role.ROLE_SYSTEM_ADMIN])) {
users = this.userService.getAll(this.domainId); users = this.userService.getAll(this.domainId);
} else if (this.domainId != null && this.authService.hasDomainRole(this.domainId, Role[Role.ROLE_DOMAIN_ADMIN])) { } else if (this.domainId != null && this.authService.hasDomainRole(this.domainId, Role[Role.ROLE_DOMAIN_ADMIN])) {
this.domainMode = true;
users = this.userService.getAll(this.domainId); users = this.userService.getAll(this.domainId);
} else { } else {
users = of<User[]>([]); users = of<User[]>([]);
...@@ -79,6 +74,7 @@ export class UsersListComponent implements OnInit { ...@@ -79,6 +74,7 @@ export class UsersListComponent implements OnInit {
users.subscribe((all) => { users.subscribe((all) => {
this.allUsers = all; this.allUsers = all;
console.log(this.allUsers);
/* parse date strings to date objects */ /* parse date strings to date objects */
for (const u of this.allUsers) { for (const u of this.allUsers) {
if (u.firstLoginDate) { if (u.firstLoginDate) {
...@@ -131,6 +127,5 @@ export class UsersListComponent implements OnInit { ...@@ -131,6 +127,5 @@ export class UsersListComponent implements OnInit {
const foundUser = this.allUsers.find(user => user.id === event.userId); const foundUser = this.allUsers.find(user => user.id === event.userId);
this.onRemoveRole({id: event.userId, roles: foundUser.roles}) this.onRemoveRole({id: event.userId, roles: foundUser.roles})
} }
} }
} }
import { Route } from '@angular/router'; import {Route} from '@angular/router';
import { UsersListComponent, UserDetailsComponent } from './index'; import {UserDetailsComponent, UsersListComponent} from './index';
import { AuthGuard } from '../../auth/auth.guard'; import {AuthGuard} from '../../auth/auth.guard';
import { RoleGuard } from '../../auth/role.guard'; import {RoleGuard} from '../../auth/role.guard';
import { ComponentMode } from '../../shared/common/componentmode'; import {ComponentMode} from '../../shared/common/componentmode';
export const UsersRoutes: Route[] = [ export const UsersRoutes: Route[] = [
{ path: 'admin/users', component: UsersListComponent, canActivate: [AuthGuard, RoleGuard], { path: 'admin/users', component: UsersListComponent, canActivate: [AuthGuard, RoleGuard],
......
...@@ -31,3 +31,8 @@ tr.clickable { ...@@ -31,3 +31,8 @@ tr.clickable {
display: flex; display: flex;
justify-content: space-between; justify-content: space-between;
} }
li::marker {
content: '';
font-size: 0em;
}
...@@ -87,27 +87,38 @@ ...@@ -87,27 +87,38 @@
<td *ngIf="domainId !== domainService.getGlobalDomainId() && !isModeAllowed(ComponentMode.EDIT)"> <td *ngIf="domainId !== domainService.getGlobalDomainId() && !isModeAllowed(ComponentMode.EDIT)">
<div *roles="['ROLE_DOMAIN_ADMIN']"> <div *roles="['ROLE_DOMAIN_ADMIN']">
<div *ngIf="!checkUserIfIsCurrentUser(user.username)"> <div *ngIf="!checkUserIfIsCurrentUser(user.username)">
<p-dropdown [options]="getAllowedRoles()" (onChange)="changeUserRole(user,domainId, $event)"> <!-- <p-dropdown [options]="getAllowedRoles()" (onChange)="changeUserRole(user,domainId, $event)" [ngModel]="getOnlyDomainRoles(user)">-->
<ng-template pTemplate="selectedItem"> <!-- <ng-template pTemplate="selectedItem">-->
<span *ngFor="let roles of getOnlyDomainRoles(user)"> <!-- <span >-->
{{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} <!-- {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user).role | translate}}-->
</span> <!-- </span>-->
</ng-template> <!-- </ng-template>-->
<ng-template let-role pTemplate="item"> <!-- <ng-template let-role pTemplate="item">-->
{{"ENUM.USER_ROLES." + Role[role].toUpperCase() | translate}} <!-- {{"ENUM.USER_ROLES." + Role[role].toUpperCase() | translate}}-->
</ng-template> <!-- </ng-template>-->
</p-dropdown> <!-- </p-dropdown>-->
<li [routerLinkActiveOptions]="{exact:true}"
[routerLinkActive]="['active']" class="dropdown dropdown-domains">
<a aria-expanded="false" data-close-others="true" aria-haspopup="true" class="dropdown-toggle" data-toggle="dropdown"
role="button">
<span style="color: black;">{{"ENUM.USER_ROLES." + getOnlyDomainRoles(user)?.role | translate}}<strong class="caret"></strong></span></a>
<ul class="dropdown-menu">
<li *ngFor="let role of getAllowedRoles()">
<a (click)="changeUserRole(user,domainId, {value:role})">{{"ENUM.USER_ROLES." + Role[role].toUpperCase() | translate}}</a>
</li>
</ul>
</li>
</div> </div>
</div> </div>
<div *roles="['ROLE_SYSTEM_ADMIN']"> <div *roles="['ROLE_SYSTEM_ADMIN']">
<span *ngFor="let roles of getOnlyDomainRoles(user)"> <span >
{{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user)?.role | translate}}
</span> </span>
</div> </div>
<div *roles="['ROLE_DOMAIN_ADMIN']"> <div *roles="['ROLE_DOMAIN_ADMIN']">
<div *ngIf="checkUserIfIsCurrentUser(user.username)"> <div *ngIf="checkUserIfIsCurrentUser(user.username)">
<span *ngFor="let roles of getOnlyDomainRoles(user)"> <span>
{{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user)?.role | translate}}
</span> </span>
</div> </div>
</div> </div>
......
...@@ -117,8 +117,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang ...@@ -117,8 +117,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang
return user.roles.filter(role => role.domainId !== this.domainService.getGlobalDomainId()); return user.roles.filter(role => role.domainId !== this.domainService.getGlobalDomainId());
} }
public getOnlyDomainRoles(user: User): UserRole[] { public getOnlyDomainRoles(user: User): UserRole {
return user.roles.filter(role => role.domainId === this.domainId); return user.roles.find(role => role.domainId === this.domainId);
} }
public getGlobalRole(user: User): string { public getGlobalRole(user: User): string {
...@@ -218,8 +218,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang ...@@ -218,8 +218,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang
} else if (criteria.sortColumn === 'roles') { } else if (criteria.sortColumn === 'roles') {
const ad = this.getOnlyDomainRoles(a); const ad = this.getOnlyDomainRoles(a);
const bd = this.getOnlyDomainRoles(b); const bd = this.getOnlyDomainRoles(b);
const ar = ad.length > 0 ? ad[0].role.toString() : ''; const ar = ad !== undefined ? ad[0].role.toString() : '';
const br = bd.length > 0 ? bd[0].role.toString() : ''; const br = bd !== undefined ? bd[0].role.toString() : '';
p1 = ar; p1 = ar;
p2 = br; p2 = br;
} else { } else {
...@@ -302,7 +302,7 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang ...@@ -302,7 +302,7 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang
// roles = this.filterRoles(roles, this.domainId); // roles = this.filterRoles(roles, this.domainId);
} else if (this.domainId != null) { } else if (this.domainId != null) {
// default (domain) role set // default (domain) role set
roles = [Role.ROLE_GUEST, Role.ROLE_USER, Role.ROLE_DOMAIN_ADMIN]; roles = [Role.ROLE_USER, Role.ROLE_DOMAIN_ADMIN, Role.ROLE_GUEST];
} else { } else {
// no roles // no roles
roles = []; roles = [];
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment