static int handle_system_collection_insert(const char *ns, const BSONObj &obj, bool logop) { // Trying to insert into a system collection. Fancy side-effects go here: // TODO: see insert_checkSys if (mongoutils::str::endsWith(ns, ".system.indexes")) { // obj is something like this: // { _id: ObjectId('511d34f6d3080c48017a14d0'), ns: "test.leif", key: { a: -1.0 }, name: "a_-1", unique: true } const string &coll = obj["ns"].String(); NamespaceDetails *details = getAndMaybeCreateNS(coll.c_str(), logop); BSONObj key = obj["key"].Obj(); int i = details->findIndexByKeyPattern(key); if (i >= 0) { return ASSERT_ID_DUPKEY; } else { details->createIndex(obj); } } else if (legalClientSystemNS(ns, true)) { if (mongoutils::str::endsWith(ns, ".system.users")) { uassert( 14051 , "system.users entry needs 'user' field to be a string", obj["user"].type() == String ); uassert( 14052 , "system.users entry needs 'pwd' field to be a string", obj["pwd"].type() == String ); uassert( 14053 , "system.users entry needs 'user' field to be non-empty", obj["user"].String().size() ); uassert( 14054 , "system.users entry needs 'pwd' field to be non-empty", obj["pwd"].String().size() ); } } else { uasserted(16459, str::stream() << "attempt to insert in system namespace '" << ns << "'"); } return 0; }