Hello,
I use this code in the setup() method of my DocumentCrudController:
if (\Auth::user()->hasRole('CompanyManager')) {
$this->crud->addClause(
'join',
'users',
function ($query) {
$companyId = \Auth::user()->company->id;
$query->on('documents.user_id', '=', 'users.id')
->where('users.company_id', '=', $companyId);
}
);
}
I just need a company manager being able to view download documents owned by any company user, so I use a button from a view which call $entry->getKey() as parameter for a download route: it works perfectly well If I don't add any join clause.
When the "users" table comes into play via the join clause, the document id just gets replaced by the user id, so that I cannot access the document anymore.
I can I get rid of this behaviour?
Backpack bae 0.8.6, CRUD 3.3.5, Laravel 5.5.29, PHP 7.1.8, MySQL 5.7.19.
Sorry, found solution by myself: appending
$this->crud->addClause('select', 'documents.*');
it solved.
Thanks for sharing your solution too, @captainkirkoff . You'll definitely help someone who searches for the same thing. Cheers!
Most helpful comment
Sorry, found solution by myself: appending
$this->crud->addClause('select', 'documents.*');
it solved.