- Add new operation permission “CanManageAccessRight” and add roles who have access.
- Create replacing client module for "Section base schema":
BaseSectionV2 schema code
define("BaseSectionV2", [], function() {
return {
attributes: {
"CanManageAccessRight": {
dataValueType: this.Terrasoft.DataValueType.BOOLEAN
}
},
messages: {
"UpdateCanManageAccessRight": {
"mode": Terrasoft.MessageMode.PTP,
"direction": Terrasoft.MessageDirectionType.SUBSCRIBE
}
},
methods: {
subscribeSandboxEvents: function() {
this.callParent(arguments);
this.sandbox.subscribe("UpdateCanManageAccessRight", function(result) {
this.set("CanManageAccessRight", result);
}, this, [this.getCardModuleSandboxId()]);
},
getSchemaAdministratedByRecords: function() {
return this.callParent(arguments) && this.get("CanManageAccessRight");
}
}
};
});- Create replacing client module for "Base card schema":
BasePageV2 schema code
define("BasePageV2", ["RightUtilities"], function(RightUtilities) {
return {
attributes: {
"CanManageAccessRight": {
dataValueType: this.Terrasoft.DataValueType.BOOLEAN
}
},
messages: {
"UpdateCanManageAccessRight": {
"mode": Terrasoft.MessageMode.PTP,
"direction": Terrasoft.MessageDirectionType.BIDIRECTIONAL
}
},
methods: {
init: function() {
this.callParent(arguments);
this.checkCanManageAccessRight();
},
checkCanManageAccessRight: function() {
RightUtilities.checkCanExecuteOperation({operation: "CanManageAccessRight"}, function(result) {
this.set("CanManageAccessRight", result);
this.sandbox.publish("UpdateCanManageAccessRight", result, [this.sandbox.id]);
}, this);
},
subscribeSandboxEvents: function() {
this.callParent(arguments);
this.sandbox.subscribe("UpdateCanManageAccessRight", function() {
return this.get("CanManageAccessRight");
}, this, this.getDetailIds());
},
getSchemaAdministratedByRecords: function() {
return this.callParent(arguments) && this.get("CanManageAccessRight");
}
}
};
});- Create replacing client module for "Base schema - Detail with list":
BaseGridDetailV2 schema code
define("BaseGridDetailV2", [], function() {
return {
attributes: {
"CanManageAccessRight": {
dataValueType: this.Terrasoft.DataValueType.BOOLEAN
}
},
messages: {
"UpdateCanManageAccessRight": {
"mode": Terrasoft.MessageMode.PTP,
"direction": Terrasoft.MessageDirectionType.PUBLISH
}
},
methods: {
init: function() {
this.callParent(arguments);
var canManageAccessRight = this.sandbox.publish("UpdateCanManageAccessRight", null, [this.sandbox.id]);
this.set("CanManageAccessRight", canManageAccessRight);
},
getSchemaAdministratedByRecords: function() {
return this.callParent(arguments) && this.get("CanManageAccessRight");
}
}
};
});