public function test_loadBanControl() { $BanControl = new BanControl(); $BanControl->loadAll(); $BanControl->loadUsers(); $BanControl->loadIPs(); $BanControl->loadDomains(); $BanControl->loadAll(); return $BanControl; }
/** * Check if this user is pending activation * @since Version 3.9.1 * @return boolean */ public function getUserAccountStatus() { if ((bool) $this->active === true) { return self::STATUS_ACTIVE; } $BanControl = new BanControl(); $BanControl->loadUsers(true); if (!empty($BanControl->lookupUser($this->id))) { return self::STATUS_BANNED; } if ((bool) $this->active === false) { return self::STATUS_UNACTIVATED; } throw new Exception("Cannot determine the status of this user account"); }
/** * List all members * @since Version 3.2 * @version 3.2 * @return mixed * @param int $page * @param int $items_per_page */ public function memberList($page = 1, $items_per_page = 25) { $start = $page > 0 ? ($page - 1) * $items_per_page : 0; $return = array(); // Get banned usernames $BanControl = new BanControl(); $BanControl->loadUsers(); $banned_user_ids = array_keys($BanControl->users); $bancontrol_sql = count($banned_user_ids) ? " AND user_id NOT IN(" . implode(",", $banned_user_ids) . ")" : ""; $query = "SELECT SQL_CALC_FOUND_ROWS user_id AS id, username, name AS real_name, user_avatar AS avatar, user_avatar_width AS avatar_width, \r\n user_avatar_height AS avatar_height, user_email AS contact_email, user_viewemail AS email_show, user_lastvisit AS lastvisit, \r\n user_session_time AS last_activity, user_regdate AS regdate, user_regdate_nice, user_posts AS posts, timezone AS timezone, flickr_nsid \r\n FROM nuke_users \r\n WHERE user_active = 1 \r\n AND user_id != 0\r\n AND user_session_time > 0 \r\n " . $bancontrol_sql . "\r\n ORDER BY user_id LIMIT ?, ?"; if ($result = $this->db->fetchAll($query, array($start, $items_per_page))) { $return['page'] = $page; $return['perpage'] = $items_per_page; $return['total'] = $this->db->fetchOne("SELECT FOUND_ROWS() AS total"); $return['num_pages'] = ceil($return['total'] / $items_per_page); foreach ($result as $row) { if (empty($row['user_regdate_nice']) || $row['user_regdate_nice'] == "0000-00-00") { try { $datetime = new DateTime($row['regdate']); $update['user_regdate_nice'] = $datetime->format("Y-m-d"); $this->db->update("nuke_users", $update, array("user_id = ?" => $row['id'])); } catch (Exception $e) { // Throw it away, Manuel! } } $return['members'][$row['id']] = $row; } } return $return; }
/** * Get user registrations per day between given dates * @since Version 3.9 * @param \DateTime $From * @param \Datetime $To * @return array */ public function getNumRegistrationsByMonth(DateTime $From, DateTime $To) { $BanControl = new BanControl(); $BanControl->loadUsers(); $query = "SELECT YEAR(user_regdate_nice) AS year, MONTH(user_regdate_nice) AS month, count(*) AS count\r\n\t\t\t\t\t\tFROM nuke_users \r\n\t\t\t\t\t\tWHERE user_regdate_nice BETWEEN ? AND ?\r\n\t\t\t\t\t\tAND user_active = 1\r\n\t\t\t\t\t\tAND user_id NOT IN (" . implode(",", array_keys($BanControl->users)) . ")\r\n\t\t\t\t\t\tGROUP BY YEAR(user_regdate_nice), MONTH(user_regdate_nice)"; return $this->db->fetchAll($query, array($From->format("Y-m-d"), $To->format("Y-m-d"))); }
/** * Get user registrations per day between given dates * @since Version 3.9 * @param \DateTime $dateFrom * @param \Datetime $dateTo * @return array */ public function getNumRegistrationsByMonth(DateTime $dateFrom, DateTime $dateTo) { $BanControl = new BanControl(); $BanControl->loadUsers(); $bancontrol_sql = ""; if (!is_null($BanControl->users) && count($BanControl->users) > 0) { $bancontrol_sql = "AND user_id NOT IN (" . implode(",", array_keys($BanControl->users)) . ")"; } $query = "SELECT YEAR(user_regdate_nice) AS year, MONTH(user_regdate_nice) AS month, count(*) AS count\r\n FROM nuke_users \r\n WHERE user_regdate_nice BETWEEN ? AND ?\r\n AND user_active = 1\r\n " . $bancontrol_sql . "\r\n GROUP BY YEAR(user_regdate_nice), MONTH(user_regdate_nice)"; return $this->db->fetchAll($query, array($dateFrom->format("Y-m-d"), $dateTo->format("Y-m-d"))); }