use BookStack\Entities\Models\Page;
use BookStack\Exceptions\NotFoundException;
use BookStack\Exceptions\UserUpdateException;
-use BookStack\Uploads\Image;
use BookStack\Uploads\UserAvatars;
use Exception;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Pagination\LengthAwarePaginator;
-use Images;
use Log;
class UserRepo
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.
*/
'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;
}
/**
{
$user->socialAccounts()->delete();
$user->apiTokens()->delete();
+ $user->favourites()->delete();
$user->delete();
// Delete user profile images
- $profileImages = Image::query()->where('type', '=', 'user')
- ->where('uploaded_to', '=', $user->id)
- ->get();
-
- foreach ($profileImages as $image) {
- Images::destroy($image);
- }
+ $this->userAvatar->destroyAllForUser($user);
if (!empty($newOwnerId)) {
$newOwner = User::query()->find($newOwnerId);