UserController
extends Controller
in package
uses
Filterable
User management controller
Handles user CRUD operations, profile management, and administrative functions. Includes filtering, searching, and pagination capabilities for user listings.
Attributes
- #[Middleware]
- ['auth:sanctum', 'ability:' . \App\Models\TokenAbility::ACCESS_API->value, 'force.json']
- #[Prefix]
- 'users'
Table of Contents
Methods
- create() : UserResource
- Create a new user account
- destroy() : Response
- Delete a user account
- index() : AnonymousResourceCollection
- Get a paginated collection of users
- me() : UserResource
- Get authenticated user profile
- show() : UserResource
- Get a specific user's public profile
- update() : UserResource
- Update an existing user
- applyColumnFilters() : void
- Apply column filters to the query.
- applyFilters() : LengthAwarePaginator
- Apply the query filters, sorting, and pagination.
- applyGlobalFilter() : void
- Apply global filter to the query.
- applySorting() : void
- Apply sorting to the query.
- denyWithStatus() : mixed
- gateCheckExecuteJob() : mixed
- gateCheckViewDashboard() : mixed
- noContent() : mixed
Methods
create()
Create a new user account
public
create(CreateUserRequest $request) : UserResource
Administrative endpoint that allows authorized users to create new user accounts with specified roles and permissions. Created users will receive email verification.
Parameters
- $request : CreateUserRequest
-
Request containing validated user data
Tags
Attributes
- #[Post]
- '/'
- 'api.users.store'
Return values
UserResourcedestroy()
Delete a user account
public
destroy(User $user) : Response
Permanently removes a user account and all associated data. This action cannot be undone. All user tokens are revoked and associated content is handled according to the configured deletion policy.
Parameters
- $user : User
-
The user to delete
Tags
Attributes
- #[Delete]
- '/{user}'
- 'api.users.destroy'
Return values
Responseindex()
Get a paginated collection of users
public
index(UserIndexRequest $request) : AnonymousResourceCollection
Returns a filtered and paginated list of all users in the system. Supports global search across name and email fields, plus advanced filtering options for administrative user management.
Parameters
- $request : UserIndexRequest
-
Request with filtering and pagination parameters
Tags
Attributes
- #[Get]
- '/'
- 'api.users.index'
Return values
AnonymousResourceCollectionme()
Get authenticated user profile
public
me(Request $request) : UserResource
Returns the profile information of the currently authenticated user including roles, permissions, and associated libraries.
Parameters
- $request : Request
-
Authenticated request
Tags
Attributes
- #[Get]
- '/me'
- 'api.users.me'
Return values
UserResourceshow()
Get a specific user's public profile
public
show(User $user) : UserResource
Retrieves public profile information for a specific user. Sensitive information is filtered based on privacy settings and permissions.
Parameters
- $user : User
-
The user to retrieve
Tags
Attributes
- #[Get]
- '/{user}'
- 'api.users.show'
Return values
UserResourceupdate()
Update an existing user
public
update(User $user, UpdateUserRequest $request) : UserResource
Updates user information including profile data, roles, and permissions. Users can update their own profiles, while administrators can update any user.
Parameters
- $user : User
-
The user to update
- $request : UpdateUserRequest
-
Request containing validated update data
Tags
Attributes
- #[Patch]
- '/{user}'
- 'api.users.update'
Return values
UserResourceapplyColumnFilters()
Apply column filters to the query.
protected
applyColumnFilters(BaseBuilder|Builder $query, array<string|int, mixed> $filters, array<string|int, mixed> $filterModes) : void
Parameters
- $query : BaseBuilder|Builder
- $filters : array<string|int, mixed>
- $filterModes : array<string|int, mixed>
applyFilters()
Apply the query filters, sorting, and pagination.
protected
applyFilters(Request $request, class-string $model[, array<string|int, mixed> $columnsForGlobalFilter = [] ]) : LengthAwarePaginator
Parameters
- $request : Request
- $model : class-string
- $columnsForGlobalFilter : array<string|int, mixed> = []
Return values
LengthAwarePaginatorapplyGlobalFilter()
Apply global filter to the query.
protected
applyGlobalFilter(BaseBuilder|Builder $query, string $globalFilter, array<string|int, mixed> $columns) : void
Parameters
- $query : BaseBuilder|Builder
- $globalFilter : string
- $columns : array<string|int, mixed>
applySorting()
Apply sorting to the query.
protected
applySorting(BaseBuilder|Builder $query, array<string|int, mixed> $sorting) : void
Parameters
- $query : BaseBuilder|Builder
- $sorting : array<string|int, mixed>
denyWithStatus()
protected
denyWithStatus(string $message, int $status) : mixed
Parameters
- $message : string
- $status : int
gateCheckExecuteJob()
protected
gateCheckExecuteJob() : mixed
gateCheckViewDashboard()
protected
gateCheckViewDashboard() : mixed
noContent()
protected
noContent() : mixed