#630: Deleting user's profile pics on deleting of user account (#646)

* Issue-630: Fixed issue with deleting user profile pics when deleting a user.

* Issue #630: Deleting user's profile pics on deleting of user account

* Issue-630: Added test case for deleting user
This commit is contained in:
Sampath Kumar 2018-01-28 19:20:24 +05:30 committed by Dan Brown
parent 4eb5205070
commit 35e00ddb95
2 changed files with 25 additions and 1 deletions

View File

@ -3,6 +3,7 @@
use BookStack\Role;
use BookStack\User;
use Exception;
use BookStack\Services\ImageService;
class UserRepo
{
@ -10,6 +11,7 @@ class UserRepo
protected $user;
protected $role;
protected $entityRepo;
protected $imageService;
/**
* UserRepo constructor.
@ -17,11 +19,12 @@ class UserRepo
* @param Role $role
* @param EntityRepo $entityRepo
*/
public function __construct(User $user, Role $role, EntityRepo $entityRepo)
public function __construct(User $user, Role $role, EntityRepo $entityRepo, ImageService $imageService)
{
$this->user = $user;
$this->role = $role;
$this->entityRepo = $entityRepo;
$this->imageService = $imageService;
}
/**
@ -145,6 +148,12 @@ class UserRepo
{
$user->socialAccounts()->delete();
$user->delete();
// Deleting User profile pics
$profilePic = $user->image_id ? $user->avatar->findOrFail($user->image_id) : FALSE;
if ($profilePic) {
$this->imageService->destroyImage($profilePic);
}
}
/**

View File

@ -115,4 +115,19 @@ class UserProfileTest extends BrowserKitTest
->visit('/books')
->pageHasElement('.featured-image-container');
}
public function test_user_delete()
{
$newUser = $this->getNewBlankUser();
$this->actingAs($newUser);
$this->asAdmin()->visit('/settings/users/' . $newUser->id . '/delete')
->see('Delete User')
->press('Confirm')
->seePageIs('/settings/users/')
->see('USERS')->see('ADD NEW USER');
$this->dontSeeInDatabase('images', [
'id' => $newUser->image_id
]);
}
}