sourcecomms: fixed admin immunity check
This commit is contained in:
parent
d11e4786e1
commit
4c7de59b44
@ -10,7 +10,7 @@
|
|||||||
{
|
{
|
||||||
"DefaultTime" "-1" // default time in minutes. if < 0 -> blocking for session. Permanent (0) - is not allowed!
|
"DefaultTime" "-1" // default time in minutes. if < 0 -> blocking for session. Permanent (0) - is not allowed!
|
||||||
"DisableUnblockImmunityCheck" "0" // 0, 1. If 1, player can be ungagged only by issuer admin, console or admin with special flag
|
"DisableUnblockImmunityCheck" "0" // 0, 1. If 1, player can be ungagged only by issuer admin, console or admin with special flag
|
||||||
// Also, If 0 player maybe unblocked by Admin with higher immunity level then issuer admin.
|
// Also, If 0 player maybe unblocked by Admin with same or higher immunity level than issuer admin.
|
||||||
// Default value is 0
|
// Default value is 0
|
||||||
"ConsoleImmunity" "100" // Immunity Level of server console. If not specified - 0.
|
"ConsoleImmunity" "100" // Immunity Level of server console. If not specified - 0.
|
||||||
"MaxLength" "0" // Max allowed punishment length (in minutes) for admins without ADMFLAG_CUSTOM2 (p).
|
"MaxLength" "0" // Max allowed punishment length (in minutes) for admins without ADMFLAG_CUSTOM2 (p).
|
||||||
|
@ -262,7 +262,7 @@ public OnMapEnd()
|
|||||||
AND length = -1",
|
AND length = -1",
|
||||||
DatabasePrefix, serverID);
|
DatabasePrefix, serverID);
|
||||||
#if defined LOG_QUERIES
|
#if defined LOG_QUERIES
|
||||||
LogToFile(logQuery, "OnMapEnd for: %s. QUERY: %s", clientAuth, Query);
|
LogToFile(logQuery, "OnMapEnd. QUERY: %s", Query);
|
||||||
#endif
|
#endif
|
||||||
SQL_TQuery(g_hDatabase, Query_ErrorCheck, Query);
|
SQL_TQuery(g_hDatabase, Query_ErrorCheck, Query);
|
||||||
|
|
||||||
@ -1360,6 +1360,12 @@ public Query_UnBlockSelect(Handle:owner, Handle:hndl, const String:error[], any:
|
|||||||
new cImmunity = SQL_FetchInt(hndl, 3);
|
new cImmunity = SQL_FetchInt(hndl, 3);
|
||||||
new cType = SQL_FetchInt(hndl, 4);
|
new cType = SQL_FetchInt(hndl, 4);
|
||||||
|
|
||||||
|
new immunity = admin ? GetAdmImmunity(admin) : ConsoleImmunity;
|
||||||
|
|
||||||
|
// Block from CONSOLE (aid=0) and we have `console immunity` value in config
|
||||||
|
if (!cAID && ConsoleImmunity > cImmunity)
|
||||||
|
cImmunity = ConsoleImmunity;
|
||||||
|
|
||||||
#if defined DEBUG
|
#if defined DEBUG
|
||||||
PrintToServer("Fetched from DB: bid %d, iAID: %d, cAID: %d, cImmunity: %d, cType: %d", bid, iAID, cAID, cImmunity, cType);
|
PrintToServer("Fetched from DB: bid %d, iAID: %d, cAID: %d, cImmunity: %d, cType: %d", bid, iAID, cAID, cImmunity, cType);
|
||||||
// WHO WE ARE?
|
// WHO WE ARE?
|
||||||
@ -1370,12 +1376,12 @@ public Query_UnBlockSelect(Handle:owner, Handle:hndl, const String:error[], any:
|
|||||||
PrintToServer("we are console (possibly)");
|
PrintToServer("we are console (possibly)");
|
||||||
if (AdmHasFlag(admin))
|
if (AdmHasFlag(admin))
|
||||||
PrintToServer("we have special flag");
|
PrintToServer("we have special flag");
|
||||||
if (GetAdmImmunity(admin) > cImmunity)
|
if (immunity >= cImmunity)
|
||||||
PrintToServer("we have %d immunity and block has %d. we cool", GetAdmImmunity(admin), cImmunity);
|
PrintToServer("we have %d immunity and block has %d. we cool", immunity, cImmunity);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Checking - has we access to unblock?
|
// Checking - has we access to unblock?
|
||||||
if (iAID == cAID || (!admin && StrEqual(adminAuth, "STEAM_ID_SERVER")) || AdmHasFlag(admin) || (DisUBImCheck == 0 && (GetAdmImmunity(admin) > cImmunity)))
|
if (iAID == cAID || (!admin && StrEqual(adminAuth, "STEAM_ID_SERVER")) || AdmHasFlag(admin) || (DisUBImCheck == 0 && (immunity >= cImmunity)))
|
||||||
{
|
{
|
||||||
// Ok! we have rights to unblock
|
// Ok! we have rights to unblock
|
||||||
b_success = true;
|
b_success = true;
|
||||||
@ -2102,7 +2108,7 @@ stock CreateBlock(client, targetId = 0, length = -1, type, const String:sReason[
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
new admImmunity = GetAdmImmunity(client);
|
new admImmunity = client ? GetAdmImmunity(client) : ConsoleImmunity;
|
||||||
decl String:adminAuth[64];
|
decl String:adminAuth[64];
|
||||||
|
|
||||||
if (client && IsClientInGame(client))
|
if (client && IsClientInGame(client))
|
||||||
|
Loading…
Reference in New Issue
Block a user