Skip to content

Commit

Permalink
[luadefs-server] Sort out ACL Defs
Browse files Browse the repository at this point in the history
- Fix VS 2008 typo
- Move ACL OOPDefs to CLuaACLDefs
  • Loading branch information
qaisjp committed Sep 9, 2015
1 parent 8cad888 commit 1b14adb
Show file tree
Hide file tree
Showing 8 changed files with 101 additions and 127 deletions.
1 change: 0 additions & 1 deletion MTA10_Server/mods/deathmatch/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -224,7 +224,6 @@ LOGIC = \
./logic/lua/CLuaVector4.cpp \
./logic/lua/LuaCommon.cpp \
./logic/lua/LuaUtils.cpp \
./logic/lua/oopdefs/CLuaOOPFunctionDefs.ACL.cpp \
./logic/lua/oopdefs/CLuaOOPFunctionDefs.Camera.cpp \
./logic/lua/oopdefs/CLuaOOPFunctionDefs.Connection.cpp \
./logic/lua/oopdefs/CLuaOOPFunctionDefs.Marker.cpp \
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -481,7 +481,6 @@
<ClCompile Include="logic\lua\CLuaVector2.cpp" />
<ClCompile Include="logic\lua\CLuaVector3.cpp" />
<ClCompile Include="logic\lua\CLuaVector4.cpp" />
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.ACL.cpp" />
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.Camera.cpp" />
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.Marker.cpp" />
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.Ped.cpp" />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -924,9 +924,6 @@
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.Connection.cpp">
<Filter>Source Files\logic\oopdefs</Filter>
</ClCompile>
<ClCompile Include="logic\lua\oopdefs\CLuaOOPFunctionDefs.ACL.cpp">
<Filter>Source Files\logic\oopdefs</Filter>
</ClCompile>
<ClCompile Include="logic\lua\CLuaFunctionDefs.cpp">
<Filter>Source Files\logic\lua</Filter>
</ClCompile>
Expand Down
1 change: 0 additions & 1 deletion MTA10_Server/mods/deathmatch/logic/lua/CLuaMain.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ void CLuaMain::AddAccountClass ( lua_State* luaVM )
lua_classfunction ( luaVM, "getAllBySerial", "getAccountsBySerial" );
lua_classfunction ( luaVM, "getFromPlayer", "getPlayerAccount" );
lua_classfunction ( luaVM, "logPlayerOut", "logOut" );
lua_classfunction ( luaVM, "doesContainObject", "isObjectInACLGroup", CLuaOOPDefs::DoesACLGroupContainObject );

lua_classfunction ( luaVM, "create", "getAccount" );
lua_classfunction ( luaVM, "add", "addAccount" );
Expand Down
3 changes: 0 additions & 3 deletions MTA10_Server/mods/deathmatch/logic/lua/oopdefs/CLuaOOPDefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,6 @@ class CLuaOOPDefs : public CLuaDefs
// Connection
LUA_DECLARE ( DbQuery );

// ACL
LUA_DECLARE ( DoesACLGroupContainObject );

// RadarArea
LUA_DECLARE ( GetRadarAreaSize );
};
Expand Down

This file was deleted.

93 changes: 67 additions & 26 deletions MTA10_Server/mods/deathmatch/logic/luadefs/CLuaACLDefs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -20,41 +20,40 @@ static const char* GetResourceName ( lua_State* luaVM )
return luaMain ? luaMain->GetScriptName () : "";
}


