|
@@ -5155,6 +5155,42 @@ bool CWsDeployFileInfo::handleThorTopology(IEspContext &context, IEspHandleThorT
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+bool CWsDeployFileInfo::handleBaseAccessControlList(IEspContext &context, IEspHandleBaseAccessControlListRequest &req, IEspHandleBaseAccessControlListResponse &resp)
|
|
|
+{
|
|
|
+ synchronized block(m_mutex);
|
|
|
+ checkForRefresh(context, &req.getReqInfo(), true);
|
|
|
+
|
|
|
+ StringBuffer buildSetPath;
|
|
|
+
|
|
|
+ IPropertyTree *pEnvRoot = getEnvTree(context,&req.getReqInfo());
|
|
|
+ const char* xmlArg = req.getXmlArgs();
|
|
|
+ const char* operation = req.getOperation();
|
|
|
+
|
|
|
+ Owned<IPropertyTreeIterator> buildSetIter = pEnvRoot->getElements("./Programs/Build/BuildSet[@name=\"roxie\"]");
|
|
|
+
|
|
|
+ buildSetIter->first();
|
|
|
+ IPropertyTree* pBuildSet = &buildSetIter->query();
|
|
|
+ Owned<IPropertyTree> pParams = createPTreeFromXMLString(xmlArg && *xmlArg ? xmlArg : "<XmlArgs/>");
|
|
|
+
|
|
|
+ const char* buildSetName = pBuildSet->queryProp(XML_ATTR_NAME);
|
|
|
+ const char* processName = pBuildSet->queryProp(XML_ATTR_PROCESS_NAME);
|
|
|
+ const char* xpath = pParams->queryProp("@XPath");
|
|
|
+
|
|
|
+ Owned<IPropertyTree> pSchema = loadSchema(pEnvRoot->queryPropTree("./Programs/Build[1]"), pBuildSet, buildSetPath, m_Environment);
|
|
|
+ Owned<IPropertyTree> pNewCompTree = generateTreeFromXsd(pEnvRoot, pSchema, processName, buildSetName, m_pService->getCfg(), m_pService->getName());
|
|
|
+
|
|
|
+ if (stricmp("Add",operation) == 0)
|
|
|
+ {
|
|
|
+ IPropertyTree* pTempTree = createPTreeFromIPT(pNewCompTree->queryPropTree("BaseList"));
|
|
|
+ (pEnvRoot->queryPropTree(xpath))->addPropTree("BaseList",pTempTree);
|
|
|
+ }
|
|
|
+ else if (stricmp("Delete", operation) == 0)
|
|
|
+ pEnvRoot->removeProp(xpath);
|
|
|
+
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
bool CWsDeployFileInfo::handleAccessRules(IEspContext &context, IEspHandleAccessRulesRequest &req, IEspHandleAccessRulesResponse &resp)
|
|
|
{
|
|
|
synchronized block(m_mutex);
|
|
@@ -6926,6 +6962,11 @@ bool CWsDeployEx::onHandleAccessRules(IEspContext &context, IEspHandleAccessRule
|
|
|
return fi->handleAccessRules(context, req, resp);
|
|
|
}
|
|
|
|
|
|
+bool CWsDeployEx::onHandleBaseAccessControlList(IEspContext &context, IEspHandleBaseAccessControlListRequest &req, IEspHandleBaseAccessControlListResponse &resp)
|
|
|
+{
|
|
|
+ CWsDeployFileInfo* fi = getFileInfo(req.getReqInfo().getFileName());
|
|
|
+ return fi->handleBaseAccessControlList(context, req, resp);
|
|
|
+}
|
|
|
|
|
|
bool CWsDeployEx::onGraph(IEspContext &context, IEspEmptyRequest& req, IEspGraphResponse& resp)
|
|
|
{
|
|
@@ -7182,6 +7223,11 @@ bool CWsDeployExCE::onHandleRows(IEspContext &context, IEspHandleRowsRequest &re
|
|
|
return supportedInEEOnly();
|
|
|
}
|
|
|
|
|
|
+bool CWsDeployExCE::onHandleBaseAccessControlList(IEspContext &context, IEspHandleBaseAccessControlListRequest &req, IEspHandleBaseAccessControlListResponse &resp)
|
|
|
+{
|
|
|
+ return supportedInEEOnly();
|
|
|
+}
|
|
|
+
|
|
|
bool CWsDeployExCE::onHandleAccessRules(IEspContext &context, IEspHandleAccessRulesRequest &req, IEspHandleAccessRulesResponse &resp)
|
|
|
{
|
|
|
return supportedInEEOnly();
|