summaryrefslogtreecommitdiff
path: root/src/mongo/db/auth/user.cpp
diff options
context:
space:
mode:
authorAndy Schwerin <schwerin@10gen.com>2013-10-05 12:36:03 -0400
committerAndy Schwerin <schwerin@10gen.com>2013-10-05 17:39:16 -0400
commitee34eb5c05c5b8072dc1354845ed34989596456b (patch)
tree600b18fcbf22dfccf64496f5a3dc02636e56e50f /src/mongo/db/auth/user.cpp
parent07c18d3c1147bd11ea50902542432a178f4f685f (diff)
downloadmongo-ee34eb5c05c5b8072dc1354845ed34989596456b.tar.gz
SERVER-10670 Add setPrivileges and setRoleData methods to User.
Diffstat (limited to 'src/mongo/db/auth/user.cpp')
-rw-r--r--src/mongo/db/auth/user.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/mongo/db/auth/user.cpp b/src/mongo/db/auth/user.cpp
index 0dcc7d3ff76..03ef82bbe1b 100644
--- a/src/mongo/db/auth/user.cpp
+++ b/src/mongo/db/auth/user.cpp
@@ -73,6 +73,22 @@ namespace mongo {
_credentials = credentials;
}
+ void User::setRoleData(const std::vector<User::RoleData>& roles) {
+ _roles.clear();
+ for (size_t i = 0; i < roles.size(); ++i) {
+ const User::RoleData& role = roles[i];
+ _roles[role.name] = role;
+ }
+ }
+
+ void User::setPrivileges(const PrivilegeVector& privileges) {
+ _privileges.clear();
+ for (size_t i = 0; i < privileges.size(); ++i) {
+ const Privilege& privilege = privileges[i];
+ _privileges[privilege.getResourcePattern()] = privilege;
+ }
+ }
+
void User::addRole(const RoleName& roleName) {
RoleData& role = _roles[roleName];
if (role.name.empty()) {