void CLuaACLDefs::LoadFunctions ( void )
{
CLuaCFunctions::AddFunction ( "aclReload", CLuaACLDefs::aclReload );
CLuaCFunctions::AddFunction ( "aclSave", CLuaACLDefs::aclSave );
CLuaCFunctions::AddFunction ( "aclReload", aclReload );
CLuaCFunctions::AddFunction ( "aclSave", aclSave );

CLuaCFunctions::AddFunction ( "aclCreate", CLuaACLDefs::aclCreate );
CLuaCFunctions::AddFunction ( "aclDestroy", CLuaACLDefs::aclDestroy );
CLuaCFunctions::AddFunction ( "aclCreate", aclCreate );
CLuaCFunctions::AddFunction ( "aclDestroy", aclDestroy );

CLuaCFunctions::AddFunction ( "aclGet", CLuaACLDefs::aclGet );
CLuaCFunctions::AddFunction ( "aclGet", aclGet );

CLuaCFunctions::AddFunction ( "aclList", CLuaACLDefs::aclList );
CLuaCFunctions::AddFunction ( "aclGetName", CLuaACLDefs::aclGetName );
CLuaCFunctions::AddFunction ( "aclList", aclList );
CLuaCFunctions::AddFunction ( "aclGetName", aclGetName );

CLuaCFunctions::AddFunction ( "aclGetRight", CLuaACLDefs::aclGetRight );
CLuaCFunctions::AddFunction ( "aclSetRight", CLuaACLDefs::aclSetRight );
CLuaCFunctions::AddFunction ( "aclListRights", CLuaACLDefs::aclListRights );
CLuaCFunctions::AddFunction ( "aclRemoveRight", CLuaACLDefs::aclRemoveRight );
CLuaCFunctions::AddFunction ( "aclGetRight", aclGetRight );
CLuaCFunctions::AddFunction ( "aclSetRight", aclSetRight );
CLuaCFunctions::AddFunction ( "aclListRights", aclListRights );
CLuaCFunctions::AddFunction ( "aclRemoveRight", aclRemoveRight );

CLuaCFunctions::AddFunction ( "aclCreateGroup", CLuaACLDefs::aclCreateGroup );
CLuaCFunctions::AddFunction ( "aclDestroyGroup", CLuaACLDefs::aclDestroyGroup );
CLuaCFunctions::AddFunction ( "aclCreateGroup", aclCreateGroup );
CLuaCFunctions::AddFunction ( "aclDestroyGroup", aclDestroyGroup );

CLuaCFunctions::AddFunction ( "aclGetGroup", CLuaACLDefs::aclGetGroup );
CLuaCFunctions::AddFunction ( "aclGroupList", CLuaACLDefs::aclGroupList );
CLuaCFunctions::AddFunction ( "aclGetGroup", aclGetGroup );
CLuaCFunctions::AddFunction ( "aclGroupList", aclGroupList );

CLuaCFunctions::AddFunction ( "aclGroupGetName", CLuaACLDefs::aclGroupGetName );
CLuaCFunctions::AddFunction ( "aclGroupAddACL", CLuaACLDefs::aclGroupAddACL );
CLuaCFunctions::AddFunction ( "aclGroupListACL", CLuaACLDefs::aclGroupListACL );
CLuaCFunctions::AddFunction ( "aclGroupRemoveACL", CLuaACLDefs::aclGroupRemoveACL );
CLuaCFunctions::AddFunction ( "aclGroupAddObject", CLuaACLDefs::aclGroupAddObject );
CLuaCFunctions::AddFunction ( "aclGroupListObjects", CLuaACLDefs::aclGroupListObjects );
CLuaCFunctions::AddFunction ( "aclGroupRemoveObject", CLuaACLDefs::aclGroupRemoveObject );
CLuaCFunctions::AddFunction ( "aclGroupGetName", aclGroupGetName );
CLuaCFunctions::AddFunction ( "aclGroupAddACL", aclGroupAddACL );
CLuaCFunctions::AddFunction ( "aclGroupListACL", aclGroupListACL );
CLuaCFunctions::AddFunction ( "aclGroupRemoveACL", aclGroupRemoveACL );
CLuaCFunctions::AddFunction ( "aclGroupAddObject", aclGroupAddObject );
CLuaCFunctions::AddFunction ( "aclGroupListObjects", aclGroupListObjects );
CLuaCFunctions::AddFunction ( "aclGroupRemoveObject", aclGroupRemoveObject );

CLuaCFunctions::AddFunction ( "isObjectInACLGroup", CLuaACLDefs::isObjectInACLGroup );
CLuaCFunctions::AddFunction ( "hasObjectPermissionTo", CLuaACLDefs::hasObjectPermissionTo );
CLuaCFunctions::AddFunction ( "isObjectInACLGroup", isObjectInACLGroup );
CLuaCFunctions::AddFunction ( "hasObjectPermissionTo", hasObjectPermissionTo );
}


Expand Down Expand Up @@ -100,6 +99,7 @@ void CLuaACLDefs::AddClasses ( lua_State* luaVM )

