@buession/shiro
Version:
A security framework for JavaScript or TypeScript.
100 lines (99 loc) • 2.16 kB
TypeScript
export interface PrincipalPlainObject {
/**
* 用户 ID
*/
id: string;
/**
* 用户角色名称列表
*/
roles: string[];
/**
* 用户权限列表
*/
permissions: string[];
}
export interface Principal {
/**
* 返回用户 ID
*
* @return 用户 ID
*/
getId(): string;
/**
* 设置用户 ID
*
* @param id
* 用户 ID
*/
setId(id: string): void;
/**
* 返回用户角色名称列表
*
* @return 用户角色名称列表
*/
getRoles(): string[];
/**
* 设置用户角色
*
* @param roleNames
* 用户角色名称列表
*/
setRoles(roleNames: string[]): void;
/**
* 添加用户角色
*
* @param roleName
* 用户角色名称
*/
addRole(roleName: string): void;
/**
* 批量添加用户角色
*
* @param roleNames
* 用户角色名称列表
*/
addRoles(roleNames: string[]): void;
/**
* 返回用户权限列表
*
* @return 用户权限列表
*/
getPermissions(): string[];
/**
* 设置用户权限
*
* @param permissions
* 用户权限列表
*/
setPermissions(permissions: string[]): void;
/**
* 添加用户权限
*
* @param permission
* 用户权限
*/
addPermission(permission: string): void;
/**
* 批量添加用户权限
*
* @param permissions
* 用户权限列表
*/
addPermissions(permissions: string[]): void;
}
export declare class DefaultPrincipal implements Principal {
private id;
private roles;
private permissions;
constructor(id: string, roles: string[], permissions: string[]);
getId(): string;
setId(id: string): void;
getRoles(): string[];
setRoles(roleNames: string[]): void;
addRole(roleName: string): void;
addRoles(roleNames: string[]): void;
getPermissions(): string[];
setPermissions(permissions: string[]): void;
addPermission(permission: string): void;
addPermissions(permissions: string[]): void;
}