-- CONFIG: Set to true to use License instead of CitizenID
local USE_LICENSE_ID = false
function QBCore.Functions.AddPermission(source, permission)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if not Player then return end
local identifier, identifierType
if USE_LICENSE_ID then
identifier = GetPlayerIdentifier(src, 'license') or Player.PlayerData.license
identifierType = 'license'
else
identifier = Player.PlayerData.citizenid
identifierType = 'citizenid'
end
QBCore.Config.Server.Permissions[identifier] = {
identifier = identifier,
permission = permission:lower()
}
MySQL.Async.execute('DELETE FROM permissions WHERE identifier = ?', { identifier })
MySQL.Async.insert('INSERT INTO permissions (name, identifier, permission, type) VALUES (?, ?, ?, ?)', {
GetPlayerName(src),
identifier,
permission:lower(),
identifierType
})
ExecuteCommand(('add_principal identifier.%s qbcore.%s'):format(identifier, permission))
QBCore.Commands.Refresh(src)
TriggerClientEvent('QBCore:Client:OnPermissionUpdate', src, permission)
end
function QBCore.Functions.RemovePermission(source, permission)
local src = source
local Player = QBCore.Functions.GetPlayer(src)
if not Player then return end
local identifier
if USE_LICENSE_ID then
identifier = GetPlayerIdentifier(src, 'license') or Player.PlayerData.license
MySQL.Async.execute('DELETE FROM permissions WHERE identifier = ? AND permission = ?', { identifier, permission:lower() })
QBCore.Commands.Refresh(src)
end
else
ExecuteCommand(('remove_principal identifier.%s qbcore'):format(identifier))
MySQL.Async.execute('DELETE FROM permissions WHERE identifier = ?', { identifier })
QBCore.Commands.Refresh(src)
end
end