mirror of
https://git.imnavajas.es/jjimenez/erp-imprimelibros.git
synced 2026-01-13 00:48:49 +00:00
47 lines
1.4 KiB
Java
47 lines
1.4 KiB
Java
package com.imprimelibros.erp.users;
|
|
|
|
import com.imprimelibros.erp.datatables.DataTablesResponse;
|
|
|
|
import jakarta.servlet.http.HttpServletRequest;
|
|
|
|
import org.springframework.data.jpa.domain.Specification;
|
|
import org.springframework.stereotype.Controller;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.security.access.prepost.PreAuthorize;
|
|
|
|
import com.imprimelibros.erp.datatables.DataTablesRequest;
|
|
import com.imprimelibros.erp.datatables.DataTablesParser;
|
|
import com.imprimelibros.erp.datatables.DataTable;
|
|
|
|
import java.util.Map;
|
|
import java.util.List;
|
|
|
|
@Controller
|
|
@RequestMapping("/users")
|
|
public class UserController {
|
|
|
|
private UserDao repo;
|
|
|
|
public UserController(UserDao repo, UserService userService) {
|
|
this.repo = repo;
|
|
}
|
|
|
|
@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERADMIN')")
|
|
@GetMapping("/")
|
|
public DataTablesResponse<Map<String,Object>> datatable(HttpServletRequest request) {
|
|
|
|
DataTablesRequest dt = DataTablesParser.from(request);
|
|
|
|
Specification<User> base = (root, query, cb) -> cb.conjunction();
|
|
long total = repo.count();
|
|
|
|
return DataTable
|
|
.of(repo, User.class, dt, List.of(
|
|
"username", "email", "role" // campos buscables
|
|
))
|
|
.where(base)
|
|
.toJson(total);
|
|
}
|
|
}
|