mirror of
https://github.com/nasa/openmct.git
synced 2025-03-23 04:25:27 +00:00
[Actions] Restrict mutating actions
Restrict actions which cause mutation of domain objects to types of domain objects which can be created. (This does not include Packet or Telemetry Point, WTD-723.)
This commit is contained in:
parent
5c34382933
commit
4c42d4de28
@ -57,7 +57,11 @@ define(
|
||||
* will be performed; should contain a `domainObject` property
|
||||
*/
|
||||
EditAction.appliesTo = function (context) {
|
||||
return (context || {}).domainObject !== undefined;
|
||||
var domainObject = (context || {}).domainObject,
|
||||
type = domainObject && domainObject.getCapability('type');
|
||||
|
||||
// Only allow creatable types to be edited
|
||||
return type && type.hasFeature('creation');
|
||||
};
|
||||
|
||||
return EditAction;
|
||||
|
@ -70,9 +70,14 @@ define(
|
||||
* context.
|
||||
*/
|
||||
PropertiesAction.appliesTo = function (context) {
|
||||
return (context || {}).domainObject &&
|
||||
(context || {}).domainObject.hasCapability("type") &&
|
||||
(context || {}).domainObject.hasCapability("persistence");
|
||||
var domainObject = (context || {}).domainObject,
|
||||
type = domainObject && domainObject.getCapability('type'),
|
||||
creatable = type && type.hasFeature('creation');
|
||||
|
||||
// Only allow creatable types to be edited
|
||||
return domainObject &&
|
||||
domainObject.hasCapability("persistence") &&
|
||||
creatable;
|
||||
};
|
||||
|
||||
return PropertiesAction;
|
||||
|
@ -80,9 +80,14 @@ define(
|
||||
RemoveAction.appliesTo = function (context) {
|
||||
var object = (context || {}).domainObject,
|
||||
contextCapability = object && object.getCapability("context"),
|
||||
parent = contextCapability && contextCapability.getParent();
|
||||
parent = contextCapability && contextCapability.getParent(),
|
||||
parentType = parent.getCapability('type'),
|
||||
parentCreatable = parentType && parentType.hasFeature('creation');
|
||||
|
||||
// Only creatable types should be modifiable
|
||||
return parent !== undefined &&
|
||||
Array.isArray(parent.getModel().composition);
|
||||
Array.isArray(parent.getModel().composition) &&
|
||||
parentCreatable;
|
||||
};
|
||||
|
||||
return RemoveAction;
|
||||
|
Loading…
x
Reference in New Issue
Block a user