diff --git a/app/Http/Controllers/Auth/Users.php b/app/Http/Controllers/Auth/Users.php index df594b495..39663b7f9 100644 --- a/app/Http/Controllers/Auth/Users.php +++ b/app/Http/Controllers/Auth/Users.php @@ -70,7 +70,7 @@ class Users extends Controller return $r->hasPermission('read-client-portal'); }); - $companies = user()->companies()->get()->sortBy('name'); + $companies = user()->companies()->get()->sortBy('name')->pluck('name', 'id'); return view('auth.users.create', compact('roles', 'companies', 'routes')); } @@ -148,7 +148,7 @@ class Users extends Controller }); } - $companies = user()->companies()->get()->sortBy('name'); + $companies = user()->companies()->get()->sortBy('name')->pluck('name', 'id'); return view('auth.users.edit', compact('user', 'companies', 'roles', 'routes')); } diff --git a/app/Models/Auth/User.php b/app/Models/Auth/User.php index 1051d5c7b..99f55e43c 100644 --- a/app/Models/Auth/User.php +++ b/app/Models/Auth/User.php @@ -50,6 +50,15 @@ class User extends Authenticatable */ public $sortable = ['name', 'email', 'enabled']; + public static function boot() + { + parent::boot(); + + static::retrieved(function($model) { + $model->setCompanyIds(); + }); + } + public function companies() { return $this->morphToMany('App\Models\Common\Company', 'user', 'user_companies', 'user_id', 'company_id'); @@ -169,4 +178,20 @@ class User extends Authenticatable { return $query->where('enabled', 1); } + + /** + * Convert tax to Array. + * + * @return void + */ + public function setCompanyIds() + { + $company_ids = []; + + foreach ($this->companies as $company) { + $company_ids[] = (string) $company->id; + } + + $this->setAttribute('company_ids', $company_ids); + } } diff --git a/resources/views/auth/users/create.blade.php b/resources/views/auth/users/create.blade.php index 89f323af5..85949333b 100644 --- a/resources/views/auth/users/create.blade.php +++ b/resources/views/auth/users/create.blade.php @@ -48,7 +48,7 @@ @endif @permission('read-common-companies') - {{ Form::checkboxGroup('companies', trans_choice('general.companies', 2), $companies, 'name') }} + {{ Form::multiSelectGroup('companies', trans_choice('general.companies', 2), 'user', $companies) }} @endpermission @permission('read-auth-roles') @@ -68,6 +68,15 @@ @endsection +@push('stylesheet') + +@endpush + @push('scripts_start') @endpush diff --git a/resources/views/auth/users/edit.blade.php b/resources/views/auth/users/edit.blade.php index 71f024014..a46d7f0c1 100644 --- a/resources/views/auth/users/edit.blade.php +++ b/resources/views/auth/users/edit.blade.php @@ -49,7 +49,7 @@ @endif @permission('read-common-companies') - {{ Form::checkboxGroup('companies', trans_choice('general.companies', 2), $companies, 'name') }} + {{ Form::multiSelectGroup('companies', trans_choice('general.companies', 2), 'user', $companies, $user->company_ids, ['required' => 'required'], 'col-md-6') }} @endpermission @permission('read-auth-roles') @@ -71,6 +71,15 @@ @endsection +@push('stylesheet') + +@endpush + @push('scripts_start') @endpush