我想通过Spring Security和Spring Boot在Angular SPA应用程序中使用登录角色(一切都在客户端上运行)。 添加用户角色以限制例如显示数据时 有经验的开发人员可以根据角色来编辑限制数据的代码,并显示违反角色限制的受限制的代码吗?
有什么方法可以防止这种情况并保护代码吗?
答案 0 :(得分:0)
尝试一下:
您必须创建一个自定义结构指令roleType
,该结构指令将根据用户的roleType显示和隐藏数据。
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座。