Skip to content

Commit 9d31792

Browse files
feat: deactivate and logout company users
1 parent bd6a746 commit 9d31792

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/Kanvas/Companies/Actions/UpdateCompaniesAction.php

+30
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,13 @@
44

55
namespace Kanvas\Companies\Actions;
66

7+
use Kanvas\Apps\Models\Apps;
8+
use Kanvas\Auth\Services\AuthenticationService;
79
use Kanvas\Companies\DataTransferObject\Company;
810
use Kanvas\Companies\Models\Companies;
911
use Kanvas\Companies\Repositories\CompaniesRepository;
1012
use Kanvas\Users\Models\Users;
13+
use Kanvas\Users\Repositories\UsersRepository;
1114

1215
class UpdateCompaniesAction
1316
{
@@ -29,6 +32,20 @@ public function execute(): Companies
2932
return $value !== null;
3033
});
3134

35+
if (isset($data['is_active'])) {
36+
$users = $this->companies->users;
37+
$app = app(Apps::class);
38+
if ($data['is_active'] === false) {
39+
foreach ($users as $user) {
40+
$this->deactivateUser($user, $app);
41+
}
42+
} else {
43+
foreach ($users as $user) {
44+
$this->activateUser($user, $app);
45+
}
46+
}
47+
}
48+
3249
$this->companies->updateOrFail($data);
3350

3451
if ($this->data->files) {
@@ -41,4 +58,17 @@ public function execute(): Companies
4158

4259
return $this->companies;
4360
}
61+
62+
public function deactivateUser(Users $user, Apps $app): bool
63+
{
64+
$userAssociate = UsersRepository::belongsToThisApp($user, $app);
65+
AuthenticationService::logoutFromAllDevices($userAssociate->user, $app);
66+
return $userAssociate->deActive();
67+
}
68+
69+
public function activateUser(Users $user, Apps $app): bool
70+
{
71+
$userAssociate = UsersRepository::belongsToThisApp($user, $app);
72+
return $userAssociate->active();
73+
}
4474
}

0 commit comments

Comments
 (0)