Handle empty permissions arrays when console runs in operator mode (#1324)

Signed-off-by: Lenin Alevski <alevsk.8772@gmail.com>
This commit is contained in:
Lenin Alevski
2021-12-15 10:11:43 -08:00
committed by GitHub
parent dd488e4f7a
commit 725d6f9691
5 changed files with 31 additions and 3 deletions

View File

@@ -40,6 +40,9 @@ type OperatorSessionResponse struct {
// operator
Operator bool `json:"operator,omitempty"`
// permissions
Permissions map[string][]string `json:"permissions,omitempty"`
// status
// Enum: [ok]
Status string `json:"status,omitempty"`

View File

@@ -2299,6 +2299,15 @@ func init() {
"operator": {
"type": "boolean"
},
"permissions": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"status": {
"type": "string",
"enum": [
@@ -6094,6 +6103,15 @@ func init() {
"operator": {
"type": "boolean"
},
"permissions": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "string"
}
}
},
"status": {
"type": "string",
"enum": [

View File

@@ -41,8 +41,9 @@ func getSessionResponse(session *models.Principal) (*models.OperatorSessionRespo
return nil, prepareError(errorGenericInvalidSession)
}
sessionResp := &models.OperatorSessionResponse{
Status: models.OperatorSessionResponseStatusOk,
Operator: true,
Status: models.OperatorSessionResponseStatusOk,
Operator: true,
Permissions: map[string][]string{},
}
return sessionResp, nil
}

View File

@@ -27,7 +27,7 @@ export const hasPermission = (
return false;
}
const state = store.getState();
const sessionGrants = state.console.session.permissions;
const sessionGrants = state.console.session.permissions || {};
const resourceGrants =
sessionGrants[resource] ||
sessionGrants[`arn:aws:s3:::${resource}/*`] ||

View File

@@ -983,6 +983,12 @@ definitions:
enum: [ ok ]
operator:
type: boolean
permissions:
type: object
additionalProperties:
type: array
items:
type: string
tenantStatus:
type: object