Re work the way we harvest a user token

This commit is contained in:
David Bomba 2019-06-11 13:20:23 +10:00
parent 51c5b96b68
commit f4ae84e954
12 changed files with 33 additions and 29 deletions

View File

@ -112,9 +112,13 @@ class UserFilters extends QueryFilters
*/ */
public function entityFilter() public function entityFilter()
{ {
//return $this->builder->user_companies()->whereCompanyId(auth()->user()->company()->id);
//return $this->builder->whereCompanyId(auth()->user()->company()->id);
return $this->builder->whereHas('user_companies', function($q)
{
$q->where('company_id', '=', auth()->user()->company()->id);
return $this->builder->whereCompanyId(auth()->user()->company()->id); });
} }
} }

View File

@ -55,7 +55,7 @@ class UserController extends BaseController
* *
* @return \Illuminate\Http\Response * @return \Illuminate\Http\Response
*/ */
public function index(UserFilters $filster) public function index(UserFilters $filters)
{ {
$users = User::filter($filters); $users = User::filter($filters);

View File

@ -89,21 +89,20 @@ class User extends Authenticatable implements MustVerifyEmail
* *
* @return Collection * @return Collection
*/ */
public function tokens() public function token()
{ {
return $this->hasMany(CompanyToken::class)->orderBy('id', 'ASC'); return $this->hasOne(CompanyToken::class)->orderBy('id', 'ASC');
} }
/** /**
* Return first user token * Return first user token
* *
* @return token object * @return token object
*/ */
public function token() //public function token()
{ //{
return $this->tokens()->first(); // return $this->tokens()->first();
} //}
/** /**
* Returns all companies a user has access to. * Returns all companies a user has access to.
@ -122,7 +121,7 @@ class User extends Authenticatable implements MustVerifyEmail
*/ */
public function company() public function company()
{ {
return $this->tokens()->whereRaw("BINARY `token`= ?", [request()->header('X-API-TOKEN')])->first()->company; return $this->token->whereRaw("BINARY `token`= ?", [request()->header('X-API-TOKEN')])->first()->company;
} }
/** /**

View File

@ -26,6 +26,7 @@ use App\Policies\ProductPolicy;
use App\Policies\QuotePolicy; use App\Policies\QuotePolicy;
use App\Policies\RecurringInvoicePolicy; use App\Policies\RecurringInvoicePolicy;
use App\Policies\RecurringQuotePolicy; use App\Policies\RecurringQuotePolicy;
use App\Policies\UserPolicy;
use Auth; use Auth;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider; use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;
use Illuminate\Support\Facades\Gate; use Illuminate\Support\Facades\Gate;

View File

@ -52,8 +52,8 @@ class UserTransformer extends EntityTransformer
* @var array * @var array
*/ */
protected $defaultIncludes = [ protected $defaultIncludes = [
'company_token', // 'company_token',
'token',
]; ];
/** /**
@ -61,7 +61,6 @@ class UserTransformer extends EntityTransformer
*/ */
protected $availableIncludes = [ protected $availableIncludes = [
'companies', 'companies',
'company_tokens',
]; ];
@ -101,12 +100,12 @@ class UserTransformer extends EntityTransformer
} }
public function includeCompanyToken(User $user) public function includeToken(User $user)
{ {
$transformer = new CompanyTokenTransformer($this->serializer); $transformer = new CompanyTokenTransformer($this->serializer);
return $this->includeItem($user->token(), $transformer, CompanyToken::class); return $this->includeItem($user->token, $transformer, CompanyToken::class);
} }

View File

@ -61,6 +61,8 @@ Route::group(['middleware' => ['db','api_secret_check','token_auth'], 'prefix' =
Route::post('payments/bulk', 'PaymentController@bulk')->name('payments.bulk'); Route::post('payments/bulk', 'PaymentController@bulk')->name('payments.bulk');
Route::resource('users', 'UserController'); // name = (users. index / create / show / update / destroy / edit
/* /*
Route::resource('tasks', 'TaskController'); // name = (tasks. index / create / show / update / destroy / edit Route::resource('tasks', 'TaskController'); // name = (tasks. index / create / show / update / destroy / edit
@ -75,7 +77,6 @@ Route::group(['middleware' => ['db','api_secret_check','token_auth'], 'prefix' =
Route::post('expenses/bulk', 'ExpenseController@bulk')->name('expenses.bulk'); Route::post('expenses/bulk', 'ExpenseController@bulk')->name('expenses.bulk');
Route::resource('user', 'UserProfileController'); // name = (clients. index / create / show / update / destroy / edit
Route::get('settings', 'SettingsController@index')->name('user.settings'); Route::get('settings', 'SettingsController@index')->name('user.settings');
*/ */

View File

@ -116,7 +116,7 @@ class ClientTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 3)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 3)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){

View File

@ -72,7 +72,7 @@ class InvoiceTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){
@ -135,7 +135,7 @@ class InvoiceTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){

View File

@ -72,7 +72,7 @@ class PaymentTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){
@ -135,7 +135,7 @@ class PaymentTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){

View File

@ -72,7 +72,7 @@ class QuoteTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){
@ -135,7 +135,7 @@ class QuoteTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){

View File

@ -72,7 +72,7 @@ class RecurringInvoiceTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){
@ -135,7 +135,7 @@ class RecurringInvoiceTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){

View File

@ -72,7 +72,7 @@ class RecurringQuoteTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){
@ -135,7 +135,7 @@ class RecurringQuoteTest extends TestCase
$this->assertNotNull($token); $this->assertNotNull($token);
$this->assertNotNull($user); $this->assertNotNull($user);
$this->assertNotNull($company); $this->assertNotNull($company);
$this->assertNotNull($user->tokens->first()->company); $this->assertNotNull($user->token->company);
factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){ factory(\App\Models\Client::class, 1)->create(['user_id' => $user->id, 'company_id' => $company->id])->each(function ($c) use ($user, $company){