Added role_model_class `helper`

This commit is contained in:
Cüneyt Şentürk 2023-10-24 16:55:04 +03:00
parent 560f25c8cf
commit 19ebcf0cc9
8 changed files with 25 additions and 21 deletions

View File

@ -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') {

View File

@ -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();

View File

@ -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();

View File

@ -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();

View File

@ -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');
}
/**

View File

@ -31,6 +31,6 @@ class UserRole extends Model
public function role()
{
return $this->belongsTo('App\Models\Auth\Role');
return $this->belongsTo(role_model_class());
}
}

View File

@ -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;

View File

@ -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
{