4
4
5
5
namespace Kanvas \Companies \Actions ;
6
6
7
+ use Kanvas \Apps \Models \Apps ;
8
+ use Kanvas \Auth \Services \AuthenticationService ;
7
9
use Kanvas \Companies \DataTransferObject \Company ;
8
10
use Kanvas \Companies \Models \Companies ;
9
11
use Kanvas \Companies \Repositories \CompaniesRepository ;
10
12
use Kanvas \Users \Models \Users ;
13
+ use Kanvas \Users \Repositories \UsersRepository ;
11
14
12
15
class UpdateCompaniesAction
13
16
{
@@ -29,6 +32,20 @@ public function execute(): Companies
29
32
return $ value !== null ;
30
33
});
31
34
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
+
32
49
$ this ->companies ->updateOrFail ($ data );
33
50
34
51
if ($ this ->data ->files ) {
@@ -41,4 +58,17 @@ public function execute(): Companies
41
58
42
59
return $ this ->companies ;
43
60
}
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
+ }
44
74
}
0 commit comments