Fixed searching for non-admins

This commit is contained in:
Hillel Coren 2016-05-08 21:29:49 +03:00
parent 4712780ff6
commit fec948f1e8
4 changed files with 22 additions and 17 deletions

View File

@ -253,8 +253,7 @@ class AccountController extends BaseController
public function getSearchData() public function getSearchData()
{ {
$account = Auth::user()->account; $data = $this->accountRepo->getSearchData(Auth::user());
$data = $this->accountRepo->getSearchData($account);
return Response::json($data); return Response::json($data);
} }

View File

@ -110,6 +110,7 @@ Route::group(['middleware' => 'auth:user'], function() {
Route::get('view_archive/{entity_type}/{visible}', 'AccountController@setTrashVisible'); Route::get('view_archive/{entity_type}/{visible}', 'AccountController@setTrashVisible');
Route::get('hide_message', 'HomeController@hideMessage'); Route::get('hide_message', 'HomeController@hideMessage');
Route::get('force_inline_pdf', 'UserController@forcePDFJS'); Route::get('force_inline_pdf', 'UserController@forcePDFJS');
Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData'));
Route::get('settings/user_details', 'AccountController@showUserDetails'); Route::get('settings/user_details', 'AccountController@showUserDetails');
Route::post('settings/user_details', 'AccountController@saveUserDetails'); Route::post('settings/user_details', 'AccountController@saveUserDetails');
@ -220,11 +221,6 @@ Route::group([
Route::get('settings/{section?}', 'AccountController@showSection'); Route::get('settings/{section?}', 'AccountController@showSection');
Route::post('settings/{section?}', 'AccountController@doSection'); Route::post('settings/{section?}', 'AccountController@doSection');
//Route::get('api/payment_terms', array('as'=>'api.payment_terms', 'uses'=>'PaymentTermController@getDatatable'));
//Route::resource('payment_terms', 'PaymentTermController');
//Route::post('payment_terms/bulk', 'PaymentTermController@bulk');
Route::get('account/getSearchData', array('as' => 'getSearchData', 'uses' => 'AccountController@getSearchData'));
Route::post('user/setTheme', 'UserController@setTheme'); Route::post('user/setTheme', 'UserController@setTheme');
Route::post('remove_logo', 'AccountController@removeLogo'); Route::post('remove_logo', 'AccountController@removeLogo');
Route::post('account/go_pro', 'AccountController@enableProPlan'); Route::post('account/go_pro', 'AccountController@enableProPlan');

View File

@ -140,7 +140,7 @@ class Utils
public static function hasAllPermissions($permission) public static function hasAllPermissions($permission)
{ {
return Auth::check() && Auth::user()->hasPermissions($permission); return Auth::check() && Auth::user()->hasPermission($permission);
} }
public static function isTrial() public static function isTrial()

View File

@ -75,17 +75,19 @@ class AccountRepository
return $account; return $account;
} }
public function getSearchData($account) public function getSearchData($user)
{ {
$data = $this->getAccountSearchData($account); $data = $this->getAccountSearchData($user);
$data['navigation'] = $this->getNavigationSearchData(); $data['navigation'] = $user->is_admin ? $this->getNavigationSearchData() : [];
return $data; return $data;
} }
private function getAccountSearchData($account) private function getAccountSearchData($user)
{ {
$account = $user->account;
$data = [ $data = [
'clients' => [], 'clients' => [],
'contacts' => [], 'contacts' => [],
@ -100,11 +102,19 @@ class AccountRepository
if ($account->custom_client_label2) { if ($account->custom_client_label2) {
$data[$account->custom_client_label2] = []; $data[$account->custom_client_label2] = [];
} }
$clients = Client::scope() if ($user->hasPermission('view_all')) {
->with('contacts', 'invoices') $clients = Client::scope()
->get(); ->with('contacts', 'invoices')
->get();
} else {
$clients = Client::scope()
->where('user_id', '=', $user->id)
->with(['contacts', 'invoices' => function($query) use ($user) {
$query->where('user_id', '=', $user->id);
}])->get();
}
foreach ($clients as $client) { foreach ($clients as $client) {
if ($client->name) { if ($client->name) {
$data['clients'][] = [ $data['clients'][] = [