ui: [BUGFIX] Ensure we use the ns query param name when requesting permissions (#10608)

Previously when namespaces were enabled, we weren't requesting permission for the actively selected namespace, and instead always checking the permissions for the default namespace.

This commit ensures we request permissions for the actively selected namespace.
This commit is contained in:
John Cowen 2021-07-15 12:19:07 +01:00 committed by GitHub
parent 7fff096d8d
commit ffbe54971f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 6 additions and 3 deletions

3
.changelog/10608.txt Normal file
View File

@ -0,0 +1,3 @@
```release-note:bug
ui: **(Enterprise only)** Ensure permissions are checked based on the actively selected namespace
```

View File

@ -7,7 +7,7 @@ export default class PermissionAdapter extends Adapter {
requestForAuthorize(request, { dc, ns, resources = [], index }) { requestForAuthorize(request, { dc, ns, resources = [], index }) {
// the authorize endpoint is slightly different to all others in that it // the authorize endpoint is slightly different to all others in that it
// ignores an ns parameter, but accepts a Namespace property on each // ignores an ns parameter, but accepts a Namespace property on each
// resource. Here we hide this different from the rest of the app as // resource. Here we hide this difference from the rest of the app as
// currently we never need to ask for permissions/resources for multiple // currently we never need to ask for permissions/resources for multiple
// different namespaces in one call so here we use the ns param and add // different namespaces in one call so here we use the ns param and add
// this to the resources instead of passing through on the queryParameter // this to the resources instead of passing through on the queryParameter

View File

@ -21,7 +21,7 @@ export default class DcRoute extends Route {
// When disabled nspaces is [], so nspace is undefined // When disabled nspaces is [], so nspace is undefined
const permissions = await this.permissionsRepo.findAll({ const permissions = await this.permissionsRepo.findAll({
dc: params.dc, dc: params.dc,
nspace: get(nspace || {}, 'Name'), ns: get(nspace || {}, 'Name'),
}); });
// the model here is actually required for the entire application // the model here is actually required for the entire application
// but we need to wait until we are in this route so we know what the dc // but we need to wait until we are in this route so we know what the dc

View File

@ -28,7 +28,7 @@ export default class SettingsRoute extends Route {
typeof app.permissions === 'undefined' typeof app.permissions === 'undefined'
? await this.permissionsRepo.findAll({ ? await this.permissionsRepo.findAll({
dc: dc.Name, dc: dc.Name,
nspace: nspace.Name, ns: nspace.Name,
}) })
: app.permissions; : app.permissions;