User Data Provider
User management: list, get, create, update, delete users.
Setup
<Refine
dataProvider={{
default: dataProvider(client),
user: userDataProvider(client),
}}
/>
List Users
const { result, query } = useList({
resource: "users",
dataProviderName: "user",
pagination: { currentPage: 1, pageSize: 10 },
filters: [
{ field: "is_active", operator: "eq", value: true },
{ field: "search", operator: "eq", value: "john" },
],
sorters: [{ field: "username", order: "asc" }],
});
// result.data → User[], result.total → number
Supported filters:
| Field | Type | Description |
|---|---|---|
search | string | Search by username, email, or name |
is_active | boolean | Filter by active status |
is_staff | boolean | Filter by staff status |
is_superuser | boolean | Filter by superuser status |
is_deleted | boolean | Filter by deleted status |
Get User
// By username or ID
const { result, query } = useOne({ resource: "users", dataProviderName: "user", id: "john_doe" });
// result.data → { id, username, email, first_name, last_name, is_active, ... }
Create User
const { mutate, mutation } = useCreate();
mutate({
resource: "users",
dataProviderName: "user",
values: { username: "jane", email: "[email protected]", password: "..." },
});
// mutation.isLoading, mutation.isSuccess
// onSuccess result.data → created User object
Update User
const { mutate, mutation } = useUpdate();
mutate({
resource: "users",
dataProviderName: "user",
id: "jane",
values: { first_name: "Jane", last_name: "Doe" },
});
// onSuccess result.data → updated User object
Delete User
const { mutate, mutation } = useDelete();
mutate({ resource: "users", dataProviderName: "user", id: "jane" });
Get User Roles
const { result, query } = useList({
resource: "roles",
dataProviderName: "user",
meta: { username: "john_doe" },
});
// result.data → [{ id, name, permissions, ... }]