Skip to content

Commit

Permalink
Fixes for gateway admin role
Browse files Browse the repository at this point in the history
  • Loading branch information
nlg committed May 11, 2022
1 parent f70c4d3 commit 73054c3
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 8 deletions.
1 change: 0 additions & 1 deletion src/app/admin/permission/permission.model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,6 @@ export enum PermissionType {
OrganizationGatewayAdmin = 'OrganizationGatewayAdmin',
OrganizationApplicationAdmin = 'OrganizationApplicationAdmin',
Read = 'Read',

OrganizationPermission = 'OrganizationPermission',
OrganizationApplicationPermissions = 'OrganizationApplicationPermissions',
}
3 changes: 2 additions & 1 deletion src/app/gateway/gateway-detail/gateway-detail.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ export class GatewayDetailComponent implements OnInit, OnDestroy, AfterViewInit
private deleteDialogSubscription: Subscription;
public dropdownButton: DropdownButton;
isLoadingResults = true;
canEdit: boolean;
canEdit: boolean;

constructor(
private gatewayService: ChirpstackGatewayService,
Expand Down Expand Up @@ -79,6 +79,7 @@ export class GatewayDetailComponent implements OnInit, OnDestroy, AfterViewInit
this.gatewayService.get(id).subscribe((result: any) => {
result.gateway.tagsString = JSON.stringify(result.gateway.tags);
this.gateway = result.gateway;
this.canEdit = this.meService.hasAccessToTargetOrganization(OrganizationAccessScope.GatewayWrite, this.gateway.internalOrganizationId);
this.gateway.canEdit = this.canEdit;
this.gatewayStats = result.stats;
this.gatewayStats.sort((a, b) => new Date(b.timestamp).getTime() - new Date(a.timestamp).getTime());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@
</a>
<fa-icon [icon]="faToolbox" class="navbar-icon"></fa-icon>
</li>
<li>
<a routerLink="/device-model" routerLinkActive="active" class="nav-link pl-5 position-relative rounded">
{{'NAV.DEVICE-MODEL' | translate}}
</a>
<fa-icon [icon]="faBurn" class="navbar-icon"></fa-icon>
</li>
<div *ngIf="!isOnlyGatewayAdmin">
<li>
<a routerLink="/device-model" routerLinkActive="active" class="nav-link pl-5 position-relative rounded">
{{'NAV.DEVICE-MODEL' | translate}}
</a>
<fa-icon [icon]="faBurn" class="navbar-icon"></fa-icon>
</li>
</div>
<div *ngIf="user && isUserAdmin && !isGlobalAdmin">
<li class="nav-item">
<a routerLink="/admin/users" routerLinkActive="active" class="nav-link pl-5 position-relative rounded">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ export class OrganisationDropdownComponent implements OnInit {
public user: UserResponse;
public isUserAdmin = false;
public isGlobalAdmin = false;
public isOnlyGatewayAdmin = false;

faExchangeAlt = faExchangeAlt;
faLayergroup = faLayerGroup;
Expand Down Expand Up @@ -60,6 +61,7 @@ export class OrganisationDropdownComponent implements OnInit {
private setLocalPermissionCheck(orgId: number) {
this.isUserAdmin = this.meService.hasAccessToTargetOrganization(OrganizationAccessScope.UserAdministrationWrite);
this.isGlobalAdmin = this.user?.permissions?.some( permission => permission.type === PermissionType.GlobalAdmin);
this.isOnlyGatewayAdmin = this.user.permissions.every(permission => permission.type === PermissionType.OrganizationGatewayAdmin);
}

public onChange(organizationId: string) {
Expand Down

0 comments on commit 73054c3

Please sign in to comment.