예제 #1
0
파일: Users.php 프로젝트: rabbitcms/backend
 /**
  * @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);
 }
예제 #2
0
 /**
  * @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);
 }
예제 #3
0
<?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']);