1
0
mirror of https://github.com/invoiceninja/invoiceninja.git synced 2024-09-20 08:21:34 +02:00

Merge remote-tracking branch 'upstream/develop' into develop

This commit is contained in:
David Bomba 2016-05-10 09:26:15 +10:00
commit e795ac28cd
13 changed files with 47 additions and 56 deletions

View File

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

View File

@ -32,7 +32,7 @@ class TokenController extends BaseController
public function getDatatable()
{
return $this->tokenService->getDatatable(Auth::user()->account_id);
return $this->tokenService->getDatatable(Auth::user()->id);
}
public function edit($publicId)

View File

@ -34,7 +34,8 @@ class ApiCheck {
// check for a valid token
$token = AccountToken::where('token', '=', Request::header('X-Ninja-Token'))->first(['id', 'user_id']);
if ($token) {
// check if user is archived
if ($token && $token->user) {
Auth::loginUsingId($token->user_id);
Session::set('token_id', $token->id);
} else {

View File

@ -110,9 +110,11 @@ Route::group(['middleware' => 'auth:user'], function() {
Route::get('view_archive/{entity_type}/{visible}', 'AccountController@setTrashVisible');
Route::get('hide_message', 'HomeController@hideMessage');
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::post('settings/user_details', 'AccountController@saveUserDetails');
Route::post('users/change_password', 'UserController@changePassword');
Route::resource('clients', 'ClientController');
Route::get('api/clients', array('as'=>'api.clients', 'uses'=>'ClientController@getDatatable'));
@ -191,7 +193,6 @@ Route::group([
Route::get('start_trial/{plan}', 'AccountController@startTrial')
->where(['plan'=>'pro']);
Route::get('restore_user/{user_id}', 'UserController@restoreUser');
Route::post('users/change_password', 'UserController@changePassword');
Route::get('/switch_account/{user_id}', 'UserController@switchAccount');
Route::get('/unlink_account/{user_account_id}/{user_id}', 'UserController@unlinkAccount');
Route::get('/manage_companies', 'UserController@manageCompanies');
@ -220,11 +221,6 @@ Route::group([
Route::get('settings/{section?}', 'AccountController@showSection');
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('remove_logo', 'AccountController@removeLogo');
Route::post('account/go_pro', 'AccountController@enableProPlan');
@ -744,30 +740,6 @@ if (!defined('CONTACT_EMAIL')) {
}
}
/*
// Log all SQL queries to laravel.log
if (Utils::isNinjaDev()) {
Event::listen('illuminate.query', function($query, $bindings, $time, $name) {
$data = compact('bindings', 'time', 'name');
// Format binding data for sql insertion
foreach ($bindings as $i => $binding) {
if ($binding instanceof \DateTime) {
$bindings[$i] = $binding->format('\'Y-m-d H:i:s\'');
} elseif (is_string($binding)) {
$bindings[$i] = "'$binding'";
}
}
// Insert bindings into query
$query = str_replace(array('%', '?'), array('%%', '%s'), $query);
$query = vsprintf($query, $bindings);
Log::info($query, $data);
});
}
*/
/*
if (Utils::isNinjaDev())
{

View File

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

View File

@ -16,4 +16,9 @@ class AccountToken extends EntityModel
{
return $this->belongsTo('App\Models\Account');
}
public function user()
{
return $this->belongsTo('App\Models\User');
}
}

View File

@ -75,17 +75,19 @@ class AccountRepository
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;
}
private function getAccountSearchData($account)
private function getAccountSearchData($user)
{
$account = $user->account;
$data = [
'clients' => [],
'contacts' => [],
@ -100,11 +102,19 @@ class AccountRepository
if ($account->custom_client_label2) {
$data[$account->custom_client_label2] = [];
}
$clients = Client::scope()
->with('contacts', 'invoices')
->get();
if ($user->hasPermission('view_all')) {
$clients = Client::scope()
->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) {
if ($client->name) {
$data['clients'][] = [

View File

@ -13,10 +13,10 @@ class TokenRepository extends BaseRepository
return 'App\Models\AccountToken';
}
public function find($accountId)
public function find($userId)
{
$query = DB::table('account_tokens')
->where('account_tokens.account_id', '=', $accountId);
->where('account_tokens.user_id', '=', $userId);
if (!Session::get('show_trash:token')) {
$query->where('account_tokens.deleted_at', '=', null);

View File

@ -27,9 +27,9 @@ class TokenService extends BaseService
}
*/
public function getDatatable($accountId)
public function getDatatable($userId)
{
$query = $this->tokenRepo->find($accountId);
$query = $this->tokenRepo->find($userId);
return $this->createDatatable(ENTITY_TOKEN, $query, false);
}

View File

@ -8,7 +8,7 @@
<div class="pull-right">
{!! Button::primary(trans('texts.add_user'))->asLinkTo(URL::to('/users/create'))->appendIcon(Icon::create('plus-sign')) !!}
</div>
@else
@elseif (Utils::isTrial())
<div class="alert alert-warning">{!! trans('texts.add_users_not_supported') !!}</div>
@endif

View File

@ -9,7 +9,7 @@
<table cellpadding="10" cellspacing="0" border="0" bgcolor="#2F2C2B" width="600" align="center" class="header">
<tr>
<td class="logo" style="border-collapse: collapse; vertical-align: middle; padding-left:34px; padding-top:20px; padding-bottom:12px" valign="middle">
<img src="{{ $message->embed(asset('images/invoiceninja-logo.png')) }}" alt="github" />
<img src="{{ $message->embed(asset('images/invoiceninja-logo.png')) }}" alt="Invoice Ninja" />
</td>
</tr>
</table>
@ -26,9 +26,9 @@
@section('footer')
<p style="color: #A7A6A6; font-size: 13px; line-height: 18px; margin: 0 0 7px; padding: 0;">
<a href="{{ SOCIAL_LINK_FACEBOOK }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-facebook.png')) }}" alt="facebook" /></a>
<a href="{{ SOCIAL_LINK_TWITTER }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-twitter.png')) }}" alt="twitter" /></a>
<a href="{{ SOCIAL_LINK_GITHUB }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-github.png')) }}" alt="github" /></a>
<a href="{{ SOCIAL_LINK_FACEBOOK }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-facebook.png')) }}" alt="Facebook" /></a>
<a href="{{ SOCIAL_LINK_TWITTER }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-twitter.png')) }}" alt="Twitter" /></a>
<a href="{{ SOCIAL_LINK_GITHUB }}" style="color: #A7A6A6; text-decoration: none; font-weight: bold; font-size: 10px;"><img src="{{ $message->embed(asset('images/emails/icon-github.png')) }}" alt="GitHub" /></a>
</p>
<p style="color: #A7A6A6; font-size: 13px; line-height: 18px; margin: 0 0 7px; padding: 0;">

View File

@ -11,7 +11,11 @@
)); !!}
@if ($user)
{!! Former::populate($user) !!}
{!! Former::populate($user) !!}
{{ Former::populateField('is_admin', intval($user->is_admin)) }}
{{ Former::populateField('permissions[create_all]', intval($user->hasPermission('create'))) }}
{{ Former::populateField('permissions[view_all]', intval($user->hasPermission('view_all'))) }}
{{ Former::populateField('permissions[edit_all]', intval($user->hasPermission('edit_all'))) }}
@endif
<div class="panel panel-default">

View File

@ -114,8 +114,8 @@
"columns": [
{
"image": "$accountLogo",
"fit": [120, 80],
"margin": [30, 20, 0, 0]
"fit": [120, 60],
"margin": [30, 16, 0, 0]
},
{
"stack": "$accountDetails",