config->item('spamadmin_user'); $pass = $this->config->item('spamadmin_pass'); // basic auth for fastcgi list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6))); if ($user == '' || $pass == '' || !isset($_SERVER['PHP_AUTH_USER']) || $_SERVER['PHP_AUTH_USER'] != $user || $_SERVER['PHP_AUTH_PW'] != $pass) { header('WWW-Authenticate: Basic realm="Spamadmin"'); header('HTTP/1.0 401 Unauthorized'); exit; } } function index() { $this->load->model('pastes'); $pastes_to_delete = $this->input->post('pastes_to_delete'); if ($pastes_to_delete) { foreach (explode(' ', $pastes_to_delete) as $pid) { $this->db->where('pid', $pid); $this->db->delete('pastes'); } redirect(site_url('spamadmin/' . $this->uri->segment(2))); } //render view $data = $this->pastes->getSpamLists(); $this->load->view('list_ips', $data); } function spam_detail() { $this->load->model('pastes'); $ip_address = $this->uri->segment(2); if ($this->input->post('confirm_remove') && $ip_address != '') { $this->db->where('ip_address', $ip_address); $this->db->delete('pastes'); $paste_count = $this->db->affected_rows(); if ($this->input->post('block_ip')) { $query = $this->db->get_where('blocked_ips', array( 'ip_address' => $ip_address )); if ($query->num_rows() == 0) { $this->db->insert('blocked_ips', array( 'ip_address' => $ip_address, 'blocked_at' => mktime() , 'spam_attempts' => $paste_count, )); } } } //fill data $data = $this->pastes->getSpamLists('spamadmin/' . $ip_address, $seg = 3, $ip_address); $data['ip_address'] = $ip_address; $ip = explode('.', $ip_address); $ip_firstpart = $ip[0] . '.' . $ip[1] . '.'; $data['ip_range'] = $ip_firstpart . '*.*'; //view $this->load->view('spam_detail', $data); } function blacklist() { //pagination $amount = $this->config->item('per_page'); $page = ($this->uri->segment(3) ? $this->uri->segment(3) : 0); //get $this->db->select('ip_address, blocked_at, spam_attempts'); $this->db->order_by('blocked_at desc, ip_address asc'); $query = $this->db->get('blocked_ips', $amount, $page); $data['blocked_ips'] = $query->result_array(); //pagination $config['base_url'] = site_url('spamadmin/blacklist'); $query = $this->db->get('blocked_ips'); $config['total_rows'] = $query->num_rows(); $config['per_page'] = $amount; $config['num_links'] = 9; $config['full_tag_open'] = '
'; $config['full_tag_close'] = '
'; $config['uri_segment'] = 3; $this->load->library('pagination'); $this->pagination->initialize($config); $data['pages'] = $this->pagination->create_links(); //view $this->load->view('list_blocked_ips', $data); } function unblock_ip() { $ip_address = $this->uri->segment(4); $this->db->where('ip_address', $ip_address); $this->db->delete('blocked_ips'); redirect('spamadmin/blacklist'); } }