/** * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function postIndex(Request $request) { $status = [0 => trans('backend::common.non_active'), 1 => trans('backend::common.active')]; $query = UserModel::query(); $recordsTotal = $query->count(); $filters = $request->input('filter', []); if (!empty($filters['id'])) { $query->where('id', '=', $filters['id']); } if (array_key_exists('active', $filters) && $filters['active'] !== '') { $query->where('active', '=', $filters['active']); } if (!empty($filters['email'])) { strpos($filters['email'], '%') !== false ? $query->where('email', 'like', $filters['email']) : $query->where('email', '=', strtolower($filters['email'])); } $recordsFiltered = $query->count(); $query->limit($request->input('length', 25))->offset($request->input('start', 0)); $query->orderBy('id', 'desc'); $collection = $query->get(); $result = []; foreach ($collection as $item) { $edit_link = relative_route('backend.backend.users.edit', ['id' => $item->id]); $edit_link_html = html_link($edit_link, '<i class="fa fa-pencil"></i>', ['rel' => 'ajax-portlet', 'class' => 'btn btn-sm green', 'title' => trans('backend::common.buttons.edit')]); $destroy_link = relative_route('backend.backend.users.destroy', ['id' => $item->id]); $destroy_link_html = html_link($destroy_link, '<i class="fa fa-trash-o"></i>', ['rel' => 'destroy', 'class' => 'btn btn-sm red', 'title' => trans('backend::common.buttons.destroy')]); $result[] = [$item->id, $item->name, $item->email, array_key_exists($item->active, $status) ? $status[$item->active] : $item->active, $edit_link_html . $destroy_link_html]; } $data = ['data' => $result, 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'draw' => $request->input('draw')]; return \Response::json($data, 200, [], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }
/** * @param $id * @param Request $request * @return \Illuminate\Http\JsonResponse */ public function getUsers($id, Request $request) { /** * @var GroupModel $group */ $group = GroupModel::query()->findOrFail($id); $query = $group->users(); $recordsFiltered = $recordsTotal = $query->count(); $query->limit($request->input('length', 25))->offset($request->input('start', 0)); $query->orderBy('id', 'desc'); $collection = $query->get(); $result = []; foreach ($collection as $item) { $destroy_link = relative_route('backend.backend.groups.users.destroy', ['group_id' => $group->id, 'user_id' => $item->id]); $destroy_link_html = html_link($destroy_link, '<i class="fa fa-trash-o"></i>', ['rel' => 'destroy', 'class' => 'btn btn-sm red', 'title' => trans('backend::common.buttons.destroy')]); $result[] = [$item->id, $item->email . (empty($item->name) ? '' : ' - ' . $item->name), $destroy_link_html]; } $data = ['data' => $result, 'recordsTotal' => $recordsTotal, 'recordsFiltered' => $recordsFiltered, 'draw' => $request->input('draw')]; return \Response::json($data, 200, [], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); }
<?php use Illuminate\Routing\Router; use RabbitCMS\Backend\Support\Backend; return ['boot' => function (Backend $backend) { $backend->addAclResolver(function (Backend $acl) { $acl->addAclGroup('system', trans('backend::acl.system.title')); $acl->addAcl('system', 'users.read', trans('backend::acl.users.read')); $acl->addAcl('system', 'users.write', trans('backend::acl.users.write')); $acl->addAcl('system', 'groups.read', trans('backend::acl.groups.read')); $acl->addAcl('system', 'groups.write', trans('backend::acl.groups.write')); }); $backend->addMenuResolver(function (Backend $menu) { $menu->addMenu(null, 'system', trans('backend::menu.system'), null, 'icon-settings', null, 100000); $menu->addMenu('system', 'users', trans('backend::menu.users'), relative_route('backend.backend.users'), 'fa-angle-double-right', ['system.users.read'], 10); $menu->addMenu('system', 'groups', trans('backend::menu.groups'), relative_route('backend.backend.groups'), 'fa-angle-double-right', ['system.groups.read'], 20); }, Backend::MENU_PRIORITY_MENU); }, 'routes' => function (Router $router) { $router->group(['prefix' => 'users'], function (\Illuminate\Routing\Router $router) { $router->get('', ['as' => 'users', 'uses' => 'Users@getIndex']); $router->post('', ['as' => 'users.list', 'uses' => 'Users@postIndex']); $router->get('create', ['as' => 'users.create', 'uses' => 'Users@getCreate']); $router->post('create', ['as' => 'users.store', 'uses' => 'Users@postCreate']); $router->get('edit/{id}', ['as' => 'users.edit', 'uses' => 'Users@getEdit']); $router->post('edit/{id}', ['as' => 'users.update', 'uses' => 'Users@postEdit']); $router->any('delete/{id}', ['as' => 'users.destroy', 'uses' => 'Users@anyDelete']); }); $router->group(['prefix' => 'groups'], function (\Illuminate\Routing\Router $router) { $router->get('', ['as' => 'groups', 'uses' => 'Groups@getIndex']); $router->post('', ['as' => 'groups.list', 'uses' => 'Groups@postIndex']); $router->get('create', ['as' => 'groups.create', 'uses' => 'Groups@getCreate']);