lua_classfunction ( luaVM, "create", "aclCreateGroup" );
lua_classfunction ( luaVM, "destroy", "aclDestroyGroup" );
lua_classfunction ( luaVM, "doesContainObject", "isObjectInACLGroup", OOP_isObjectInACLGroup );
lua_classfunction ( luaVM, "addACL", "aclGroupAddACL" );
lua_classfunction ( luaVM, "addObject", "aclGroupAddObject" );
lua_classfunction ( luaVM, "removeACL", "aclGroupRemoveACL" );
Expand All @@ -113,7 +113,6 @@ void CLuaACLDefs::AddClasses ( lua_State* luaVM )
lua_classvariable ( luaVM, "objects", NULL, "aclGroupListObjects" ); // value nil = remove object

lua_registerclass ( luaVM, "ACLGroup" );
//////////////////////////
}


Expand Down Expand Up @@ -1006,3 +1005,45 @@ int CLuaACLDefs::isObjectInACLGroup ( lua_State* luaVM )
lua_pushboolean ( luaVM, false );
return 1;
}


int CLuaACLDefs::OOP_isObjectInACLGroup ( lua_State* luaVM )
{
// bool DoesACLGroupContainObject ( aclgroup theGroup, string theObject )
SString strObject; CAccessControlListGroup* pGroup; CAccessControlListGroupObject::EObjectType GroupObjectType;

CScriptArgReader argStream ( luaVM );
argStream.ReadUserData ( pGroup );
argStream.ReadString ( strObject );

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;
}
73 changes: 34 additions & 39 deletions MTA10_Server/mods/deathmatch/logic/luadefs/CLuaACLDefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -11,48 +11,43 @@
*
*****************************************************************************/

#ifndef __CLUAACLDEFS_H
#define __CLUAACLDEFS_H

#pragma once
#include "CLuaDefs.h"

class CLuaACLDefs: public CLuaDefs
{
public:
static void LoadFunctions ( void );
static void AddClasses ( lua_State* luaVM );

static int aclReload ( lua_State* luaVM );
static int aclSave ( lua_State* luaVM );

static int aclCreate ( lua_State* luaVM );
static int aclDestroy ( lua_State* luaVM );

static int aclGet ( lua_State* luaVM );
static int aclList ( lua_State* luaVM );

static int aclGetName ( lua_State* luaVM );
static int aclGetRight ( lua_State* luaVM );
static int aclSetRight ( lua_State* luaVM );
static int aclListRights ( lua_State* luaVM );
static int aclRemoveRight ( lua_State* luaVM );

static int aclCreateGroup ( lua_State* luaVM );
static int aclDestroyGroup ( lua_State* luaVM );

static int aclGetGroup ( lua_State* luaVM );
static int aclGroupList ( lua_State* luaVM );

static int aclGroupGetName ( lua_State* luaVM );
static int aclGroupAddACL ( lua_State* luaVM );
static int aclGroupListACL ( lua_State* luaVM );
static int aclGroupRemoveACL ( lua_State* luaVM );
static int aclGroupAddObject ( lua_State* luaVM );
static int aclGroupListObjects ( lua_State* luaVM );
static int aclGroupRemoveObject ( lua_State* luaVM );

static int isObjectInACLGroup ( lua_State* luaVM );
static int hasObjectPermissionTo ( lua_State* luaVM );
static void LoadFunctions ( void );
static void AddClasses ( lua_State* luaVM );

LUA_DECLARE ( aclReload );
LUA_DECLARE ( aclSave );

LUA_DECLARE ( aclCreate );
LUA_DECLARE ( aclDestroy );

LUA_DECLARE ( aclGet );
LUA_DECLARE ( aclList );

LUA_DECLARE ( aclGetName );
LUA_DECLARE ( aclGetRight );
LUA_DECLARE ( aclSetRight );
LUA_DECLARE ( aclListRights );
LUA_DECLARE ( aclRemoveRight );

LUA_DECLARE ( aclCreateGroup );
LUA_DECLARE ( aclDestroyGroup );

LUA_DECLARE ( aclGetGroup );
LUA_DECLARE ( aclGroupList );

LUA_DECLARE ( aclGroupGetName );
LUA_DECLARE ( aclGroupAddACL );
LUA_DECLARE ( aclGroupListACL );
LUA_DECLARE ( aclGroupRemoveACL );
LUA_DECLARE ( aclGroupAddObject );
LUA_DECLARE ( aclGroupListObjects );
LUA_DECLARE ( aclGroupRemoveObject );
LUA_DECLARE_OOP ( isObjectInACLGroup );
LUA_DECLARE ( hasObjectPermissionTo );
};

#endif

0 comments on commit 1b14adb

Please sign in to comment.