Example #1
0
 /**
  * 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');
 }