return User::query()->findOrFail($id);
}
+ /**
+ * Get a user by their slug.
+ */
+ public function getBySlug(string $slug): User
+ {
+ return User::query()->where('slug', '=', $slug)->firstOrFail();
+ }
+
/**
* Get all the users with their permissions.
*/
return User::query()->with('roles', 'avatar')->orderBy('name', 'asc')->get();
}
+ /**
+ * Get all users as Builder for API
+ */
+ public function getUsersBuilder(int $id = null ) : Builder
+ {
+ $query = User::query()->select(['*'])
+ ->withLastActivityAt()
+ ->with(['roles', 'avatar']);
+ return $query;
+ }
/**
* Get all the users with their permissions in a paginated format.
*/
public function getAllUsersPaginatedAndSorted(int $count, array $sortData): LengthAwarePaginator
{
$sort = $sortData['sort'];
- if ($sort === 'latest_activity') {
- $sort = \BookStack\Actions\Activity::query()->select('created_at')
- ->whereColumn('activities.user_id', 'users.id')
- ->latest()
- ->take(1);
- }
- $query = User::query()->with(['roles', 'avatar', 'latestActivity'])
+ $query = User::query()->select(['*'])
+ ->withLastActivityAt()
+ ->with(['roles', 'avatar'])
->orderBy($sort, $sortData['order']);
if ($sortData['search']) {
'email_confirmed' => $emailConfirmed,
'external_auth_id' => $data['external_auth_id'] ?? '',
];
- return User::query()->forceCreate($details);
+
+ $user = new User();
+ $user->forceFill($details);
+ $user->refreshSlug();
+ $user->save();
+
+ return $user;
}
/**