本文整理汇总了C++中CAccessControlListGroup::FindObjectMatch方法的典型用法代码示例。如果您正苦于以下问题:C++ CAccessControlListGroup::FindObjectMatch方法的具体用法?C++ CAccessControlListGroup::FindObjectMatch怎么用?C++ CAccessControlListGroup::FindObjectMatch使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CAccessControlListGroup
的用法示例。
在下文中一共展示了CAccessControlListGroup::FindObjectMatch方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: aclGroupAddObject
int CLuaACLDefs::aclGroupAddObject ( lua_State* luaVM )
{
// bool aclGroupAddObject ( aclgroup theGroup, string theObjectName )
CAccessControlListGroup* pGroup; SString strObject;
CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pGroup );
argStream.ReadString ( strObject );
if ( !argStream.HasErrors () )
{
// Figure out what type of object this is
const char* szObjectAfterDot = strObject;
CAccessControlListGroupObject::EObjectType eType;
if ( StringBeginsWith ( strObject, "resource." ) )
{
eType = CAccessControlListGroupObject::OBJECT_TYPE_RESOURCE;
szObjectAfterDot += 9;
}
else if ( StringBeginsWith ( strObject, "user." ) )
{
eType = CAccessControlListGroupObject::OBJECT_TYPE_USER;
szObjectAfterDot += 5;
}
else
{
lua_pushboolean ( luaVM, false );
return 1;
}
// Make sure it doesn't already exist
if ( !pGroup->FindObjectMatch ( szObjectAfterDot, eType ) )
{
// Set it
pGroup->AddObject ( szObjectAfterDot, eType );
CLogger::LogPrintf ( "ACL: %s: Object '%s' added to group '%s'\n", GetResourceName ( luaVM ), strObject.c_str (), pGroup->GetGroupName () );
// Return success
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}
示例2: isObjectInACLGroup
int CLuaACLDefs::isObjectInACLGroup ( lua_State* luaVM )
{
// bool isObjectInACLGroup ( string theObject, aclgroup theGroup )
SString strObject; CAccessControlListGroup* pGroup; CAccessControlListGroupObject::EObjectType GroupObjectType;
CScriptArgReader argStream ( luaVM );
argStream.ReadString ( strObject );
argStream.ReadUserData ( pGroup );
if ( !argStream.HasErrors () )
{
// Figure out what type of object this is
const char* szObjectAfterDot = strObject;
if ( StringBeginsWith ( strObject, "resource." ) ) {
szObjectAfterDot += 9;
GroupObjectType = CAccessControlListGroupObject::OBJECT_TYPE_RESOURCE;
}
else if ( StringBeginsWith ( strObject, "user." ) )
{
szObjectAfterDot += 5;
GroupObjectType = CAccessControlListGroupObject::OBJECT_TYPE_USER;
}
else
{
// Invalid group type
lua_pushboolean ( luaVM, false );
return 1;
}
if ( pGroup->FindObjectMatch ( szObjectAfterDot, GroupObjectType ) )
{
lua_pushboolean ( luaVM, true );
return 1;
}
}
else
m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () );
lua_pushboolean ( luaVM, false );
return 1;
}