diff --git a/app/Filters/QueryFilters.php b/app/Filters/QueryFilters.php index 32a19ff42a9d..c12a8b7c4091 100644 --- a/app/Filters/QueryFilters.php +++ b/app/Filters/QueryFilters.php @@ -3,7 +3,9 @@ namespace App\Filters; use App\Models\User; -use Illuminate\Database\Query\Builder; +//use Illuminate\Database\Query\Builder; +use Illuminate\Database\Eloquent\Builder; + use Illuminate\Http\Request; /** @@ -47,6 +49,7 @@ abstract class QueryFilters public function __construct(Request $request, Builder $builder) { $this->request = $request; + $this->builder = $builder; } diff --git a/app/Http/Controllers/ClientController.php b/app/Http/Controllers/ClientController.php index 10d429186f1a..7797367f5330 100644 --- a/app/Http/Controllers/ClientController.php +++ b/app/Http/Controllers/ClientController.php @@ -52,7 +52,7 @@ class ClientController extends Controller */ public function index() { - return response()->json(Client::all()); + return response()->json(Client::scope()); } /** @@ -118,7 +118,7 @@ class ClientController extends Controller */ public function create(CreateClientRequest $request) { - $client = ClientFactory::create(auth()->user()->company()->id, auth()->user()->id); + $client = ClientFactory::create(auth()->user()->getCompany()->id, auth()->user()->id); $data = [ 'client' => $client, @@ -138,7 +138,7 @@ class ClientController extends Controller public function store(StoreClientRequest $request) { - $client = StoreClient::dispatchNow($request, ClientFactory::create(auth()->user()->company()->id, auth()->user()->id)); + $client = StoreClient::dispatchNow($request, ClientFactory::create(auth()->user()->getCompany()->id, auth()->user()->id)); $client->load('contacts', 'primary_contact'); diff --git a/app/Http/ViewComposers/HeaderComposer.php b/app/Http/ViewComposers/HeaderComposer.php index 777280293842..eb0c79f70029 100644 --- a/app/Http/ViewComposers/HeaderComposer.php +++ b/app/Http/ViewComposers/HeaderComposer.php @@ -34,11 +34,11 @@ class HeaderComposer $companies = auth()->user()->companies; $data['current_company'] = $companies->first(function ($company){ - return $company->id == auth()->user()->company()->id; + return $company->id == auth()->user()->getCompany()->id; }); $data['companies'] = $companies->reject(function ($company){ - return $company->id == auth()->user()->company()->id; + return $company->id == auth()->user()->getCompany()->id; }); return $data; diff --git a/app/Models/BaseModel.php b/app/Models/BaseModel.php index 14f9a66ed2b8..775a81fd9c8a 100644 --- a/app/Models/BaseModel.php +++ b/app/Models/BaseModel.php @@ -30,7 +30,7 @@ class BaseModel extends Model public function scopeScope($query) { - $query->where($this->getTable() .'.company_id', '=', auth()->user()->company()->id); + $query->where($this->getTable() .'.company_id', '=', auth()->user()->getCompany()->id); return $query; } diff --git a/app/Models/User.php b/app/Models/User.php index 63f5111fe9b2..5691c8e49e4e 100644 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -2,6 +2,7 @@ namespace App\Models; +use App\Models\Company; use App\Models\CompanyToken; use App\Models\CompanyUser; use App\Models\Traits\UserTrait; @@ -13,6 +14,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use Illuminate\Foundation\Auth\User as Authenticatable; use Illuminate\Notifications\Notifiable; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\Log; use Laracasts\Presenter\PresentableTrait; class User extends Authenticatable implements MustVerifyEmail @@ -66,11 +68,6 @@ class User extends Authenticatable implements MustVerifyEmail return $this->belongsTo(Account::class); } - public function token() - { - return $this->tokens()->first(); - } - public function tokens() { return $this->hasMany(CompanyToken::class)->orderBy('id'); @@ -86,17 +83,14 @@ class User extends Authenticatable implements MustVerifyEmail return $this->belongsToMany(Company::class)->withPivot('permissions', 'settings', 'is_admin', 'is_owner', 'is_locked'); } - /** - * Returns the current Company - * - * @return Collection - */ - public function company() + + public function getCompany() { - $ct = CompanyToken::whereToken(request()->header('X-API-TOKEN'))->first(); - - return $ct->company; - + //$ct = CompanyToken::whereToken(request()->header('X-API-TOKEN'))->first(); + //Log::error($this->tokens()->whereRaw("BINARY `token`= ?", [request()->header('X-API-TOKEN')])->first()->company); + //return $this->tokens()->whereRaw("BINARY `token`= ?", [request()->header('X-API-TOKEN')])->first()->company; + Log::error('the request header = '.request()->header('X-API-TOKEN')); + return $this->tokens()->first()->company; } /** @@ -118,8 +112,12 @@ class User extends Authenticatable implements MustVerifyEmail */ public function user_company() { - - return $this->user_companies->where('company_id', $this->company()->id)->first(); + // Log::error('user_co 1'.$this->company()->id); + // Log::error('coco'); + // Log::error('user_co '.$this->company()); + Log::error('the company id = '.$this->companyId()); + // return $this->user_companies->whereCompanyId($this->company()->id)->first(); + return $this->user_companies->where('company_id', $this->companyId())->first(); } @@ -131,7 +129,7 @@ class User extends Authenticatable implements MustVerifyEmail public function companyId() :int { - return $this->company()->id; + return $this->getCompany()->id; } @@ -171,7 +169,7 @@ class User extends Authenticatable implements MustVerifyEmail public function isAdmin() : bool { - return (bool) $this->user_company()->is_admin; + return $this->user_company()->is_admin; } diff --git a/app/Transformers/AccountTransformer.php b/app/Transformers/AccountTransformer.php index 4f83606c3c28..bb26e29bfe41 100644 --- a/app/Transformers/AccountTransformer.php +++ b/app/Transformers/AccountTransformer.php @@ -4,14 +4,12 @@ namespace App\Transformers; use App\Models\Account; use App\Models\Payment; -use App\Utils\Traits\MakesHash; /** * Class AccountTransformer. */ class AccountTransformer extends EntityTransformer { - trait MakesHash; /** * @SWG\Property(property="account_key", type="string", example="123456") @@ -41,7 +39,7 @@ class AccountTransformer extends EntityTransformer public function transform(Account $account) { return [ - 'id' => $this->encodePrimaryKey($account->id), + 'id' => $account->id, ]; } diff --git a/tests/Feature/ClientTest.php b/tests/Feature/ClientTest.php index 0e10a1132b4d..e74f9d21e9e9 100644 --- a/tests/Feature/ClientTest.php +++ b/tests/Feature/ClientTest.php @@ -93,15 +93,22 @@ class ClientTest extends TestCase $acc = $response->json(); - $account = Account::find($acc['id']); + $account = Account::find($acc['id']); - $token = $account->default_company->tokens()->first()->token; + $company_token = $account->default_company->tokens()->first(); + $token = $company_token->token; + $company = $company_token->company; - $company = $account->default_company; + $user = $company_token->user; - $company_user = $company->company_users()->first(); + //$company_user = $company->company_users()->first(); - $user = User::find($company_user->user_id); + //$user = User::find($company_user->user_id); + $this->assertNotNull($company_token); + $this->assertNotNull($token); + $this->assertNotNull($user); + $this->assertNotNull($company); + $this->assertNotNull($user->tokens()->first()->company); $this->assertTrue($user->isAdmin());