使用Angular中的角色过滤网站数据

时间:2019-06-30 07:45:44

标签: angular spring typescript spring-boot angular7

我想通过Spring Security和Spring Boot在Angular SPA应用程序中使用登录角色(一切都在客户端上运行)。 添加用户角色以限制例如显示数据时 有经验的开发人员可以根据角色来编辑限制数据的代码,并显示违反角色限制的受限制的代码吗?

有什么方法可以防止这种情况并保护代码吗?

1 个答案:

答案 0 :(得分:0)

尝试一下:

您必须创建一个自定义结构指令roleType,该结构指令将根据用户的roleType显示和隐藏数据。

Stackblitz demo

roletype.directive.ts

import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
import { DataService } from './data.service';

@Directive({
  selector: '[roleType]'
})
export class RoleTypeDirective {

  constructor(private templateRef: TemplateRef<any>, private vcRef: ViewContainerRef, private dataService: DataService) {

  }

  currentRoleType: string = this.dataService.currentRoleType;

  @Input() set roleType(roleType: string) {
    if (roleType.includes(this.currentRoleType)) {
      this.vcRef.createEmbeddedView(this.templateRef);
    }
    else {
      this.vcRef.clear();
    }
  }
}

HTML

<button *roleType="'AMU'">View</button>
<button *roleType="'AM'">Edit</button>
<button *roleType="'A'">Delete</button>

其中A-管理员,M-主持人和用户U座。