本文整理汇总了C++中CAccessControlList::GetRight方法的典型用法代码示例。如果您正苦于以下问题:C++ CAccessControlList::GetRight方法的具体用法?C++ CAccessControlList::GetRight怎么用?C++ CAccessControlList::GetRight使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAccessControlList
的用法示例。
在下文中一共展示了CAccessControlList::GetRight方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: aclRemoveRight
int CLuaACLDefs::aclRemoveRight ( lua_State* luaVM )
{
// bool aclRemoveRight ( acl theAcl, string rightName )
CAccessControlList* pACL; SString strRight;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pACL );
argStream.ReadString ( strRight );
if ( !argStream.HasErrors () )
{
// Grab the type from the name passed
const char* szRightAftedDot = strRight;
CAccessControlListRight::ERightType eType;
if ( StringBeginsWith ( strRight, "command." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_COMMAND;
szRightAftedDot += 8;
}
else if ( StringBeginsWith ( strRight, "function." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_FUNCTION;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "resource." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_RESOURCE;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "general." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_GENERAL;
szRightAftedDot += 8;
}
else
{
lua_pushboolean ( luaVM, false );
return 1;
}
// Try removing the right
CAccessControlListRight* pACLRight = pACL->GetRight ( szRightAftedDot, eType );
bool bAccess = pACLRight && pACLRight->GetRightAccess ();
if ( pACL->RemoveRight ( szRightAftedDot, eType ) )
{
CLogger::LogPrintf ( "ACL: %s: Right '%s' %s removed from ACL '%s'\n", GetResourceName ( luaVM ), strRight.c_str (), bAccess ? "ALLOW" : "DISALLOW", pACL->GetName () );
// Return success
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例2: aclGetRight
int CLuaACLDefs::aclGetRight ( lua_State* luaVM )
{
// bool aclGetRight ( acl theAcl, string rightName )
CAccessControlList* pACL; SString strRight;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pACL );
argStream.ReadString ( strRight );
if ( !argStream.HasErrors () )
{
// Grab the type from the name passed
const char* szRightAftedDot = strRight;
CAccessControlListRight::ERightType eType;
if ( StringBeginsWith ( strRight, "command." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_COMMAND;
szRightAftedDot += 8;
}
else if ( StringBeginsWith ( strRight, "function." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_FUNCTION;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "resource." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_RESOURCE;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "general." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_GENERAL;
szRightAftedDot += 8;
}
else
{
lua_pushboolean ( luaVM, false );
return 1;
}
// Grab the right from the name and type
CAccessControlListRight* pACLRight = pACL->GetRight ( szRightAftedDot, eType );
if ( pACLRight )
{
lua_pushboolean ( luaVM, pACLRight->GetRightAccess () );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例3: aclSetRight
int CLuaACLDefs::aclSetRight ( lua_State* luaVM )
{
// bool aclSetRight ( acl theAcl, string rightName, bool hasAccess )
CAccessControlList* pACL; SString strRight; bool bAccess;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pACL );
argStream.ReadString ( strRight );
argStream.ReadBool ( bAccess );
if ( !argStream.HasErrors () )
{
// Grab the type from the name passed
const char* szRightAftedDot = strRight;
CAccessControlListRight::ERightType eType;
if ( StringBeginsWith ( strRight, "command." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_COMMAND;
szRightAftedDot += 8;
}
else if ( StringBeginsWith ( strRight, "function." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_FUNCTION;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "resource." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_RESOURCE;
szRightAftedDot += 9;
}
else if ( StringBeginsWith ( strRight, "general." ) )
{
eType = CAccessControlListRight::RIGHT_TYPE_GENERAL;
szRightAftedDot += 8;
}
else
{
lua_pushboolean ( luaVM, false );
return 1;
}
// Grab the right from the name and type
CAccessControlListRight* pACLRight = pACL->GetRight ( szRightAftedDot, eType );
if ( pACLRight )
{
// Set the new access right
if ( pACLRight->GetRightAccess () != bAccess )
CLogger::LogPrintf ( "ACL: %s: Right '%s' changed to %s in ACL '%s'\n", GetResourceName ( luaVM ), strRight.c_str (), bAccess ? "ALLOW" : "DISALLOW", pACL->GetName () );
pACLRight->SetRightAccess ( bAccess );
lua_pushboolean ( luaVM, true );
return 1;
}
// Try to add it
pACLRight = pACL->AddRight ( szRightAftedDot, eType, bAccess );
if ( pACLRight )
{
// LOGLEVEL_LOW to stop spam from admin resource at new server startup
CLogger::LogPrintf ( LOGLEVEL_LOW, "ACL: %s: Right '%s' %s added in ACL '%s'\n", GetResourceName ( luaVM ), strRight.c_str (), bAccess ? "ALLOW" : "DISALLOW", pACL->GetName () );
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}