پرش به مطلب اصلی

دکوراتورهای کنترل دسترسی

دکوراتورهای کنترل دسترسی برای بررسی مجوزهای کاربر قبل از اجرای متد استفاده می‌شوند.

check.adminAccess

برای بررسی دسترسی ادمین استفاده می‌شود.

@check.adminAccess('شما دسترسی ادمین ندارید')
@api.get('/admin/users')
async getAllUsers() {
// کد پیاده‌سازی - فقط ادمین‌ها می‌توانند اجرا کنند
}

پارامترها

  • errorMessage: پیام خطا در صورت عدم دسترسی (اختیاری)

check.systemAccess

برای بررسی دسترسی‌های سیستمی استفاده می‌شود.

@check.systemAccess(UserSystemAccessLevel.FULL_ACCESS)
@api.get('/admin/dashboard')
async getAdminDashboard() {
// کد پیاده‌سازی
}

بررسی چندین دسترسی

@check.systemAccess([UserSystemAccessLevel.FULL_ACCESS, UserSystemAccessLevel.NODE_PACKAGES])
@api.post('/admin/users')
async createUser() {
// کد پیاده‌سازی
}

پارامترها

  • perm: سطح دسترسی یا آرایه‌ای از سطوح دسترسی
  • errorMessage: پیام خطا در صورت عدم دسترسی (اختیاری)

نحوه کارکرد

این دکوراتورها قبل از اجرای متد اصلی، مجوز کاربر را بررسی می‌کنند. اگر کاربر مجوز لازم را نداشته باشد، متد اجرا نمی‌شود و خطای 403 برگردانده می‌شود.

// مثال کامل
export class AdminApi extends ApplicationApi {
@check.adminAccess()
@api.get('/admin/stats')
async getStats() {
return await this.getSystemStats();
}
}