Add User, Companies, Settings picture media manager

This commit is contained in:
cuneytsenturk
2018-01-03 14:02:27 +03:00
parent e3b736d3e8
commit 43619d1db4
20 changed files with 205 additions and 47 deletions

View File

@ -7,11 +7,14 @@ use App\Http\Requests\Auth\User as Request;
use Illuminate\Http\Request as ARequest;
use App\Models\Auth\User;
use App\Models\Auth\Role;
use App\Traits\Uploads;
use Auth;
class Users extends Controller
{
use Uploads;
/**
* Display a listing of the resource.
*
@ -34,11 +37,12 @@ class Users extends Controller
*/
public function create()
{
$roles = Role::all()->reject(function($r) {
$roles = Role::all()->reject(function ($r) {
return $r->hasPermission('read-customer-panel');
});
$companies = Auth::user()->companies()->get()->sortBy('name');
foreach ($companies as $company) {
$company->setSettings();
}
@ -55,15 +59,16 @@ class Users extends Controller
*/
public function store(Request $request)
{
// Upload picture
$picture = $request->file('picture');
if ($picture && $picture->isValid()) {
$request['picture'] = $picture->store('uploads/users');
}
// Create user
$user = User::create($request->input());
// Upload picture
if ($request->file('picture')) {
$media = $this->getMedia($request->file('picture'), 'users');
$user->attachMedia($media, 'picture');
}
// Attach roles
$user->roles()->attach($request['roles']);
@ -88,17 +93,18 @@ class Users extends Controller
{
if ($user->customer) {
// Show only roles with customer permission
$roles = Role::all()->reject(function($r) {
$roles = Role::all()->reject(function ($r) {
return !$r->hasPermission('read-customer-panel');
});
} else {
// Don't show roles with customer permission
$roles = Role::all()->reject(function($r) {
$roles = Role::all()->reject(function ($r) {
return $r->hasPermission('read-customer-panel');
});
}
$companies = Auth::user()->companies()->get()->sortBy('name');
foreach ($companies as $company) {
$company->setSettings();
}
@ -116,12 +122,6 @@ class Users extends Controller
*/
public function update(User $user, Request $request)
{
// Upload picture
$picture = $request->file('picture');
if ($picture && $picture->isValid()) {
$request['picture'] = $picture->store('users');
}
// Do not reset password if not entered/changed
if (empty($request['password'])) {
unset($request['password']);
@ -131,6 +131,13 @@ class Users extends Controller
// Update user
$user->update($request->input());
// Upload picture
if ($request->file('picture')) {
$media = $this->getMedia($request->file('picture'), 'users');
$user->attachMedia($media, 'picture');
}
// Sync roles
$user->roles()->sync($request['roles']);

View File

@ -65,9 +65,7 @@ class Companies extends Controller
if ($logo) {
$company->attachMedia($logo, 'logo');
$logo_path = $logo->directory . '/' . $logo->basename;
setting()->set('general.company_logo', $logo_path);
setting()->set('general.company_logo', $logo->id);
}
}
@ -148,9 +146,7 @@ class Companies extends Controller
if ($logo) {
$company->attachMedia($logo, 'logo');
$logo_path = $logo->directory . '/' . $logo->basename;
setting()->set('general.company_logo', $logo_path);
setting()->set('general.company_logo', $logo->id);
}
}

View File

@ -132,7 +132,7 @@ class Bills extends Controller
// Upload attachment
if ($request->file('attachment')) {
$media = $this->getMedia($request->file('attachment'), 'revenues');
$media = $this->getMedia($request->file('attachment'), 'bills');
$bill->attachMedia($media, 'attachment');
}
@ -597,13 +597,6 @@ class Bills extends Controller
$bill = Bill::find($request['bill_id']);
// Upload attachment
if ($request->file('attachment')) {
$media = $this->getMedia($request->file('attachment'), 'payments');
$bill->attachMedia($media, 'attachment');
}
$total_amount = $bill->amount;
$amount = (double) $request['amount'];
@ -640,6 +633,13 @@ class Bills extends Controller
$bill_payment = BillPayment::create($request->input());
// Upload attachment
if ($request->file('attachment')) {
$media = $this->getMedia($request->file('attachment'), 'bills');
$bill_payment->attachMedia($media, 'attachment');
}
$request['status_code'] = $bill->bill_status_code;
$request['notify'] = 0;

View File

@ -141,7 +141,7 @@ class Invoices extends Controller
// Upload attachment
if ($request->file('attachment')) {
$media = $this->getMedia($request->file('attachment'), 'revenues');
$media = $this->getMedia($request->file('attachment'), 'invoices');
$invoice->attachMedia($media, 'attachment');
}

View File

@ -8,6 +8,7 @@ use App\Models\Banking\Account;
use App\Models\Company\Company;
use App\Models\Setting\Currency;
use App\Models\Setting\Setting;
use App\Models\Common\Media;
use App\Models\Setting\Tax;
use App\Traits\DateTime;
use App\Traits\Uploads;
@ -26,11 +27,20 @@ class Settings extends Controller
public function edit()
{
/*$setting = Setting::all()->pluck('value', 'key');*/
$setting = Setting::all()->map(function($s) {
$setting = Setting::all()->map(function ($s) {
$s->key = str_replace('general.', '', $s->key);
return $s;
})->pluck('value', 'key');
$company_logo = $setting->pull('company_logo');
$setting['company_logo'] = Media::find($company_logo);
$invoice_logo = $setting->pull('invoice_logo');
$setting['invoice_logo'] = Media::find($invoice_logo);
$timezones = $this->getTimezones();
$accounts = Account::enabled()->pluck('name', 'id');
@ -88,7 +98,13 @@ class Settings extends Controller
{
$fields = $request->all();
$company_id = $request->get('company_id');
if (empty($company_id)) {
$company_id = session('company_id');
}
$company = Company::find($company_id);
$skip_keys = ['company_id', '_method', '_token'];
$file_keys = ['company_logo', 'invoice_logo'];
@ -102,7 +118,14 @@ class Settings extends Controller
// Process file uploads
if (in_array($key, $file_keys)) {
$value = $this->getUploadedFilePath($request->file($key), 'settings');
// Upload attachment
if ($request->file($key)) {
$media = $this->getMedia($request->file($key), 'settings');
$company->attachMedia($media, $key);
$value = $media->id;
}
// Prevent reset
if (empty($value)) {
@ -133,5 +156,4 @@ class Settings extends Controller
return redirect('settings/settings');
}
}