diff --git a/app/BulkActions/Auth/Users.php b/app/BulkActions/Auth/Users.php index cbcec2783..58c9512c4 100644 --- a/app/BulkActions/Auth/Users.php +++ b/app/BulkActions/Auth/Users.php @@ -6,7 +6,6 @@ use App\Abstracts\BulkAction; use App\Events\Auth\LandingPageShowing; use App\Jobs\Auth\DeleteUser; use App\Jobs\Auth\UpdateUser; -use App\Models\Auth\Role; class Users extends BulkAction { @@ -58,7 +57,7 @@ class Users extends BulkAction { $selected = $this->getSelectedInput($request); - $roles = Role::all()->reject(function ($r) { + $roles = role_model_class()::all()->reject(function ($r) { $status = $r->hasPermission('read-client-portal'); if ($r->name == 'employee') { diff --git a/app/Http/Controllers/Auth/Users.php b/app/Http/Controllers/Auth/Users.php index b342116c2..0ac012be7 100644 --- a/app/Http/Controllers/Auth/Users.php +++ b/app/Http/Controllers/Auth/Users.php @@ -9,7 +9,6 @@ use App\Jobs\Auth\CreateInvitation; use App\Jobs\Auth\CreateUser; use App\Jobs\Auth\DeleteUser; use App\Jobs\Auth\UpdateUser; -use App\Models\Auth\Role; use App\Traits\Cloud; use App\Traits\Uploads; use Illuminate\Http\Request as BaseRequest; @@ -77,7 +76,7 @@ class Users extends Controller $landing_pages = $u->landing_pages; - $roles = Role::all()->reject(function ($r) { + $roles = role_model_class()::all()->reject(function ($r) { $status = $r->hasPermission('read-client-portal'); if ($r->name == 'employee') { @@ -147,15 +146,15 @@ class Users extends Controller if ($user->isCustomer()) { // Show only roles with customer permission - $roles = Role::all()->reject(function ($r) { + $roles = role_model_class()::all()->reject(function ($r) { return ! $r->hasPermission('read-client-portal'); })->pluck('display_name', 'id'); } else if ($user->isEmployee()) { // Show only roles with employee permission - $roles = Role::where('name', 'employee')->get()->pluck('display_name', 'id'); + $roles = role_model_class()::where('name', 'employee')->get()->pluck('display_name', 'id'); } else { // Don't show roles with customer permission - $roles = Role::all()->reject(function ($r) { + $roles = role_model_class()::all()->reject(function ($r) { $status = $r->hasPermission('read-client-portal'); if ($r->name == 'employee') { @@ -399,7 +398,7 @@ class Users extends Controller /** * Process request for reinviting the specified resource. * - * @param Role $role + * @param role_model_class() $role * * @return Response */ @@ -408,7 +407,7 @@ class Users extends Controller $role = false; if ($request->has('role_id')) { - $role = Role::find($request->get('role_id')); + $role = role_model_class()::find($request->get('role_id')); } $u = new \stdClass(); diff --git a/app/Jobs/Common/CreateContact.php b/app/Jobs/Common/CreateContact.php index e075bf8c6..c580b412b 100644 --- a/app/Jobs/Common/CreateContact.php +++ b/app/Jobs/Common/CreateContact.php @@ -8,7 +8,6 @@ use App\Interfaces\Job\HasSource; use App\Interfaces\Job\ShouldCreate; use App\Jobs\Auth\CreateUser; use App\Jobs\Common\CreateContactPersons; -use App\Models\Auth\Role; use App\Models\Common\Contact; use Illuminate\Support\Str; @@ -45,7 +44,7 @@ class CreateContact extends Job implements HasOwner, HasSource, ShouldCreate throw new \Exception($message); } - $customer_role_id = Role::all()->filter(function ($role) { + $customer_role_id = role_model_class()::all()->filter(function ($role) { return $role->hasPermission('read-client-portal'); })->pluck('id')->first(); diff --git a/app/Jobs/Common/UpdateContact.php b/app/Jobs/Common/UpdateContact.php index d79fb1a1f..353db23d3 100644 --- a/app/Jobs/Common/UpdateContact.php +++ b/app/Jobs/Common/UpdateContact.php @@ -6,7 +6,6 @@ use App\Abstracts\Job; use App\Interfaces\Job\ShouldUpdate; use App\Jobs\Auth\CreateUser; use App\Jobs\Common\CreateContactPersons; -use App\Models\Auth\Role; use App\Models\Common\Contact; use Illuminate\Support\Str; @@ -65,7 +64,7 @@ class UpdateContact extends Job implements ShouldUpdate throw new \Exception($message); } - $customer_role_id = Role::all()->filter(function ($role) { + $customer_role_id = role_model_class()::all()->filter(function ($role) { return $role->hasPermission('read-client-portal'); })->pluck('id')->first(); diff --git a/app/Models/Auth/User.php b/app/Models/Auth/User.php index 4a78c43bc..22d8e0d04 100644 --- a/app/Models/Auth/User.php +++ b/app/Models/Auth/User.php @@ -94,7 +94,7 @@ class User extends Authenticatable implements HasLocalePreference public function roles() { - return $this->belongsToMany('App\Models\Auth\Role', 'App\Models\Auth\UserRole'); + return $this->belongsToMany(role_model_class(), 'App\Models\Auth\UserRole'); } /** diff --git a/app/Models/Auth/UserRole.php b/app/Models/Auth/UserRole.php index b19cbe712..aec4eed5b 100644 --- a/app/Models/Auth/UserRole.php +++ b/app/Models/Auth/UserRole.php @@ -31,6 +31,6 @@ class UserRole extends Model public function role() { - return $this->belongsTo('App\Models\Auth\Role'); + return $this->belongsTo(role_model_class()); } } diff --git a/app/Traits/Permissions.php b/app/Traits/Permissions.php index a11d1e106..e091a03f6 100644 --- a/app/Traits/Permissions.php +++ b/app/Traits/Permissions.php @@ -3,7 +3,6 @@ namespace App\Traits; use App\Models\Auth\Permission; -use App\Models\Auth\Role; use App\Traits\SearchString; use App\Traits\Translations; use App\Utilities\Reports; @@ -275,7 +274,7 @@ trait Permissions } } - return Role::firstOrCreate([ + return role_model_class()::firstOrCreate([ 'name' => $name, ], [ 'display_name' => $display_name, @@ -311,7 +310,7 @@ trait Permissions public function detachPermission($role, $permission, $delete = true) { if (is_string($role)) { - $role = Role::where('name', $role)->first(); + $role = role_model_class()::where('name', $role)->first(); } if (empty($role)) { @@ -391,14 +390,14 @@ trait Permissions public function getRoles($require = 'read-admin-panel') { - return Role::all()->filter(function ($role) use ($require) { + return role_model_class()::all()->filter(function ($role) use ($require) { return $require ? $role->hasPermission($require) : true; }); } public function getDefaultAdminRoles($custom = null) { - $roles = Role::whereIn('name', $custom ?? ['admin', 'manager'])->get(); + $roles = role_model_class()::whereIn('name', $custom ?? ['admin', 'manager'])->get(); if ($roles->isNotEmpty()) { return $roles; @@ -409,7 +408,7 @@ trait Permissions public function getDefaultPortalRoles($custom = null) { - $roles = Role::whereIn('name', $custom ?? ['customer'])->get(); + $roles = role_model_class()::whereIn('name', $custom ?? ['customer'])->get(); if ($roles->isNotEmpty()) { return $roles; diff --git a/app/Utilities/helpers.php b/app/Utilities/helpers.php index 77d672c4e..ed99070b3 100644 --- a/app/Utilities/helpers.php +++ b/app/Utilities/helpers.php @@ -290,6 +290,15 @@ if (! function_exists('user_model_class')) { } } +if (! function_exists('role_model_class')) { + function role_model_class(): string + { + return module_is_enabled('roles') + ? config('roles.models.role') + : \App\Models\Auth\Role::class; + } +} + if (! function_exists('search_string_value')) { function search_string_value(string $name, string $default = '', string $input = ''): string|array {