You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
import {modelsSimpleAuth} from '@/models'
|
|
|
|
|
|
|
|
|
|
export const R = {
|
|
|
|
|
// 应用管理配置权限
|
|
|
|
|
App: 'app',
|
|
|
|
|
// 用户管理和绑定应用权限
|
|
|
|
|
User: 'user',
|
|
|
|
|
// 权限资源定义权限
|
|
|
|
|
Resource: 'resource',
|
|
|
|
|
// 角色管理和绑定用户权限
|
|
|
|
|
Role: 'role',
|
|
|
|
|
// 权限管理和绑定角色权限
|
|
|
|
|
Auth: 'auth',
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const level = {
|
|
|
|
|
None: 0,
|
|
|
|
|
Do: 1,
|
|
|
|
|
Part: 1,
|
|
|
|
|
Read: 2,
|
|
|
|
|
Create: 3,
|
|
|
|
|
Update: 4,
|
|
|
|
|
Delete: 5,
|
|
|
|
|
All: 6
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class authLevel {
|
|
|
|
|
level = level.None
|
|
|
|
|
constructor(level: number) {
|
|
|
|
|
this.level = level
|
|
|
|
|
}
|
|
|
|
|
CanDo(): boolean {
|
|
|
|
|
return this.level >= level.Do
|
|
|
|
|
}
|
|
|
|
|
CanRead(): boolean {
|
|
|
|
|
return this.level >= level.Read
|
|
|
|
|
}
|
|
|
|
|
CanCreate(): boolean {
|
|
|
|
|
return this.level >= level.Create
|
|
|
|
|
}
|
|
|
|
|
CanUpdate(): boolean {
|
|
|
|
|
return this.level >= level.Update
|
|
|
|
|
}
|
|
|
|
|
CanDelete(): boolean {
|
|
|
|
|
return this.level >= level.Delete
|
|
|
|
|
}
|
|
|
|
|
CanDoAny(): boolean {
|
|
|
|
|
return this.level >= level.All
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export class Auths {
|
|
|
|
|
private readonly list: modelsSimpleAuth[]
|
|
|
|
|
|
|
|
|
|
constructor(auths: modelsSimpleAuth[]) {
|
|
|
|
|
this.list = auths
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Get(rid: string, ruid: string): authLevel {
|
|
|
|
|
let l = level.None
|
|
|
|
|
for (let i of this.list) {
|
|
|
|
|
if (i.RID == rid && (i.RUID === '' || i.RUID === ruid) && i.Level > l) {
|
|
|
|
|
l = i.Level
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return new authLevel(l)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function NewAuths(a: modelsSimpleAuth[]) {
|
|
|
|
|
return new Auths(a)
|
|
|
|
|
}
|