/** * Display a listing of users * * @return Response */ public function index() { if (!User::canList()) { return $this->_access_denied(); } if (Request::ajax()) { $users_under_me = Auth::user()->getAuthorizedUserids(User::$show_authorize_flag); if (empty($users_under_me)) { $users = User::with('roles')->whereNotNull('users.created_at'); } else { $users = User::with('roles')->whereIn('users.user_id', $users_under_me); } $users = $users->select(['users.id', 'users.last_name', 'users.id as roles_column', 'users.confirmed', 'users.id as actions', 'users.first_name']); return Datatables::of($users)->edit_column('last_name', function ($user) { return $user->first_name . ' ' . $user->last_name; })->edit_column('roles_column', function ($user) { return '<ul>' . implode('', array_map(function ($name) { return '<li>' . $name . '</li>'; }, $user->roles->lists('name'))) . '</ul>'; })->edit_column('confirmed', function ($user) { return $user->status(); })->edit_column('actions', function ($data) { $actions = []; $actions[] = $data->canShow() ? link_to_action('users.show', 'Show', $data->id, ['class' => 'btn btn-xs btn-primary']) : ''; $actions[] = $data->canUpdate() ? link_to_action('users.edit', 'Update', $data->id, ['class' => 'btn btn-xs btn-default']) : ''; $actions[] = $data->canDelete() ? Former::open(action('users.destroy', $data->id))->class('form-inline') . Former::hidden('_method', 'DELETE') . '<button type="button" class="btn btn-danger btn-xs confirm-delete">Delete</button>' . Former::close() : ''; return implode(' ', $actions); })->remove_column('id')->make(); } Asset::push('js', 'datatables'); return View::make('users.index'); }