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(); }