如何根据权限显示条目
How to show entries depending on the authority
我的 jHipster 项目中有 4 个实体:用户、部门、userAssignmentToDepartments(用户可能属于多个部门)、订单。订单实体有字段 "department_id"。问题是:
- 如何只显示包含 department_id 的订单
此用户的 userAssignmentToDepartments?
2.How获取部门id的哪个用户有权限?
order.routes.ts
export const orderRoute: Routes = [
{
path: 'order',
component: OrderComponent,
resolve: {
pagingParams: JhiResolvePagingParams
},
data: {
authorities: ['ROLE_USER'],
defaultSort: 'id,asc',
pageTitle: 'Orders'
},
canActivate: [UserRouteAccessService]
}...
order.service.ts
export class OrderService {
query(req?: any): Observable<EntityArrayResponseType> {
const options = createRequestOption(req);
return this.http
.get<IOrder[]>(this.resourceUrl, { params: options, observe: 'response' })
.pipe(map((res: EntityArrayResponseType) => this.convertDateArrayFromServer(res)));
}.....
order.component.ts
export class OrderComponent implements OnInit, OnDestroy {
loadAll() {
this.orderService
.query({
page: this.page - 1,
size: this.itemsPerPage,
sort: this.sort()
})
.subscribe(
(res: HttpResponse<IOrder[]>) => this.paginateOrders(res.body, res.headers),
(res: HttpErrorResponse) => this.onError(res.message)
);
}
department.model.ts
export interface IDepartment {
id?: number;
name?: string;
}
export class Departmetn implements IDepartment {
constructor(public id?: number, public name?: string) {}
}
order.model.ts
import { Moment } from 'moment';
export interface IOrder {
id?: number;
date?: Moment;
departmetnId?: number
}
export class Order implements IOrder {
constructor(public id?: number, public date?: Moment, public departmentId?: number) {}
}
user.model.ts
export interface IUser {
id?: number;
}
export class User implements IUser {
constructor(public id?: number) {}
}
用户-assignment.ts
export interface IUserAssignment {
id?: number;
userLogin?: string;
userId?: number;
centerName?: string;
centerId?: number;
}
export class UserAssignment implements IUserAssignment {
constructor(
public id?: number,
public userLogin?: string,
public userId?: number,
public departmentName?: string,
public departmentId?: number
) {}
}
假设这些是您的任务和订单列表
userAssignments : IUserAssignment[]
orders : IOrder[]
为用户
获取包含在 userAssignmentToDepartments 中的 department_id 订单
getOrders(userID : number){
var deptList : number[] = []
for(let assignment of this.userAssignments){
if(assignment.userId==userID){
deptList.push(assignment.departmentId);
}
}
var orderList : IOrder[]
for(let order of this.orders){
if(deptList.find(dept => dept==order.departmentId)){
orderList.push(order);
}
}
console.log(orderList);
}
为特定用户获取部门授权,
getAuthorizedDepts(userID : number){
var deptList : number[] = []
for(let assignment of this.userAssignments){
if(assignment.userId==userID){
deptList.push(assignment.departmentId);
}
}
console.log(deptList)
}
我的 jHipster 项目中有 4 个实体:用户、部门、userAssignmentToDepartments(用户可能属于多个部门)、订单。订单实体有字段 "department_id"。问题是:
- 如何只显示包含 department_id 的订单 此用户的 userAssignmentToDepartments?
2.How获取部门id的哪个用户有权限?
order.routes.ts
export const orderRoute: Routes = [
{
path: 'order',
component: OrderComponent,
resolve: {
pagingParams: JhiResolvePagingParams
},
data: {
authorities: ['ROLE_USER'],
defaultSort: 'id,asc',
pageTitle: 'Orders'
},
canActivate: [UserRouteAccessService]
}...
order.service.ts
export class OrderService {
query(req?: any): Observable<EntityArrayResponseType> {
const options = createRequestOption(req);
return this.http
.get<IOrder[]>(this.resourceUrl, { params: options, observe: 'response' })
.pipe(map((res: EntityArrayResponseType) => this.convertDateArrayFromServer(res)));
}.....
order.component.ts
export class OrderComponent implements OnInit, OnDestroy {
loadAll() {
this.orderService
.query({
page: this.page - 1,
size: this.itemsPerPage,
sort: this.sort()
})
.subscribe(
(res: HttpResponse<IOrder[]>) => this.paginateOrders(res.body, res.headers),
(res: HttpErrorResponse) => this.onError(res.message)
);
}
department.model.ts
export interface IDepartment {
id?: number;
name?: string;
}
export class Departmetn implements IDepartment {
constructor(public id?: number, public name?: string) {}
}
order.model.ts
import { Moment } from 'moment';
export interface IOrder {
id?: number;
date?: Moment;
departmetnId?: number
}
export class Order implements IOrder {
constructor(public id?: number, public date?: Moment, public departmentId?: number) {}
}
user.model.ts
export interface IUser {
id?: number;
}
export class User implements IUser {
constructor(public id?: number) {}
}
用户-assignment.ts
export interface IUserAssignment {
id?: number;
userLogin?: string;
userId?: number;
centerName?: string;
centerId?: number;
}
export class UserAssignment implements IUserAssignment {
constructor(
public id?: number,
public userLogin?: string,
public userId?: number,
public departmentName?: string,
public departmentId?: number
) {}
}
假设这些是您的任务和订单列表
userAssignments : IUserAssignment[]
orders : IOrder[]
为用户
获取包含在 userAssignmentToDepartments 中的 department_id 订单getOrders(userID : number){
var deptList : number[] = []
for(let assignment of this.userAssignments){
if(assignment.userId==userID){
deptList.push(assignment.departmentId);
}
}
var orderList : IOrder[]
for(let order of this.orders){
if(deptList.find(dept => dept==order.departmentId)){
orderList.push(order);
}
}
console.log(orderList);
}
为特定用户获取部门授权,
getAuthorizedDepts(userID : number){
var deptList : number[] = []
for(let assignment of this.userAssignments){
if(assignment.userId==userID){
deptList.push(assignment.departmentId);
}
}
console.log(deptList)
}