Exemplo n.º 1
0
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;
}
Exemplo n.º 2
0
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
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;
}
Exemplo n.º 6
0
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;
}