This commit is contained in:
JaguarJack 2023-01-17 18:19:25 +08:00
parent ed10349317
commit e3dd4ee86c
4 changed files with 29 additions and 6 deletions

View File

@ -20,7 +20,6 @@ class RolesController extends Controller
) {
}
/**
* @return mixed
*/
@ -29,7 +28,7 @@ class RolesController extends Controller
return $this->model->setBeforeGetList(function ($query) {
return $query->with(['permissions' => function ($query) {
$query->select('id');
}])->dataRange();
}]);
})->getList();
}

View File

@ -1,8 +1,9 @@
<?php
namespace Modules\Permissions\Providers;
namespace Modules\Permissions;
use Catch\Support\Module\Installer as ModuleInstaller;
use Modules\Permissions\Providers\PermissionsServiceProvider;
class Installer extends ModuleInstaller
{

View File

@ -5,8 +5,8 @@ declare(strict_types=1);
namespace Modules\Permissions\Models;
use Catch\Base\CatchModel as Model;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Modules\Permissions\Models\Traits\DataRange;
/**
* @property $role_name
@ -21,8 +21,6 @@ use Modules\Permissions\Models\Traits\DataRange;
*/
class Roles extends Model
{
use DataRange;
protected $table = 'roles';
protected $fillable = ['id', 'role_name', 'identify', 'parent_id', 'description', 'data_range', 'creator_id', 'created_at', 'updated_at', 'deleted_at'];
@ -75,4 +73,22 @@ class Roles extends Model
{
return $this->belongsToMany(Departments::class, 'role_has_departments', 'role_id', 'department_id');
}
/**
* get role's permissions
* @return Collection
*/
public function getPermissions(): Collection
{
return $this->permissions()->get();
}
/**
* get role's departments
* @return Collection
*/
public function getDepartments(): Collection
{
return $this->departments()->get();
}
}

View File

@ -7,6 +7,7 @@ use Catch\Support\Module\ModuleRepository;
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
use Illuminate\Support\Collection;
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Str;
use Modules\Permissions\Models\Permissions;
trait UserRelations
@ -106,6 +107,12 @@ trait UserRelations
}
});
if ($permission) {
[$module, $controller, $action] = explode('@', $permission);
$permission = CatchAdmin::getModuleControllerNamespace($module).$controller.'Controller@'.$action;
}
return $actions->contains($permission ?: Route::currentRouteAction());
}