Skip to main content

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:

FieldTypeDescription
searchstringSearch by username, email, or name
is_activebooleanFilter by active status
is_staffbooleanFilter by staff status
is_superuserbooleanFilter by superuser status
is_deletedbooleanFilter 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, ... }]