当前位置: 首页>>代码示例>>C++>>正文


C++ Principal::getName方法代码示例

本文整理汇总了C++中Principal::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ Principal::getName方法的具体用法?C++ Principal::getName怎么用?C++ Principal::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Principal的用法示例。


在下文中一共展示了Principal::getName方法的10个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: lookup

 Principal* PrincipalSet::lookup(const UserName& name) const {
     Principal* principal = lookupByDBName(name.getDB());
     if (principal && principal->getName() == name) {
         return principal;
     }
     return NULL;
 }
开发者ID:328500920,项目名称:mongo,代码行数:7,代码来源:principal_set.cpp

示例2: logoutDatabase

 void AuthorizationManager::logoutDatabase(const std::string& dbname) {
     Principal* principal = _authenticatedPrincipals.lookupByDBName(dbname);
     if (!principal)
         return;
     _acquiredPrivileges.revokePrivilegesFromPrincipal(principal->getName());
     _authenticatedPrincipals.removeByDBName(dbname);
 }
开发者ID:chenbk85,项目名称:mongo,代码行数:7,代码来源:authorization_manager.cpp

示例3: logoutDatabase

 void AuthorizationSession::logoutDatabase(const std::string& dbname) {
     Principal* principal = _authenticatedPrincipals.lookupByDBName(dbname);
     if (!principal)
         return;
     _acquiredPrivileges.revokePrivilegesFromUser(principal->getName());
     _authenticatedPrincipals.removeByDBName(dbname);
     _externalState->onLogoutDatabase(dbname);
 }
开发者ID:citsoft,项目名称:mongo,代码行数:8,代码来源:authorization_session.cpp

示例4: grantInternalAuthorization

    void AuthorizationManager::grantInternalAuthorization(const std::string& principalName) {
        Principal* principal = new Principal(PrincipalName(principalName, "local"));
        ActionSet actions;
        actions.addAllActions();

        addAuthorizedPrincipal(principal);
        fassert(16581, acquirePrivilege(Privilege(PrivilegeSet::WILDCARD_RESOURCE, actions),
                                    principal->getName()).isOK());
    }
开发者ID:chenbk85,项目名称:mongo,代码行数:9,代码来源:authorization_manager.cpp

示例5: grantInternalAuthorization

    void AuthorizationSession::grantInternalAuthorization(const UserName& userName) {
        Principal* principal = new Principal(userName);
        ActionSet actions;
        actions.addAllActions();

        addAuthorizedPrincipal(principal);
        fassert(16581, acquirePrivilege(Privilege(PrivilegeSet::WILDCARD_RESOURCE, actions),
                                    principal->getName()).isOK());
    }
开发者ID:citsoft,项目名称:mongo,代码行数:9,代码来源:authorization_session.cpp

示例6: lookupByDBName

 Principal* PrincipalSet::lookupByDBName(const StringData& dbname) const {
     for (std::vector<Principal*>::const_iterator it = _principals.begin();
             it != _principals.end(); ++it) {
         Principal* current = *it;
         if (current->getName().getDB() == dbname) {
             return current;
         }
     }
     return NULL;
 }
开发者ID:328500920,项目名称:mongo,代码行数:10,代码来源:principal_set.cpp

示例7: _authorizePrincipal

        void _authorizePrincipal(const std::string& principalName, bool readOnly) {
            Principal* principal = new Principal(PrincipalName(principalName, "local"));
            ActionSet actions = AuthorizationManager::getActionsForOldStyleUser(
                    "admin", readOnly);

            AuthorizationManager* authorizationManager = cc().getAuthorizationManager();
            authorizationManager->addAuthorizedPrincipal(principal);
            Status status = authorizationManager->acquirePrivilege(
                    Privilege(PrivilegeSet::WILDCARD_RESOURCE, actions), principal->getName());
            verify (status == Status::OK());
        }
开发者ID:7segments,项目名称:mongo,代码行数:11,代码来源:dbwebserver.cpp

示例8: removeByDBName

 void PrincipalSet::removeByDBName(const StringData& dbname) {
     for (std::vector<Principal*>::iterator it = _principals.begin();
             it != _principals.end(); ++it) {
         Principal* current = *it;
         if (current->getName().getDB() == dbname) {
             delete current;
             _principals.erase(it);
             break;
         }
     }
 }
开发者ID:328500920,项目名称:mongo,代码行数:11,代码来源:principal_set.cpp

示例9: add

 void PrincipalSet::add(Principal* principal) {
     for (std::vector<Principal*>::iterator it = _principals.begin();
             it != _principals.end(); ++it) {
         Principal* current = *it;
         if (current->getName().getDB() == principal->getName().getDB()) {
             // There can be only one principal per database.
             delete current;
             *it = principal;
             return;
         }
     }
     _principals.push_back(principal);
 }
开发者ID:328500920,项目名称:mongo,代码行数:13,代码来源:principal_set.cpp

示例10: _probeForPrivilege

    Status AuthorizationManager::_probeForPrivilege(const Privilege& privilege) {
        Privilege modifiedPrivilege = _modifyPrivilegeForSpecialCases(privilege);
        if (_acquiredPrivileges.hasPrivilege(modifiedPrivilege))
            return Status::OK();

        std::string dbname = nsToDatabase(modifiedPrivilege.getResource());
        for (PrincipalSet::iterator iter = _authenticatedPrincipals.begin(),
                 end = _authenticatedPrincipals.end();
             iter != end; ++iter) {

            Principal* principal = *iter;
            if (!principal->isImplicitPrivilegeAcquisitionEnabled())
                continue;
            if (principal->isDatabaseProbed(dbname))
                continue;
            _acquirePrivilegesForPrincipalFromDatabase(dbname, principal->getName());
            principal->markDatabaseAsProbed(dbname);
            if (_acquiredPrivileges.hasPrivilege(modifiedPrivilege))
                return Status::OK();
        }
        return Status(ErrorCodes::Unauthorized, "unauthorized", 0);
    }
开发者ID:chenbk85,项目名称:mongo,代码行数:22,代码来源:authorization_manager.cpp


注:本文中的Principal::getName方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。