int CLuaACLDefs::aclDestroyGroup ( lua_State* luaVM ) { // bool aclDestroyGroup ( aclgroup aclGroup ) CAccessControlListGroup* pGroup; CScriptArgReader argStream ( luaVM ); argStream.ReadUserData ( pGroup ); if ( !argStream.HasErrors () ) { // Delete it CLogger::LogPrintf ( "ACL: %s: Group '%s' deleted\n", GetResourceName ( luaVM ), pGroup->GetGroupName () ); m_pACLManager->DeleteGroup ( pGroup ); // Return success lua_pushboolean ( luaVM, true ); return 1; } else m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaACLDefs::aclCreateGroup ( lua_State* luaVM ) { // aclgroup aclCreateGroup ( string groupName ) SString strGroup; CScriptArgReader argStream ( luaVM ); argStream.ReadString ( strGroup ); if ( !argStream.HasErrors () ) { // Find the ACL specified CAccessControlListGroup* pGroup = m_pACLManager->GetGroup ( strGroup ); if ( !pGroup ) { // Create the group pGroup = m_pACLManager->AddGroup ( strGroup ); CLogger::LogPrintf ( "ACL: %s: Group '%s' created\n", GetResourceName ( luaVM ), pGroup->GetGroupName () ); // And return it lua_pushaclgroup ( luaVM, pGroup ); return 1; } } else m_pScriptDebugging->LogCustom ( luaVM, argStream.GetFullErrorMessage () ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaACLDefs::aclGroupRemoveObject ( lua_State* luaVM ) { // Verify the arguents if ( lua_type ( luaVM, 1 ) == LUA_TLIGHTUSERDATA && lua_type ( luaVM, 2 ) == LUA_TSTRING ) { // Grab the arguments CAccessControlListGroup* pGroup = lua_toaclgroup ( luaVM, 1 ); const char* szObject = lua_tostring ( luaVM, 2 ); // Verify the group and ACL if ( pGroup ) { // Figure out what type of object this is const char* szObjectAfterDot = szObject; CAccessControlListGroupObject::EObjectType eType; if ( StringBeginsWith ( szObject, "resource." ) ) { eType = CAccessControlListGroupObject::OBJECT_TYPE_RESOURCE; szObjectAfterDot += 9; } else if ( StringBeginsWith ( szObject, "user." ) ) { eType = CAccessControlListGroupObject::OBJECT_TYPE_USER; szObjectAfterDot += 5; } else { lua_pushboolean ( luaVM, false ); return 1; } // Remove it if ( pGroup->RemoveObject ( szObjectAfterDot, eType ) ) { // Return success CLogger::LogPrintf ( "ACL: %s: Object '%s' removed from group '%s'\n", GetResourceName ( luaVM ), szObject, pGroup->GetGroupName () ); lua_pushboolean ( luaVM, true ); return 1; } } } else m_pScriptDebugging->LogBadType ( luaVM, "aclGroupRemoveObject" ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaACLDefs::aclGroupRemoveACL ( lua_State* luaVM ) { // Verify the arguents if ( lua_type ( luaVM, 1 ) == LUA_TLIGHTUSERDATA && lua_type ( luaVM, 2 ) == LUA_TLIGHTUSERDATA ) { // Grab the arguments CAccessControlListGroup* pGroup = lua_toaclgroup ( luaVM, 1 ); CAccessControlList* pACL = lua_toacl ( luaVM, 2 ); // Verify the group and ACL if ( pGroup && pACL ) { // Add the ACL to the group pGroup->RemoveACL ( pACL ); CLogger::LogPrintf ( "ACL: %s: ACL '%s' removed from group '%s'\n", GetResourceName ( luaVM ), pACL->GetName (), pGroup->GetGroupName () ); // Return success lua_pushboolean ( luaVM, true ); return 1; } } else m_pScriptDebugging->LogBadType ( luaVM, "aclGroupRemoveACL" ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaACLDefs::aclDestroyGroup ( lua_State* luaVM ) { // Verify the arguents if ( lua_type ( luaVM, 1 ) == LUA_TLIGHTUSERDATA ) { // Grab the arguments CAccessControlListGroup* pGroup = lua_toaclgroup ( luaVM, 1 ); // Verify the group if ( pGroup ) { // Delete it CLogger::LogPrintf ( "ACL: %s: Group '%s' deleted\n", GetResourceName ( luaVM ), pGroup->GetGroupName () ); m_pACLManager->DeleteGroup ( pGroup ); // Return success lua_pushboolean ( luaVM, true ); return 1; } } else m_pScriptDebugging->LogBadType ( luaVM, "aclDestroyGroup" ); lua_pushboolean ( luaVM, false ); return 1; }
int CLuaACLDefs::aclCreateGroup ( lua_State* luaVM ) { // Verify the arguents if ( lua_type ( luaVM, 1 ) == LUA_TSTRING ) { // Grab the argument strings char* szGroup = (char*) lua_tostring ( luaVM, 1 ); // Find the ACL specified CAccessControlListGroup* pGroup = m_pACLManager->GetGroup ( szGroup ); if ( !pGroup ) { // Create the group pGroup = m_pACLManager->AddGroup ( szGroup ); CLogger::LogPrintf ( "ACL: %s: Group '%s' created\n", GetResourceName ( luaVM ), pGroup->GetGroupName () ); // And return it lua_pushaclgroup ( luaVM, pGroup ); return 1; } } else m_pScriptDebugging->LogBadType ( luaVM, "aclCreateGroup" ); lua_pushboolean ( luaVM, false ); return 1; }