ow
This commit is contained in:
1 parent
1404640f16
commit
2bbf016cbf
167 files changed
+18941
-589
No files matched your search
@@ -0,0 +1,89 @@
|
||||
import { SecurityUserPermissionInfo } from "@/data/auto/securityUserPermissionInfo";
|
||||
import { LoginProfile } from "@/data/auto/loginProfile";
|
||||
import { useLoginProfileStore } from "@/store/modules/loginProfile";
|
||||
import { YesNoPolicy } from "@/data/custom/yesNoPolicy";
|
||||
|
||||
export class PermissionContext {
|
||||
private userPermissons!: SecurityUserPermissionInfo;
|
||||
constructor(userPermissons: SecurityUserPermissionInfo) {
|
||||
this.userPermissons = userPermissons ?? new SecurityUserPermissionInfo();
|
||||
}
|
||||
|
||||
canView(permission: string, dataSensitiveId?: string): boolean {
|
||||
if (dataSensitiveId) {
|
||||
return (
|
||||
this.userPermissons.PermissionDependents?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission &&
|
||||
x.DependentDetailName === dataSensitiveId
|
||||
) === true
|
||||
);
|
||||
}
|
||||
return (
|
||||
this.userPermissons.Permissions?.some(
|
||||
(x) => x.PermissionName === permission
|
||||
) === true
|
||||
);
|
||||
}
|
||||
|
||||
canCreate(permission: string, dataSensitiveId?: string): boolean {
|
||||
if (dataSensitiveId) {
|
||||
return (
|
||||
this.userPermissons.PermissionDependents?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission &&
|
||||
x.DependentDetailName === dataSensitiveId &&
|
||||
x.CreateIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
return (
|
||||
this.userPermissons.Permissions?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission && x.CreateIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
|
||||
canAmend(permission: string, dataSensitiveId?: string): boolean {
|
||||
if (dataSensitiveId) {
|
||||
return (
|
||||
this.userPermissons.PermissionDependents?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission &&
|
||||
x.DependentDetailName === dataSensitiveId &&
|
||||
x.AmendIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
return (
|
||||
this.userPermissons.Permissions?.some(
|
||||
(x) => x.PermissionName === permission && x.AmendIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
|
||||
canDelete(permission: string, dataSensitiveId?: string): boolean {
|
||||
if (dataSensitiveId) {
|
||||
return (
|
||||
this.userPermissons.PermissionDependents?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission &&
|
||||
x.DependentDetailName === dataSensitiveId &&
|
||||
x.DeleteIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
return (
|
||||
this.userPermissons.Permissions?.some(
|
||||
(x) =>
|
||||
x.PermissionName === permission && x.DeleteIndc == YesNoPolicy.YES
|
||||
) === true
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export function usePermissionContext(): PermissionContext {
|
||||
const userLoginProfile = useLoginProfileStore();
|
||||
return new PermissionContext(userLoginProfile.getPermissionInfo()!);
|
||||
}
|
||||
Reference in new issue
Block a user