در Controller یک متد با نام Filters وجود دارد که دسترسی به action های موجود در کنترل را فیلتر می کند. به عنوان مثال تعیین می کند که یک action با چه متدی از متدهای POST, GET, Ajax می تواند مورد دسترسی قرار گیرد.
علاوه بر این می توان صریحا مشخص نمود که چه action هایی را چه کسانی می توانند اجرا کنند و چه کسانی نمی توانند. برای این منظور یک فیلتر method-base به نام accessControl پیش ساخته وجود دارد که باید آن را در actionFilters قید کرد. فیلتر accessControl رل های دسترسی مورد نظر رو از متدی به نام accessRules می گیرد. بدین سبب احتیاج است که متد accessRules بازنویسی شود. این متد یک property از نوع آرایه به نام roles دارد، که در این property می بایست AuthItem های RBAC را به کار برد.

یک مقاله مفید هم در مورد نحوه ی چگونگی کارکرد RBAC در این آدرس وجود دارد که در فهم چگونگی پیمایش رل ها مفید است.

-----------------------------------
مقداری مطلب خود فهمی در مورد متد checkAccessRecursive کلاس CDbAuthManager: (خط 103 به بعد)
rule درخواستی رو در کل rule های اختصاص داده شده به کاربر جستجو میکند، اگر وجود داشت، BizRule هم بررسی می شود، در صورتی که BizRule هم True داد، مقدار True برگشت داده می شود.
اگر rule در خواستی در rule های اختصاص داده شده به کاربر یافت نشد، Parent های Rule درخواستی را از جدول AuthItemChild می گیرد و به ازای هر Parent متد checkAccessRecursive اجرا می شود.
اگر اعمال متد checkAccessRecursive بر روی Parent های Rule جاری یک مقدار True برنگرداند، یک مقدار False به عنوان نتیجه بازگردانده می شود.

$assignments = رل های نسبت داده شده به کاربر.
$itemName = رل ای که باید بررسی شود.
$userID = آی دی کاربر مبتنی بر متد getID کلاس UserIdentity.
$params = پارامترهای مورد نیاز برای BizRule.