44
55namespace Kanvas \Companies \Actions ;
66
7+ use Kanvas \Apps \Models \Apps ;
8+ use Kanvas \Auth \Services \AuthenticationService ;
79use Kanvas \Companies \DataTransferObject \Company ;
810use Kanvas \Companies \Models \Companies ;
911use Kanvas \Companies \Repositories \CompaniesRepository ;
1012use Kanvas \Users \Models \Users ;
13+ use Kanvas \Users \Repositories \UsersRepository ;
1114
1215class 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