【发布时间】:2021-08-10 01:17:58
【问题描述】:
最近我正在使用 Angular 11,我正在尝试执行一个功能来检查帐户是否被允许执行操作,但是只要 SAS 令牌发生更改,我就必须获取它,也就是说,我做到了下面的函数
/**
*Verify if SAS has permissions
* @param sasUri Sas address
* @param permissions The permissions to verify
* @returns Boolean Value
*/
async hasPermissions(sasUri: string, permissions: SASInformationPermission[]): Promise<boolean> {
const permissionAccount = await this.getSASUriInformation(sasUri).toPromise();
return permissions.every((permission) => {
permissionAccount.signedPermissions.includes(permission);
});
}
/**
* Get validation of action permission
* @param sasUri Sas address
* @param action The action to check
* @returns Boolean value
*/
hasActionPermission(sasUri: string, action: Action): Observable<boolean> {
return defer(async () => {
let permission: SASInformationPermission[];
if (action === 'upload') {
permission = [
SASInformationPermission.Read,
SASInformationPermission.List,
SASInformationPermission.Write,
];
} else {
permission = [SASInformationPermission.List, SASInformationPermission.Read];
}
return await this.hasPermissions(sasUri, permission);
});
}
“hasPermissions”函数获取并检查 SAS 是否有权访问由参数传递的操作,并且“HasActionPermission”函数调用上述函数以获得布尔值
函数“HasActionPermission”根本不进入“return defer”会是什么?
【问题讨论】:
标签: angular typescript promise observable