bufferlist rdata;
stringstream ss;
+ MonSession *session = m->get_session();
+ if (!session ||
+ (!session->caps.get_allow_all() &&
+ !session->caps.check_privileges(PAXOS_OSDMAP, MON_CAP_R) &&
+ !mon->_allowed_command(session, m->cmd))) {
+ mon->reply_command(m, -EACCES, "access denied", rdata, paxos->get_version());
+ return true;
+ }
+
vector<const char*> args;
for (unsigned i = 1; i < m->cmd.size(); i++)
args.push_back(m->cmd[i].c_str());
stringstream ss;
string rs;
int err = -EINVAL;
+
+ MonSession *session = m->get_session();
+ if (!session ||
+ (!session->caps.get_allow_all() &&
+ !session->caps.check_privileges(PAXOS_OSDMAP, MON_CAP_W) &&
+ !mon->_allowed_command(session, m->cmd))) {
+ mon->reply_command(m, -EACCES, "access denied", paxos->get_version());
+ return true;
+ }
+
if (m->cmd.size() > 1) {
if ((m->cmd.size() == 2 && m->cmd[1] == "setcrushmap") ||
(m->cmd.size() == 3 && m->cmd[1] == "crush" && m->cmd[2] == "set")) {