summaryrefslogtreecommitdiff
path: root/cpp/managementgen/qmfgen/schema.py
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/managementgen/qmfgen/schema.py')
-rwxr-xr-xcpp/managementgen/qmfgen/schema.py26
1 files changed, 18 insertions, 8 deletions
diff --git a/cpp/managementgen/qmfgen/schema.py b/cpp/managementgen/qmfgen/schema.py
index f01d5ee9b2..fdbc7c7be8 100755
--- a/cpp/managementgen/qmfgen/schema.py
+++ b/cpp/managementgen/qmfgen/schema.py
@@ -1228,12 +1228,12 @@ class SchemaClass:
inArgCount = inArgCount + 1
if methodCount == 0:
- stream.write ("string&, const string&, string& outStr")
+ stream.write ("string&, const string&, string& outStr, const string&")
else:
if inArgCount == 0:
- stream.write ("string& methodName, const string&, string& outStr")
+ stream.write ("string& methodName, const string&, string& outStr, const string& userId")
else:
- stream.write ("string& methodName, const string& inStr, string& outStr")
+ stream.write ("string& methodName, const string& inStr, string& outStr, const string& userId")
def genDoMapMethodArgs (self, stream, variables):
@@ -1248,16 +1248,16 @@ class SchemaClass:
if methodCount == 0:
stream.write ("string&," +
" const ::qpid::types::Variant::Map&," +
- " ::qpid::types::Variant::Map& outMap")
+ " ::qpid::types::Variant::Map& outMap, const string&")
else:
if inArgCount == 0:
stream.write ("string& methodName," +
" const ::qpid::types::Variant::Map&," +
- " ::qpid::types::Variant::Map& outMap")
+ " ::qpid::types::Variant::Map& outMap, const string& userId")
else:
stream.write ("string& methodName," +
" const ::qpid::types::Variant::Map& inMap," +
- " ::qpid::types::Variant::Map& outMap")
+ " ::qpid::types::Variant::Map& outMap, const string& userId")
def genHiLoStatResets (self, stream, variables):
for inst in self.statistics:
@@ -1367,8 +1367,13 @@ class SchemaClass:
arg.dir.lower () + "_" +\
arg.name, "inBuf") + ";\n")
- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\
+ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\
+ method.getName().upper() + ", ioArgs, userId);\n")
+ stream.write (" if (allow)\n")
+ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\
method.getName().upper() + ", ioArgs, text);\n")
+ stream.write (" else\n")
+ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n")
stream.write (" outBuf.putLong (status);\n")
stream.write (" outBuf.putMediumString(::qpid::management::Manageable::StatusText (status, text));\n")
for arg in method.args:
@@ -1402,8 +1407,13 @@ class SchemaClass:
arg.name,
"inMap")
- stream.write (" status = coreObject->ManagementMethod (METHOD_" +\
+ stream.write (" bool allow = coreObject->AuthorizeMethod(METHOD_" +\
+ method.getName().upper() + ", ioArgs, userId);\n")
+ stream.write (" if (allow)\n")
+ stream.write (" status = coreObject->ManagementMethod (METHOD_" +\
method.getName().upper() + ", ioArgs, text);\n")
+ stream.write (" else\n")
+ stream.write (" status = Manageable::STATUS_FORBIDDEN;\n")
stream.write (" outMap[\"_status_code\"] = (uint32_t) status;\n")
stream.write (" outMap[\"_status_text\"] = ::qpid::management::Manageable::StatusText(status, text);\n")
for arg in method.args: