fix(api): report tenant-scoped role in tenant users list
A user who is admin in one tenant but member in another must read 'admin' for this tenant — use roleForTenant() rather than the global u.role fallback when building the tenant users list.
This commit is contained in:
@@ -14,7 +14,7 @@ import { PricesService } from '../prices/prices.service.js'
|
||||
import type { PriceCurrency, PriceCycle, PriceDocument } from '../schemas/price.schema.js'
|
||||
import { Subscription, SubscriptionDocument } from '../schemas/subscription.schema.js'
|
||||
import { Tenant, TenantDocument } from '../schemas/tenant.schema.js'
|
||||
import { User, UserDocument } from '../schemas/user.schema.js'
|
||||
import { User, UserDocument, roleForTenant } from '../schemas/user.schema.js'
|
||||
import type { PartnerUpdateTenantDto } from '../me/dto/partner-update-tenant.dto.js'
|
||||
import type { CreateTenantDto } from './dto/create-tenant.dto.js'
|
||||
import type { UpdateBillingInfoDto } from './dto/update-billing-info.dto.js'
|
||||
@@ -341,7 +341,15 @@ export class TenantsService {
|
||||
enrolled = false
|
||||
}
|
||||
}
|
||||
return { id: String(u._id), name: u.name, email: u.email, role: u.role, enrolled }
|
||||
// Tenant-scoped role, not the global fallback — a user who is admin
|
||||
// here but member elsewhere must read 'admin' in this list.
|
||||
return {
|
||||
id: String(u._id),
|
||||
name: u.name,
|
||||
email: u.email,
|
||||
role: roleForTenant(u, tenant._id),
|
||||
enrolled,
|
||||
}
|
||||
}),
|
||||
)
|
||||
return {
|
||||
|
||||
Reference in New Issue
Block a user