improved tenant identification

This commit is contained in:
Denis Duliçi
2021-04-16 00:59:43 +03:00
parent 9635e6be5d
commit 2b07442260
126 changed files with 1719 additions and 999 deletions

View File

@ -11,7 +11,6 @@ use App\Models\Common\Company;
use App\Models\Setting\Currency;
use App\Traits\Uploads;
use App\Traits\Users;
use App\Utilities\Overrider;
class Companies extends Controller
{
@ -60,7 +59,7 @@ class Companies extends Controller
*/
public function store(Request $request)
{
$company_id = session('company_id');
$current_company_id = company_id();
$response = $this->ajaxDispatch(new CreateCompany($request));
@ -78,9 +77,7 @@ class Companies extends Controller
flash($message)->error()->important();
}
session(['company_id' => $company_id]);
Overrider::load('settings');
company($current_company_id)->makeCurrent();
return response()->json($response);
}
@ -94,7 +91,7 @@ class Companies extends Controller
*/
public function edit(Company $company)
{
if (!$this->isUserCompany($company->id)) {
if ($this->isNotUserCompany($company->id)) {
return redirect()->route('companies.index');
}
@ -113,9 +110,9 @@ class Companies extends Controller
*/
public function update(Company $company, Request $request)
{
$company_id = session('company_id');
$current_company_id = company_id();
$response = $this->ajaxDispatch(new UpdateCompany($company, $request, session('company_id')));
$response = $this->ajaxDispatch(new UpdateCompany($company, $request, company_id()));
if ($response['success']) {
$response['redirect'] = route('companies.index');
@ -131,9 +128,7 @@ class Companies extends Controller
flash($message)->error()->important();
}
session(['company_id' => $company_id]);
Overrider::load('settings');
company($current_company_id)->makeCurrent();
return response()->json($response);
}
@ -147,7 +142,7 @@ class Companies extends Controller
*/
public function enable(Company $company)
{
$response = $this->ajaxDispatch(new UpdateCompany($company, request()->merge(['enabled' => 1]), session('company_id')));
$response = $this->ajaxDispatch(new UpdateCompany($company, request()->merge(['enabled' => 1])));
if ($response['success']) {
$response['message'] = trans('messages.success.enabled', ['type' => trans_choice('general.companies', 1)]);
@ -165,7 +160,7 @@ class Companies extends Controller
*/
public function disable(Company $company)
{
$response = $this->ajaxDispatch(new UpdateCompany($company, request()->merge(['enabled' => 0]), session('company_id')));
$response = $this->ajaxDispatch(new UpdateCompany($company, request()->merge(['enabled' => 0])));
if ($response['success']) {
$response['message'] = trans('messages.success.disabled', ['type' => trans_choice('general.companies', 1)]);
@ -183,7 +178,7 @@ class Companies extends Controller
*/
public function destroy(Company $company)
{
$response = $this->ajaxDispatch(new DeleteCompany($company, session('company_id')));
$response = $this->ajaxDispatch(new DeleteCompany($company));
$response['redirect'] = route('companies.index');
@ -210,22 +205,21 @@ class Companies extends Controller
public function switch(Company $company)
{
if ($this->isUserCompany($company->id)) {
$old_company_id = session('company_id');
$old_company_id = company_id();
$company->makeCurrent();
session(['company_id' => $company->id]);
session(['dashboard_id' => user()->dashboards()->enabled()->pluck('id')->first()]);
Overrider::load('settings');
event(new \App\Events\Common\CompanySwitched($company, $old_company_id));
// Check wizard
if (!setting('wizard.completed', false)) {
return redirect()->route('wizard.edit');
return redirect()->route('wizard.edit', ['company_id' => $company->id]);
}
}
return redirect()->route('dashboard');
return redirect()->route('dashboard', ['company_id' => $company->id]);
}
public function autocomplete()

View File

@ -7,7 +7,6 @@ use App\Http\Requests\Common\Dashboard as Request;
use App\Jobs\Common\CreateDashboard;
use App\Jobs\Common\DeleteDashboard;
use App\Jobs\Common\UpdateDashboard;
use App\Models\Common\Company;
use App\Models\Common\Dashboard;
use App\Models\Common\Widget;
use App\Traits\DateTime;
@ -60,7 +59,7 @@ class Dashboards extends Controller
if (empty($dashboard)) {
$dashboard = $this->dispatch(new CreateDashboard([
'company_id' => session('company_id'),
'company_id' => company_id(),
'name' => trans_choice('general.dashboards', 1),
'default_widgets' => 'core',
]));
@ -89,7 +88,7 @@ class Dashboards extends Controller
*/
public function create()
{
$users = Company::find(session('company_id'))->users()->get()->sortBy('name');
$users = company()->users()->get()->sortBy('name');
return view('common.dashboards.create', compact('users'));
}
@ -130,11 +129,11 @@ class Dashboards extends Controller
*/
public function edit(Dashboard $dashboard)
{
if (!$this->isUserDashboard($dashboard->id)) {
if ($this->isNotUserDashboard($dashboard->id)) {
return redirect()->route('dashboards.index');
}
$users = Company::find(session('company_id'))->users()->get()->sortBy('name');
$users = company()->users()->get()->sortBy('name');
return view('common.dashboards.edit', compact('dashboard', 'users'));
}

View File

@ -16,7 +16,7 @@ class Import extends Controller
*/
public function create($group, $type, $route = null)
{
$path = $group . '/' . $type;
$path = company_id() . '/' . $group . '/' . $type;
if (module($group) instanceof \Akaunting\Module\Module) {
$namespace = $group . '::';

View File

@ -111,20 +111,16 @@ class Items extends Controller
*/
public function import(ImportRequest $request)
{
$response = $this->importExcel(new Import, $request);
$response = $this->importExcel(new Import, $request, trans_choice('general.items', 2));
if ($response['success']) {
$response['redirect'] = route('items.index');
$message = trans('messages.success.imported', ['type' => trans_choice('general.items', 2)]);
flash($message)->success();
flash($response['message'])->success();
} else {
$response['redirect'] = route('import.create', ['common', 'items']);
$message = $response['message'];
flash($message)->error()->important();
flash($response['message'])->error()->important();
}
return response()->json($response);

View File

@ -182,7 +182,7 @@ class Uploads extends Controller
$folders = explode('/', $media->directory);
// Check if company can access media
if ($folders[0] != session('company_id')) {
if ($folders[0] != company_id()) {
return false;
}