public function getIndex()
 {
     $actions = array();
     foreach (AdminAction::where('inherit', '=', 0)->where('edit_based', '=', 0)->get() as $action) {
         if (!isset($actions[$action->controller_id])) {
             $actions[$action->controller_id] = array();
         }
         if ($action->action == 'version-publish' && $action->controller_id == 2) {
             $publishing_action_id = $action->id;
         }
         $actions[$action->controller_id][$action->id] = $action;
     }
     // alter actions shown based on site settings
     if (!config('coaster::admin.publishing') && isset($publishing_action_id)) {
         unset($actions[2][$publishing_action_id]);
     }
     if (config('coaster::admin.advanced_permissions')) {
         $action = new \stdClass();
         $action->id = -1;
         $action->name = 'Advanced page based permissions';
         $actions[2][] = $action;
     }
     $roles = array();
     foreach (UserRole::where('admin', '=', 1)->get() as $role) {
         $roles[$role->id] = $role->name;
     }
     $sections = array();
     $group = array(1 => 'Content Management', 2 => 'Settings', 3 => 'User Admin');
     foreach ($group as $id => $name) {
         $sections[$id] = '';
     }
     foreach (AdminController::orderBy('role_order', 'asc')->get() as $controller) {
         $options = '';
         if (!isset($actions[$controller->id])) {
             continue;
         }
         foreach ($actions[$controller->id] as $action) {
             $class = ' controller-' . $controller->controller;
             $options .= View::make('coaster::partials.roles.option', array('name' => $action->name, 'id' => $action->id, 'val' => false, 'class' => $class))->render();
         }
         $sections[$controller->role_section] .= View::make('coaster::partials.roles.section', array('section' => $controller->role_name, 'options' => $options))->render();
     }
     $content = '';
     foreach ($group as $id => $name) {
         $content .= View::make('coaster::partials.roles.group', array('group' => $name, 'sections' => $sections[$id]))->render();
     }
     $this->layoutData['content'] = View::make('coaster::pages.roles', array('actions' => $content, 'roles' => $roles));
     $copy_roles = $roles;
     $copy_roles[0] = '-- None --';
     ksort($copy_roles);
     $this->layoutData['modals'] = View::make('coaster::modals.roles.add', array('roles' => $copy_roles))->render() . View::make('coaster::modals.roles.delete', array('roles' => $roles))->render();
 }