diff --git a/src/app/appmarket/users/list/userslist.component.html b/src/app/appmarket/users/list/userslist.component.html index 9238f1825295d4118fd65ce5faf3769d522ca113..204fdf4263c45bc452f6542f3340c9d630b78706 100644 --- a/src/app/appmarket/users/list/userslist.component.html +++ b/src/app/appmarket/users/list/userslist.component.html @@ -10,8 +10,7 @@ </div> - -<div class="col-sm-12" *ngIf="domainMode" > +<div class="col-sm-12" *ngIf="domainMode"> <div *roles="['ROLE_DOMAIN_ADMIN']"> <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)"> diff --git a/src/app/appmarket/users/list/userslist.component.ts b/src/app/appmarket/users/list/userslist.component.ts index 171878c836337b42dabdced9e3a655951099e5e2..9ed6089bd347f853e555b2589bd45cb418f78bbe 100644 --- a/src/app/appmarket/users/list/userslist.component.ts +++ b/src/app/appmarket/users/list/userslist.component.ts @@ -6,7 +6,7 @@ import {UserService} from '../../../service/user.service'; import {UserDataService} from '../../../service/userdata.service'; import {Component, OnInit} from '@angular/core'; 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 {Observable, of} from 'rxjs'; import {map} from 'rxjs/operators'; @@ -27,7 +27,7 @@ export class UsersListComponent implements OnInit { public isInAddToDomainMode = false; - public domainMode = false; + public domainMode: boolean; constructor(protected authService: AuthService, protected userService: UserService, @@ -40,14 +40,8 @@ export class UsersListComponent implements OnInit { ngOnInit() { + this.domainMode = false; 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 { @@ -65,6 +59,7 @@ export class UsersListComponent implements OnInit { } else if (this.authService.hasRole(Role[Role.ROLE_SYSTEM_ADMIN])) { users = this.userService.getAll(this.domainId); } else if (this.domainId != null && this.authService.hasDomainRole(this.domainId, Role[Role.ROLE_DOMAIN_ADMIN])) { + this.domainMode = true; users = this.userService.getAll(this.domainId); } else { users = of<User[]>([]); @@ -79,6 +74,7 @@ export class UsersListComponent implements OnInit { users.subscribe((all) => { this.allUsers = all; + console.log(this.allUsers); /* parse date strings to date objects */ for (const u of this.allUsers) { if (u.firstLoginDate) { @@ -131,6 +127,5 @@ export class UsersListComponent implements OnInit { const foundUser = this.allUsers.find(user => user.id === event.userId); this.onRemoveRole({id: event.userId, roles: foundUser.roles}) } - } } diff --git a/src/app/appmarket/users/users.routes.ts b/src/app/appmarket/users/users.routes.ts index c947b8a23ae70e0d7f44042515f4fee73b36484d..2b20bd27815dc88a3ab8eda1b0b3df293e380432 100644 --- a/src/app/appmarket/users/users.routes.ts +++ b/src/app/appmarket/users/users.routes.ts @@ -1,8 +1,8 @@ -import { Route } from '@angular/router'; -import { UsersListComponent, UserDetailsComponent } from './index'; -import { AuthGuard } from '../../auth/auth.guard'; -import { RoleGuard } from '../../auth/role.guard'; -import { ComponentMode } from '../../shared/common/componentmode'; +import {Route} from '@angular/router'; +import {UserDetailsComponent, UsersListComponent} from './index'; +import {AuthGuard} from '../../auth/auth.guard'; +import {RoleGuard} from '../../auth/role.guard'; +import {ComponentMode} from '../../shared/common/componentmode'; export const UsersRoutes: Route[] = [ { path: 'admin/users', component: UsersListComponent, canActivate: [AuthGuard, RoleGuard], diff --git a/src/app/shared/users/list/userslist.component.css b/src/app/shared/users/list/userslist.component.css index 8758875ce9ef26b47091a885663a3dc14370f51c..0553eee556dcb4bd4a017d4aab30e7d9827e3098 100644 --- a/src/app/shared/users/list/userslist.component.css +++ b/src/app/shared/users/list/userslist.component.css @@ -31,3 +31,8 @@ tr.clickable { display: flex; justify-content: space-between; } + +li::marker { + content: ''; + font-size: 0em; +} diff --git a/src/app/shared/users/list/userslist.component.html b/src/app/shared/users/list/userslist.component.html index 8a8a92a9fe0c22e10f9800408148156d8c520b89..2b1ab96b4be4aba6cd7f8364de8cc41ea94cfc3e 100644 --- a/src/app/shared/users/list/userslist.component.html +++ b/src/app/shared/users/list/userslist.component.html @@ -87,27 +87,38 @@ <td *ngIf="domainId !== domainService.getGlobalDomainId() && !isModeAllowed(ComponentMode.EDIT)"> <div *roles="['ROLE_DOMAIN_ADMIN']"> <div *ngIf="!checkUserIfIsCurrentUser(user.username)"> - <p-dropdown [options]="getAllowedRoles()" (onChange)="changeUserRole(user,domainId, $event)"> - <ng-template pTemplate="selectedItem"> - <span *ngFor="let roles of getOnlyDomainRoles(user)"> - {{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} - </span> - </ng-template> - <ng-template let-role pTemplate="item"> - {{"ENUM.USER_ROLES." + Role[role].toUpperCase() | translate}} - </ng-template> - </p-dropdown> +<!-- <p-dropdown [options]="getAllowedRoles()" (onChange)="changeUserRole(user,domainId, $event)" [ngModel]="getOnlyDomainRoles(user)">--> +<!-- <ng-template pTemplate="selectedItem">--> +<!-- <span >--> +<!-- {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user).role | translate}}--> +<!-- </span>--> +<!-- </ng-template>--> +<!-- <ng-template let-role pTemplate="item">--> +<!-- {{"ENUM.USER_ROLES." + Role[role].toUpperCase() | translate}}--> +<!-- </ng-template>--> +<!-- </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 *roles="['ROLE_SYSTEM_ADMIN']"> - <span *ngFor="let roles of getOnlyDomainRoles(user)"> - {{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} + <span > + {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user)?.role | translate}} </span> </div> <div *roles="['ROLE_DOMAIN_ADMIN']"> <div *ngIf="checkUserIfIsCurrentUser(user.username)"> - <span *ngFor="let roles of getOnlyDomainRoles(user)"> - {{"ENUM.USER_ROLES." + roles.role.toUpperCase() | translate}} + <span> + {{"ENUM.USER_ROLES." + getOnlyDomainRoles(user)?.role | translate}} </span> </div> </div> diff --git a/src/app/shared/users/list/userslist.component.ts b/src/app/shared/users/list/userslist.component.ts index 9fd5b8eb286ab99b54ce02183e680204d8b9b375..fc4a74ae5bfc9d2f49b4a329d9590aeae4fdd988 100644 --- a/src/app/shared/users/list/userslist.component.ts +++ b/src/app/shared/users/list/userslist.component.ts @@ -117,8 +117,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang return user.roles.filter(role => role.domainId !== this.domainService.getGlobalDomainId()); } - public getOnlyDomainRoles(user: User): UserRole[] { - return user.roles.filter(role => role.domainId === this.domainId); + public getOnlyDomainRoles(user: User): UserRole { + return user.roles.find(role => role.domainId === this.domainId); } public getGlobalRole(user: User): string { @@ -218,8 +218,8 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang } else if (criteria.sortColumn === 'roles') { const ad = this.getOnlyDomainRoles(a); const bd = this.getOnlyDomainRoles(b); - const ar = ad.length > 0 ? ad[0].role.toString() : ''; - const br = bd.length > 0 ? bd[0].role.toString() : ''; + const ar = ad !== undefined ? ad[0].role.toString() : ''; + const br = bd !== undefined ? bd[0].role.toString() : ''; p1 = ar; p2 = br; } else { @@ -302,7 +302,7 @@ export class UsersListComponent extends BaseComponent implements OnInit, OnChang // roles = this.filterRoles(roles, this.domainId); } else if (this.domainId != null) { // 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 { // no roles roles = [];