コード例 #1
0
ファイル: Backend.php プロジェクト: rabbitcms/backend
 /**
  * Check items permissions.
  *
  * @param User $user
  * @param array $items
  *
  * @return array
  */
 protected function accessFilter(User $user, array $items)
 {
     $filteredItems = array_filter($items, function ($item) use($user) {
         return $item['permissions'] === null || $user->hasAccess($item['permissions'], false);
     });
     array_walk($filteredItems, function (&$item) use($user) {
         if (count($item['items']) > 0) {
             $item['items'] = $this->accessFilter($user, $item['items']);
         }
     });
     //cleanup empty menus
     return array_filter($filteredItems, function ($item) use($user) {
         return $item['url'] !== null || count($item['items']) > 0;
     });
 }