در اینجا ، ما چهار نقش داریم: Sme ، Sponsor ، Admin ، Operations. در ابتدا ، ما فقط 3 نقش داشتیم. نقش عملیات بعداً اضافه شد و کاربر Operations مجوزهایی مشابه کاربر Admin دارد. در کد ، ما مجبور بودیم هر نمونه از موارد را جایگزین کنیم if (user.type == USER_TYPES.ADMIN) با if (user.type == USER_TYPES.ADMIN || user.type == USER_TYPES.OPERATIONS)از آنجا که این زمان بر است و ما همچنین می توانیم بسیاری از موارد را از دست بدهیم ، ماژول ایفای نقش ایجاد کرده ایم. در ماژول نقش ها ، نقش ها بهمراه مجوز مربوطه تعریف می شوند همانطور که در Code (قسمت -3) دیده می شود. براساس مجوزهای مربوط به هر نقش ، ما مجوز را برای کاربر در هر یک از روش های کنترل کننده خود ارزیابی خواهیم کرد. اگر کاربر دسترسی داشته باشد ، فقط در این صورت منابع به او اعطا می شود
کد (قسمت اول):
src / common / ثابت / enum.ts
export enum USER_TYPES {
SME = "Sme",
SPONSOR = "Sponsor",
ADMIN = "Admin",
OPERATIONS_TEAM = "Operations"
}
//rolesAccessAction
export enum ROLES_ACCESS_ACTION {
USERS_CONTROLLER_FINDLIST_OPERATIONS = "users.controller.findList_operations",
USERS_CONTROLLER_FINDLIST_ADMIN = "users.controller.findList_admin",
USERS_CONTROLLER_FIND_ONE = "users.controller.findOne",
USERS_CONTROLLER_KYC_FILTER = "users.controller.findListFilterKYCStatus",
USERS_CONTROLLER_USER_STATUS_FILTER =