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