mirror of
https://github.com/InvoiceShelf/InvoiceShelf.git
synced 2026-04-15 09:14:08 +00:00
Backend: - Extract user profile methods (show, update, uploadAvatar) from CompanyController into new UserProfileController - CompanyController now only handles company concerns (updateCompany, uploadCompanyLogo) - Remove Account Settings from setting_menu config Frontend: - New /admin/user-settings page with 3 tabs: General, Profile Photo, Security (password change) - User dropdown now links to /admin/user-settings instead of /admin/settings/account-settings - Settings sidebar defaults to Company Information as first item - Remove old monolithic AccountSetting.vue
54 lines
1.5 KiB
PHP
54 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\V1\Admin\Settings;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Requests\CompanyLogoRequest;
|
|
use App\Http\Requests\CompanyRequest;
|
|
use App\Http\Resources\CompanyResource;
|
|
use App\Models\Company;
|
|
|
|
class CompanyController extends Controller
|
|
{
|
|
public function updateCompany(CompanyRequest $request)
|
|
{
|
|
$company = Company::find($request->header('company'));
|
|
|
|
$this->authorize('manage company', $company);
|
|
|
|
$company->update($request->getCompanyPayload());
|
|
|
|
$company->address()->updateOrCreate(['company_id' => $company->id], $request->address);
|
|
|
|
return new CompanyResource($company);
|
|
}
|
|
|
|
public function uploadCompanyLogo(CompanyLogoRequest $request)
|
|
{
|
|
$company = Company::find($request->header('company'));
|
|
|
|
$this->authorize('manage company', $company);
|
|
|
|
$data = json_decode($request->company_logo);
|
|
|
|
if (isset($request->is_company_logo_removed) && (bool) $request->is_company_logo_removed) {
|
|
$company->clearMediaCollection('logo');
|
|
}
|
|
if ($data) {
|
|
$company = Company::find($request->header('company'));
|
|
|
|
if ($company) {
|
|
$company->clearMediaCollection('logo');
|
|
|
|
$company->addMediaFromBase64($data->data)
|
|
->usingFileName($data->name)
|
|
->toMediaCollection('logo');
|
|
}
|
|
}
|
|
|
|
return response()->json([
|
|
'success' => true,
|
|
]);
|
|
}
|
|
}
|