From c7a3520dc560b87f1b01d6dd74928f45cbfe321a Mon Sep 17 00:00:00 2001 From: Kyle Shockey Date: Fri, 17 Nov 2017 22:55:20 -0800 Subject: [PATCH] Fix AuthorizeOperationBtn staleness issue --- src/core/components/operation.jsx | 5 +++-- src/core/containers/OperationContainer.jsx | 9 +++++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/core/components/operation.jsx b/src/core/components/operation.jsx index 7f3c8b9f..df9eb7c6 100644 --- a/src/core/components/operation.jsx +++ b/src/core/components/operation.jsx @@ -54,6 +54,7 @@ export default class Operation extends PureComponent { let { isShown, + isAuthorized, jumpToKey, path, method, @@ -78,9 +79,9 @@ export default class Operation extends PureComponent { } = op.operation let operation = operationProps.getIn(["op", "operation"]) + let security = operationProps.get("security") let responses = operation.get("responses") let produces = operation.get("produces") - let security = operation.get("security") || specSelectors.security() let parameters = getList(operation, ["parameters"]) let operationScheme = specSelectors.operationScheme(path, method) let isShownKey = ["operations", tag, operationId] @@ -128,7 +129,7 @@ export default class Operation extends PureComponent { { (!security || !security.count()) ? null : { const applicableDefinitions = authSelectors.definitionsForRequirements(security) authActions.showDefinitions(applicableDefinitions) diff --git a/src/core/containers/OperationContainer.jsx b/src/core/containers/OperationContainer.jsx index 4f224855..74371db1 100644 --- a/src/core/containers/OperationContainer.jsx +++ b/src/core/containers/OperationContainer.jsx @@ -25,9 +25,11 @@ export default class OperationContainer extends PureComponent { jumpToKey: PropTypes.string.isRequired, allowTryItOut: PropTypes.bool, displayOperationId: PropTypes.bool, + isAuthorized: PropTypes.bool, displayRequestDuration: PropTypes.bool, response: PropTypes.instanceOf(Iterable), request: PropTypes.instanceOf(Iterable), + security: PropTypes.instanceOf(Iterable), isDeepLinkingEnabled: PropTypes.bool.isRequired, getComponent: PropTypes.func.isRequired, @@ -59,6 +61,7 @@ export default class OperationContainer extends PureComponent { const isDeepLinkingEnabled = deepLinking && deepLinking !== "false" const allowTryItOut = typeof props.allowTryItOut === "undefined" ? props.specSelectors.allowTryItOutFor(props.path, props.method) : props.allowTryItOut + const security = op.getIn(["operation", "security"]) || props.specSelectors.security() return { operationId, @@ -67,6 +70,8 @@ export default class OperationContainer extends PureComponent { displayOperationId, displayRequestDuration, allowTryItOut, + security, + isAuthorized: props.authSelectors.isAuthorized(security), isShown: layoutSelectors.isShown(isShownKey, docExpansion === "full" ), jumpToKey: `paths.${props.path}.${props.method}`, response: props.specSelectors.responseFor(props.path, props.method), @@ -123,6 +128,8 @@ export default class OperationContainer extends PureComponent { tag, path, method, + security, + isAuthorized, operationId, showSummary, isShown, @@ -152,6 +159,8 @@ export default class OperationContainer extends PureComponent { tag, path, method, + security, + isAuthorized, operationId, showSummary, isShown,