راهنمای نهایی دسترسی سفارشی مبتنی بر نقش بدون کتابخانه شخص ثالث

عکس پروفایل نویسنده

در اینجا ، ما چهار نقش داریم: 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 =