diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index cdda440da7d5..ade73a6f7f8a 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -438,9 +438,23 @@ class UserController extends BaseController */ public function destroy(DestroyUserRequest $request, User $user) { - $user->delete(); + /* If the user passes the company user we archive the company user */ + if(array_key_exists('company_user', $request->all())) + { + $this->forced_includes = 'company_users'; + + $company = auth()->user()->company(); + + $cu = CompanyUser::whereUserId($user->id) + ->whereCompanyId($company->id) + ->first(); + + $cu->delete(); + } + else + $user->delete(); - return response()->json([], 200); + return $this->itemResponse($user->fresh()); } /** diff --git a/app/Models/User.php b/app/Models/User.php index 70be762922e9..e7106aeb2c14 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -178,7 +178,7 @@ class User extends Authenticatable implements MustVerifyEmail public function company_users() { - return $this->hasMany(CompanyUser::class); + return $this->hasMany(CompanyUser::class)->withTrashed(); } public function company_user() @@ -187,7 +187,7 @@ class User extends Authenticatable implements MustVerifyEmail $this->id = auth()->user()->id; } - return $this->hasOneThrough(CompanyUser::class, CompanyToken::class, 'user_id', 'company_id', 'id', 'company_id')->where('company_user.user_id', $this->id); + return $this->hasOneThrough(CompanyUser::class, CompanyToken::class, 'user_id', 'company_id', 'id', 'company_id')->where('company_user.user_id', $this->id)->withTrashed(); } /** diff --git a/app/Transformers/CompanyTransformer.php b/app/Transformers/CompanyTransformer.php index 96eaa33bf320..89ccb6b9dd09 100644 --- a/app/Transformers/CompanyTransformer.php +++ b/app/Transformers/CompanyTransformer.php @@ -109,6 +109,8 @@ class CompanyTransformer extends EntityTransformer 'updated_at' => (int)$company->updated_at, 'archived_at' => (int)$company->deleted_at, 'created_at' =>(int)$company->created_at, + 'slack_webhook_url' => (string)$company->slack_webhook_url, + 'google_analytics_url' => (string)$company->google_analytics_url, ]; } diff --git a/app/Transformers/CompanyUserTransformer.php b/app/Transformers/CompanyUserTransformer.php index 15bf30cc20a1..0b7d23301d09 100644 --- a/app/Transformers/CompanyUserTransformer.php +++ b/app/Transformers/CompanyUserTransformer.php @@ -53,6 +53,7 @@ class CompanyUserTransformer extends EntityTransformer // 'user_id' => $company_user->user_id, // 'company_id' => $company_user->company_id, 'permissions' => $company_user->permissions ?: '', + 'notifications' => $company_user->notifications ?: '', 'settings' => $company_user->settings, 'is_owner' => (bool) $company_user->is_owner, 'is_admin' => (bool) $company_user->is_admin,