diff --git a/plugin.php b/plugin.php index 83694af..8044a8c 100644 --- a/plugin.php +++ b/plugin.php @@ -1,29 +1,84 @@ Your IP has been blacklisted."; - die(); - } + $ip = $args[0]; + $liste_ip = yourls_get_option ('ludo_blacklist_ip_liste'); + if ( !$liste_ip ) { + $liste_ip_display = unserialize ( $liste_ip ); + + if (in_array($ip, $liste_ip_display)) { + // yourls_die ( "Your IP has been blacklisted.", "Black list",403); + echo "
Your IP has been blacklisted.
"; + die(); + } + } +} + +// Add admin page +function ludo_blacklist_ip_add_page () { + yourls_register_plugin_page( 'ludo_blacklist_ip', 'Blacklist IPs', 'ludo_blacklist_ip_do_page' ); +} + +// Display admin page +function ludo_blacklist_ip_do_page () { + if( isset( $_POST['action'] ) && $_POST['action'] == 'blacklist_ip' ) { + ludo_blacklist_ip_process (); + } else { + ludo_blacklist_ip_form (); + } +} + +// Display form to administrate blacklisted IPs list +function ludo_blacklist_ip_form () { + $nonce = yourls_create_nonce( 'blacklist_ip' ) ; + $liste_ip = yourls_get_option ('ludo_blacklist_ip_liste','Enter IP addresses here, one per line'); + if ($liste_ip != 'Enter IP addresses here, one per line' ) + $liste_ip_display = implode ( "\n" , unserialize ( $liste_ip ) ); + echo << BlackList IPs +
+ + + + +

Blacklist following IPs + +

+ +

+
+HTML; +} + +// Update blacklisted IPs list +function ludo_blacklist_ip_process () { + // Check nonce + yourls_verify_nonce( 'blacklist_ip' ) ; + + // Update list + $sent_list = serialize ( explode ( '\n' , $_POST['blacklist_form'] ) ); + yourls_update_option ( $sent_list , 'ludo_blacklist_ip_liste' ); + echo "Black list updated" ; } ?>