diff --git a/app/Events/Contact/ContactLoggedIn.php b/app/Events/Contact/ContactLoggedIn.php new file mode 100644 index 000000000000..de677dfcbb4a --- /dev/null +++ b/app/Events/Contact/ContactLoggedIn.php @@ -0,0 +1,57 @@ +client_contact = $client_contact; + + } + + /** + * Get the channels the event should broadcast on. + * + * @return \Illuminate\Broadcasting\Channel|array + */ + public function broadcastOn() + { + return new PrivateChannel('channel-name'); + } +} diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index 821a37f7b837..3043f15541dd 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -86,6 +86,8 @@ class LoginController extends BaseController */ public function apiLogin(Request $request) { + $this->forced_includes = ['company_users']; + $this->validateLogin($request); if ($this->hasTooManyLoginAttempts($request)) { diff --git a/app/Libraries/MultiDB.php b/app/Libraries/MultiDB.php index ac6819c6b1dc..92828f8f0cca 100644 --- a/app/Libraries/MultiDB.php +++ b/app/Libraries/MultiDB.php @@ -141,13 +141,13 @@ class MultiDB } - public static function findAndSetDbByDomain($host) :bool + public static function findAndSetDbByDomain($domain) :bool { foreach (self::$dbs as $db) { - if($company = Company::on($db)->whereDomain($host)->first()) + if($company = Company::on($db)->whereDomain($domain)->first()) { self::setDb($company->db); diff --git a/app/Models/CompanyUser.php b/app/Models/CompanyUser.php index c322b16a364f..f81062e50e7e 100644 --- a/app/Models/CompanyUser.php +++ b/app/Models/CompanyUser.php @@ -11,8 +11,6 @@ namespace App\Models; -use App\Models\CompanyToken; -use App\Models\User; use Illuminate\Database\Eloquent\Relations\Pivot; class CompanyUser extends Pivot diff --git a/app/Models/User.php b/app/Models/User.php index 119531f709d9..f99218bf6a88 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -156,6 +156,14 @@ class User extends Authenticatable implements MustVerifyEmail return $this->hasMany(CompanyUser::class); } + /** + * Alias of user_companies() + */ + public function company_users() + { + return $this->user_companies(); + } + /** * Returns the current company by * querying directly on the pivot table relationship diff --git a/app/Transformers/UserTransformer.php b/app/Transformers/UserTransformer.php index 2a6bb095c9c6..b4f7a50a13d0 100644 --- a/app/Transformers/UserTransformer.php +++ b/app/Transformers/UserTransformer.php @@ -52,8 +52,8 @@ class UserTransformer extends EntityTransformer * @var array */ protected $defaultIncludes = [ - // 'company_token', - // 'token', + //'company_users', + // 'token', ]; /** @@ -61,6 +61,7 @@ class UserTransformer extends EntityTransformer */ protected $availableIncludes = [ 'companies', + 'company_users', ]; @@ -82,15 +83,6 @@ class UserTransformer extends EntityTransformer ]; } - public function includeUserCompany(User $user) - { - - $transformer = new CompanyUserTransformer($this->serializer); - - return $this->includeItem($user->user_company(), $transformer, CompanyUser::class); - - } - public function includeCompanies(User $user) { @@ -117,4 +109,13 @@ class UserTransformer extends EntityTransformer return $this->includeCollection($user->tokens, $transformer, CompanyToken::class); } + + public function includeCompanyUsers(User $user) + { + + $transformer = new CompanyUserTransformer($this->serializer); + + return $this->includeCollection($user->user_companies, $transformer, CompanyUser::class); + + } } diff --git a/routes/api.php b/routes/api.php index cfd869aba488..85d8150248e2 100644 --- a/routes/api.php +++ b/routes/api.php @@ -21,11 +21,15 @@ Route::middleware('auth:api')->get('/user', function (Request $request) { Route::group(['middleware' => ['api_secret_check']], function () { Route::post('api/v1/signup', 'AccountController@store')->name('signup.submit'); - Route::post('api/v1/login', 'Auth\LoginController@apiLogin')->name('login.submit'); Route::post('api/v1/oauth_login', 'Auth\LoginController@oauthApiLogin'); }); +Route::group(['api_secret_check','domain_db'], function () { + + Route::post('api/v1/login', 'Auth\LoginController@apiLogin')->name('login.submit'); + +}); Route::group(['middleware' => ['db','api_secret_check','token_auth'], 'prefix' =>'api/v1', 'as' => 'api.'], function () {