belongsTo(Tenant::class); } /** * 이 권한이 할당된 역할 목록 (현재 테넌트만) */ public function roles(): \Illuminate\Database\Eloquent\Relations\BelongsToMany { $query = parent::roles(); $currentTenantId = session('selected_tenant_id'); if ($currentTenantId && $currentTenantId !== 'all') { $query->where('roles.tenant_id', $currentTenantId); } return $query; } /** * 이 권한이 직접 할당된 부서 목록 (현재 테넌트만) */ public function departments(): \Illuminate\Database\Eloquent\Relations\MorphToMany { $query = $this->morphedByMany( \App\Models\Tenants\Department::class, 'model', config('permission.table_names.model_has_permissions'), 'permission_id', 'model_id' ); $currentTenantId = session('selected_tenant_id'); if ($currentTenantId && $currentTenantId !== 'all') { $query->where('departments.tenant_id', $currentTenantId); } return $query; } }