uid_t new_uid, gid_t new_gid,
const entity_addr_t& addr) const
{
- if (cct)
- ldout(cct, 10) << __func__ << " inode(path /" << inode_path
- << " owner " << inode_uid << ":" << inode_gid
- << " mode 0" << std::oct << inode_mode << std::dec
- << ") by caller " << caller_uid << ":" << caller_gid
+ ldout(g_ceph_context, 10) << __func__ << " inode(path /" << inode_path
+ << " owner " << inode_uid << ":" << inode_gid
+ << " mode 0" << std::oct << inode_mode << std::dec
+ << ") by caller " << caller_uid << ":" << caller_gid
// << "[" << caller_gid_list << "]";
- << " mask " << mask
- << " new " << new_uid << ":" << new_gid
- << " cap: " << *this << dendl;
+ << " mask " << mask
+ << " new " << new_uid << ":" << new_gid
+ << " cap: " << *this << dendl;
for (const auto& grant : grants) {
if (grant.network.size() &&
{}));
}
-bool MDSAuthCaps::parse(CephContext *c, std::string_view str, ostream *err)
+bool MDSAuthCaps::parse(std::string_view str, ostream *err)
{
// Special case for legacy caps
if (str == "allow") {
MDSCapParser<decltype(iter)> g;
bool r = qi::phrase_parse(iter, end, g, ascii::space, *this);
- cct = c; // set after parser self-assignment
if (r && iter == end) {
for (auto& grant : grants) {
std::sort(grant.match.gids.begin(), grant.match.gids.end());
string str = parse_good[i];
MDSAuthCaps cap;
std::cout << "Testing good input: '" << str << "'" << std::endl;
- ASSERT_TRUE(cap.parse(g_ceph_context, str, &cout));
+ ASSERT_TRUE(cap.parse(str, &cout));
}
}
string str = parse_bad[i];
MDSAuthCaps cap;
std::cout << "Testing bad input: '" << str << "'" << std::endl;
- ASSERT_FALSE(cap.parse(g_ceph_context, str, &cout));
+ ASSERT_FALSE(cap.parse(str, &cout));
}
}
MDSAuthCaps cap;
ASSERT_FALSE(cap.allow_all());
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow r", NULL));
+ ASSERT_TRUE(cap.parse("allow r", NULL));
ASSERT_FALSE(cap.allow_all());
cap = MDSAuthCaps();
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow rw", NULL));
+ ASSERT_TRUE(cap.parse("allow rw", NULL));
ASSERT_FALSE(cap.allow_all());
cap = MDSAuthCaps();
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow", NULL));
+ ASSERT_TRUE(cap.parse("allow", NULL));
ASSERT_FALSE(cap.allow_all());
cap = MDSAuthCaps();
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow *", NULL));
+ ASSERT_TRUE(cap.parse("allow *", NULL));
ASSERT_TRUE(cap.allow_all());
ASSERT_TRUE(cap.is_capable("foo/bar", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
}
TEST(MDSAuthCaps, AllowUid) {
- MDSAuthCaps cap(g_ceph_context);
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow * uid=10", NULL));
+ MDSAuthCaps cap;
+ ASSERT_TRUE(cap.parse("allow * uid=10", NULL));
ASSERT_FALSE(cap.allow_all());
// uid/gid must be valid
}
TEST(MDSAuthCaps, AllowUidGid) {
- MDSAuthCaps cap(g_ceph_context);
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow * uid=10 gids=10,11,12; allow * uid=12 gids=12,10", NULL));
+ MDSAuthCaps cap;
+ ASSERT_TRUE(cap.parse("allow * uid=10 gids=10,11,12; allow * uid=12 gids=12,10", NULL));
ASSERT_FALSE(cap.allow_all());
// uid/gid must be valid
TEST(MDSAuthCaps, AllowPath) {
MDSAuthCaps cap;
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow * path=/sandbox", NULL));
+ ASSERT_TRUE(cap.parse("allow * path=/sandbox", NULL));
ASSERT_FALSE(cap.allow_all());
ASSERT_TRUE(cap.is_capable("sandbox/foo", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
ASSERT_TRUE(cap.is_capable("sandbox", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
TEST(MDSAuthCaps, AllowPathChars) {
MDSAuthCaps unquo_cap;
- ASSERT_TRUE(unquo_cap.parse(g_ceph_context, "allow * path=/sandbox-._foo", NULL));
+ ASSERT_TRUE(unquo_cap.parse("allow * path=/sandbox-._foo", NULL));
ASSERT_FALSE(unquo_cap.allow_all());
ASSERT_TRUE(unquo_cap.is_capable("sandbox-._foo/foo", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
ASSERT_FALSE(unquo_cap.is_capable("sandbox", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
TEST(MDSAuthCaps, AllowPathCharsQuoted) {
MDSAuthCaps quo_cap;
- ASSERT_TRUE(quo_cap.parse(g_ceph_context, "allow * path=\"/sandbox-._foo\"", NULL));
+ ASSERT_TRUE(quo_cap.parse("allow * path=\"/sandbox-._foo\"", NULL));
ASSERT_FALSE(quo_cap.allow_all());
ASSERT_TRUE(quo_cap.is_capable("sandbox-._foo/foo", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
ASSERT_FALSE(quo_cap.is_capable("sandbox", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
TEST(MDSAuthCaps, RootSquash) {
MDSAuthCaps rs_cap;
- ASSERT_TRUE(rs_cap.parse(g_ceph_context, "allow rw root_squash, allow rw path=/sandbox", NULL));
+ ASSERT_TRUE(rs_cap.parse("allow rw root_squash, allow rw path=/sandbox", NULL));
ASSERT_TRUE(rs_cap.is_capable("foo", 0, 0, 0777, 0, 0, NULL, MAY_READ, 0, 0, addr));
ASSERT_TRUE(rs_cap.is_capable("foo", 0, 0, 0777, 10, 10, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
ASSERT_FALSE(rs_cap.is_capable("foo", 0, 0, 0777, 0, 0, NULL, MAY_READ | MAY_WRITE, 0, 0, addr));
for (size_t i = 0; i < num_tests; ++i) {
MDSAuthCaps cap;
std::cout << "Testing input '" << test_values[i].input << "'" << std::endl;
- ASSERT_TRUE(cap.parse(g_ceph_context, test_values[i].input, &cout));
+ ASSERT_TRUE(cap.parse(test_values[i].input, &cout));
ASSERT_EQ(test_values[i].output, stringify(cap));
}
}
c.parse("192.167.2.3");
MDSAuthCaps cap;
- ASSERT_TRUE(cap.parse(g_ceph_context, "allow * network 192.168.0.0/16, allow * network 10.0.0.0/8", NULL));
+ ASSERT_TRUE(cap.parse("allow * network 192.168.0.0/16, allow * network 10.0.0.0/8", NULL));
ASSERT_TRUE(cap.is_capable("foo", 0, 0, 0777, 0, 0, NULL, MAY_READ, 0, 0, a));
ASSERT_TRUE(cap.is_capable("foo", 0, 0, 0777, 0, 0, NULL, MAY_READ, 0, 0, b));