summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-10-29 00:51:53 +0000
committerKarl 'vollmerk' Vollmer <vollmer@ampache.org>2006-10-29 00:51:53 +0000
commit9cfb075df5c8fcd0f83f019dee67fa907dae6265 (patch)
treed4cbb031a0534715d9caec54c27945e234c7aea1
parent5038eb20d7322af95d1fef7035f6d533b49c25a6 (diff)
downloadampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.tar.gz
ampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.tar.bz2
ampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.zip
3.3.1-Alpha1 release
-rw-r--r--admin/users.php55
-rw-r--r--artists.php2
-rwxr-xr-xdocs/CHANGELOG2
-rw-r--r--docs/INSTALL.de252
-rw-r--r--docs/MIGRATION.de31
-rw-r--r--docs/README.de114
-rw-r--r--lib/class/stats.class.php28
-rw-r--r--lib/class/user.class.php48
-rw-r--r--lib/init.php8
-rw-r--r--lib/ui.lib.php34
-rw-r--r--play/index.php3
-rw-r--r--templates/show_add_access.inc2
-rw-r--r--templates/show_add_playlist.inc.php2
-rw-r--r--templates/show_artist.inc3
-rw-r--r--templates/show_ip_history.inc.php44
-rw-r--r--templates/show_users.inc29
16 files changed, 130 insertions, 527 deletions
diff --git a/admin/users.php b/admin/users.php
index ff298305..9f13e9cd 100644
--- a/admin/users.php
+++ b/admin/users.php
@@ -20,16 +20,11 @@
*/
-/*!
- @header Users Admin Page
- Handles User management functions
-
-*/
-
require_once ('../lib/init.php');
if (!$GLOBALS['user']->has_access(100)) {
access_denied();
+ exit();
}
@@ -101,7 +96,7 @@ switch ($action) {
}
show_confirmation("User Updated", $thisuser->username . "'s information has been updated","admin/users.php");
break;
- case 'add_user':
+ case 'add_user':
if (conf('demo_mode')) { break; }
$username = scrub_in($_REQUEST['new_username']);
$fullname = scrub_in($_REQUEST['new_fullname']);
@@ -139,31 +134,35 @@ switch ($action) {
}
show_confirmation("New User Added",$username . " has been created with an access level of " . $access,"admin/users.php");
break;
- case 'delete':
- if (conf('demo_mode')) { break; }
- show_confirmation(_('Deletion Request'),
- _("Are you sure you want to permanently delete") . " $temp_user->fullname ($temp_user->username) ?",
- "admin/users.php?action=confirm_delete&amp;user=$temp_user->id");
+ case 'delete':
+ if (conf('demo_mode')) { break; }
+ show_confirmation(_('Deletion Request'),
+ _("Are you sure you want to permanently delete") . " $temp_user->fullname ($temp_user->username) ?",
+ "admin/users.php?action=confirm_delete&amp;user=$temp_user->id");
break;
- case 'confirm_delete':
- if (conf('demo_mode')) { break; }
- if ($_REQUEST['confirm'] == _("No")) { show_manage_users(); break; }
- if ($temp_user->delete()) {
- show_confirmation(_("User Deleted"), "$temp_user->username has been Deleted","admin/users.php");
- }
- else {
- show_confirmation(_("Delete Error"), _("Unable to delete last Admin User"),"admin/users.php");
- }
+ case 'confirm_delete':
+ if (conf('demo_mode')) { break; }
+ if ($_REQUEST['confirm'] == _("No")) { show_manage_users(); break; }
+ if ($temp_user->delete()) {
+ show_confirmation(_("User Deleted"), "$temp_user->username has been Deleted","admin/users.php");
+ }
+ else {
+ show_confirmation(_("Delete Error"), _("Unable to delete last Admin User"),"admin/users.php");
+ }
break;
- case 'show_ip_history':
- show_ip_history();
+ /* Show IP History for the Specified User */
+ case 'show_ip_history':
+ /* get the user and their history */
+ $temp_user = new User($_REQUEST['user_id']);
+ $history = $temp_user->get_ip_history('',1);
+
+ require (conf('prefix') . '/templates/show_ip_history.inc.php');
break;
- case 'show_add_user':
- if (conf('demo_mode')) { break; }
- $type = 'new_user';
- require_once(conf('prefix') . '/templates/show_edit_user.inc.php');
+ case 'show_add_user':
+ if (conf('demo_mode')) { break; }
+ $type = 'new_user';
+ require_once(conf('prefix') . '/templates/show_edit_user.inc.php');
break;
-
case 'update':
case 'disabled':
if (conf('demo_mode')) { break; }
diff --git a/artists.php b/artists.php
index 1f86172d..7e83c331 100644
--- a/artists.php
+++ b/artists.php
@@ -38,7 +38,9 @@ show_template('header');
switch($action) {
case 'show':
case 'Show':
+ show_box_top();
show_alphabet_list('artists','artists.php');
+ show_box_bottom();
$artist = new Artist($_REQUEST['artist']);
$artist->show_albums();
break;
diff --git a/docs/CHANGELOG b/docs/CHANGELOG
index ba108242..9a68e63a 100755
--- a/docs/CHANGELOG
+++ b/docs/CHANGELOG
@@ -4,7 +4,7 @@
--------------------------------------------------------------------------
v.3.3.3-Alpha1
- - Added IP History to admin->users (Thx pb1dft and vollmer for creating the tables)
+ - Added IP History to admin->users (Thx pb1dft)
- Added HTTP auth method, auto-creates a 'user' if the auth user
doesn't exist in the database.
- Fixed Mail statistics. It broke down after earlier updates.
diff --git a/docs/INSTALL.de b/docs/INSTALL.de
deleted file mode 100644
index 65123e23..00000000
--- a/docs/INSTALL.de
+++ /dev/null
@@ -1,252 +0,0 @@
--------------------------------------------------------------------------------
------------------- INSTALL - Ampache v.3.2 - 08/11/2004 -----------------------
--------------------------------------------------------------------------------
-
- Ich gehe davon aus, dass Apache, PHP und MySQL bereits laufen, wenn du hier
- angelangt bist.
-
- Falls du von 3.0 auf 3.1 upgradest, schau dir bitte die MIGRATION Hinweise
- an. Die Datenbank kann nicht weitergenutzt werden, aber glücklicherweise
- haben wir einige Scripts entwickelt, um die Datenbank in das neue Format
- zu konvertieren. (Dafür gibts ein extra Bier :P)
-
- Falls während der Installation irgendetwas schieflaufen sollte, schau dir
- zunächst die /test.php an, um an Hilfe zu gelangen.
-
- 1. Schnellinstallation:
-
- mysql -u <Benutzername> -p <Datenbankname> < $root/ampache/sql/ampache.sql
-
- Editiere die /etc/apache/httpd.conf
- Lass das Webroot auf $root/ampache/docs zeigen.
- [snip]
- Alias /ampache/ /usr/share/ampache/docs/
-
- <Directory /usr/share/ampache/docs>
- Options Indexes MultiViews
- AllowOverride None
- Order allow,deny
- Allow from all
- </Directory>
- [snip]
- Starte danach Apache neu.
-
- Verschiebe $root/ampache/config/ampache.cfg.dist nach
- $root/ampache/config/ampache.cfg
- Editiere $root/ampache/config/ampache.cfg
- Besuche $web_adresse/login.php und melde dich mit den folgenden Daten an:
- Benutzername: admin
- Passwort: changeme
-
-
- 2. Der längere Weg
-
- 2.1 Apache konfigurieren
- An dieser Stelle gibt es zwei Möglichkeiten. Etnweder kannst du einen
- Virtual Server für Ampache konfigurieren, oder du kannst Amapche einfach
- in ein freies Verzeichnis installieren. Beide Wege besitzen Vor- und
- Nachteile.
-
- Wenn du einen Virtual Server einrichtest, besitzt er seine eigenen
- Logfiles, die hilfreich beim Berechnen des Traffics sein könnten
- (Unterscheidung von Ampache- und normalem Traffic).
-
- Wenn du ein neues Verzeichnis für Ampache nutzt, wird der Traffic von
- Ampache zusammen mit dem der anderen Anwendungen brechnet. Der Vorteil
- hier ist, dass die Installation u.U. einfacher ist.
-
- We've included cronolog lines. These are not required, but for
- troubleshooting we recommend them.
-
- Der Eintrag für einen eigenen Virtual Server lautet folgendermaßen:
-
- [snip]
-
- <VirtualHost 192.168.100.2:80>
- ServerName tunes.ampache.org
-
- ServerAdmin webmaster@ampache.org
- DocumentRoot /data/www/ampache/docs
-
- DirectoryIndex index.php
-
- </VirtualHost>
- [snip]
-
- Nac einem Neustart sollte Ampache nun richtig konfiguriert sein.
-
- 2.2 MySQL konfigurieren
- Wir legen an dieser Stelle einen eigenen User für Ampache an.
- Dazu ist folgender Befehl erforderlich:
-
- 'mysql -u user -p pass < sql/ampache.sql'
-
- 2.3 Konfiguration von Ampache
-
- 2.3.1 Konfiguration der ampache.cfg
-
- Kopiere zuächst die config/ampache.cfg.dist nach
- config/ampache.cfg.
- Öffne dann die config/ampache.cfg.dist und editiere die
- Vairablen:
-
- # Hostname des Datenbankservers
- local_host = localhost
-
- # Datenbankname
- local_db = ampache
-
- # Datenbank-Benutzername
- local_username = <mysql_login_name>
-
- # Datenbank-Passwort
- local_pass = <password>
-
- # Logindauer in Sekunden
- local_length = 900
-
- # Dies ist die Domain, fuer die das Cookie, in dem der Sessionkey gespeichert wird,
- # ausgestellt wird. Diese Variable muss die Domain oder der Host des Systems sein.
- # Andernfalls wird es unmoeglich sein, sich einzuloggen.
- # Bitte ueberpruefe, ob zu Beginn ein . steht. (erforderlich!)
- # Dies ist jedoch nicht notwendig, solange du die libglue fuer mehr als eine Seite
- # nutzt.
- # sess_domain = .yourwebsite.com
-
- # Name der Session/des Cookie, dass zum Browser geschickt wird.
- sess_name = ampache
-
- # Lebenszeit des Cookies. 0 == Immer (bzw. bis der Browser geschlossen wird),
- # andernfalls wird hier die Lebenszeit in Sekunden erwartet
- sess_cookielife = 0
-
- # Ist das Cookie ein "sicheres" Cookie?
- sess_cookiesecure = 0
-
- prefix = "/<ampache_root>"
- # This should not include http:// or any part of the host name
- # ampache detects hostname and port automaticly
- # Hier sollte kein http:// oder irgendein Teil des Hostnames
- # stehen. Hostname und Port werden automatisch erkannt.
- web_path = "/<path to ampache>"
- site_title = "Ampache!!!"
-
- # Sollte ausgeschaltet bleiben, ansonsten wird die Performance sehr drunter leiden.
- do_mp3_md5 = "FALSE"
-
- # Hier wird das Interval angegeben, in dem der aktuelle Fortschritt
- # beim Katalogisieren ausgegeben wird. Bei grossen Katalogen sollte
- # diese Zahl moeglichst gering gehalten werden.
- catalog_echo_count = "25"
-
- # Diese Option legt fest, welcher ID3 Tag bevorzugt wird.
- # Diese Funktion wurde fuer diejenigen angelegt, die noch keine
- # v2-Tags angelegt haben. Somit ist es bei manchen Nutzern hilfreich,
- # v1 zu nutzen, bis die Kataloge auf v2 umgestellt sind.
- id3tag_order = "id3v2"
- id3tag_order = "id31v"
-
- # Kommentiere dies aus, wenn du nicht moechtest, dass Ampache
- # symlinks folgt.
- #no_symlinks = "true"
-
- # Benutze Login-/Authentifizierungssystem?
- use_auth = "yes"
-
- # Kuenstler- & Album Zwischenspeicherlimit
- # Um die Katalog-Aktualisierungen zu beschleunigen, und um die Last
- # auf MySQL zu reduzieren nutzen wir eine Art Zwischenspeicher, wo
- # anhand einer ID MySQL-Abfragen gespeichert werden.
- # Du kannst diese Option frei nach deinem belieben abaendern ...
- album_cache_limit = "25"
- artist_cache_limit = "50"
-
- 2.3.2 Configuring motd.php
-
- Copy config/motd.php.dist to config/motd.php
-
- Edit this file however you like, with either php code or straight html.
- The output will be displayed below the login box on login.php.
-
-
- 3. Der erste Start von Ampache
-
- Besuche mit deinem Browser die frisch installierte Ampache-Seite,
- und es sollte das Anmeldeformular erscheinen.
- Das Passwort und der Benutzername für den ersten Login lauten:
- Benutzer: admin
- Passwort: changeme
-
- Jetzt kannst du dir ein Bier holen .. ;)
-
- 3.1 Einen Katalog einrichten
- Zunächst gilt es, einen Katalog einzurichten. Dies geschieht, indem
- man auf "Katalog hinzufügen" klickt, und dort den Pfad zur
- MP3-Sammlung angibt. Es ist nicht notwendig, alle Unterverzeichnise
- einzeln anzugeben, da die angegebenen Verzeichnise rekursiv
- durchsucht werden.
-
- 3.2 Aktualisieren der Kataloge
- Falls alles einwandfrei gelaufen, hast du nun einen leeren Ampache
- vor dir. Um diesen Zustand zu veraendern, gehe unter der
- Administrationsseite auf den Katalog-Link.
-
- Nun fehlt nur noch ein Klick auf "Alle Kataloge aktualisieren", und
- die Datenbank wird gefuehlt. Dies kann eine Weile dauern, da der
- Webserver nun jede einzelne Datei auf ihren ID3-Tag hin untersucht,
- und diese Daten in die Datenbank einspeist.
-
- Final Note on MP3 Tags:
- Abschliessende Bemerkung zu den ID3-Tags:
- Da Ampache seine Daten aus den ID3-Tags bezieht, ist es wirklich
- empfehlenswert, diese sauber und geordnet zu halten.
-
- Eines der besten Tools für diesen Zweck ist EasyTAG, ein Tageditor
- für MP3- und OGG-Dateien:
- http://easytag.sourceforge.net
-
- Es läuft direkt auf dem Linuxrechner, und ist somit ein wenig schneller,
- als wenn man die ID3-Tags erst ueber Samba oder NFS aktualisiert. Das
- heisst natuerlich nicht, dass dies geht .. Es geht lediglich darum, dass
- dieses Programm schneller auf die ID3-Tags zugreifen kann.
-
- Falls du darauf bestehen solltest, Windows zu nutzen, findet sich unter
- http://massid3lib.sourceforge.net/ eine weitere gute Software, für den
- selben Zweck.
-
- 3.3 Benutzer hinzufügen
- Um Benutzer hinzufügen, genügt es unter Administration -> Benutzer
- -> Benutzer hinzufügen zu gehen, und das dortige Formular mit den
- entsprechenden Informationen zu versehen.
-
- 3.4 Sortieren und Aktualisieren der Dateien (Wird noch entwickelt)
- In Verbindung mit dem Update der Katalogeinstellungen, sind in v3.1
- folgende Felder hinzugekommen:
- ID3-Kommando
- Dateinamenmuster
- Sortiermuster
-
- Nachdem diese Felder mit Werten versehen wurden, steht einem regelmäßigem
- Update mithilfe von fileupdate.pl nichts mehr im Wege.
- Dieses Programm fragt die Datenbank ab, und nimmt die neusten Aktualisierungen
- vor. Bevor fileupdate.pl ausgeführt werden kann, muss die Ampache.pm editiert
- werden, sodass sie die notwendigen Archivinformatioenen enthält.
-
- Benutzung von fileupdate.pl:
-
- fileupdate [--id3|--rename|--sort|--all] [--help] [--pretend] [--verbose]
- --pretend Stelle das angegebene Kommando dar, ohne etwas zu machen.
- --id3 Aktualisiere ID3-Tags von allen mit 'id3' markierten Dateien
- --rename Benenne alle mit 'rename' markierten Dateien
- --sort Sortiere alle mit 'sort' markierten Dateien
- --all Nehme ID3-Update vor, bennene und sortiere alle Dateien um,
- die mit 'id3' markiert wurden.
- --verbose Zeige detailierte Informationen
- --help Diese Nachricht
-
-
-
- Beispiel:
- Folgender Eintrag nimmt regelmäßige um Mitternacht alle erforderlichen Updates
- vor:
- * 24 * * * /apache/bin/fileupdate.pl -all
diff --git a/docs/MIGRATION.de b/docs/MIGRATION.de
deleted file mode 100644
index 5dd6c8ce..00000000
--- a/docs/MIGRATION.de
+++ /dev/null
@@ -1,31 +0,0 @@
-$CVSHeader: ampache/MIGRATION,v 1.2 2004/03/23 08:33:18 vollmerk Exp $
-
-MIGRATION - Ampache v.3.1 - 11/26/2003
-
-- Umwandlung von Ampache-3.1.X --> Ampache 3.3
-
- Folge den Anweisungen unter $ampache/update.php
-
-- Umwandlung von Ampache-3.1-Alpha2 oder Alpha --> Ampache 3.1-Alpha3
-
- Bitte besuche $ampache/update.php um die Genre-Tabelle zu
- aktualisieren.
- Falls du von Alpha2 auf Alpha3 aktualisierst, wird dein
- Katalog jedoch ungültig, und muss neu angelegt werden.
-
-- Umwandeln von Ampache-3.0 --> Ampache3.1
-
- Es gibt momentan einige Tools, um die Benutzer und Playlisten
- von Ampache 3.0 auf Ampache 3.1 upzudaten.
-
- 1. Installiere und konfiguriere Ampache3.1 in einer neuen
- Datenbank.
-
- 2. Editiere die entsprechenden Parameter in diesen Dateien:
- /bin/migrate_user.pl
- /bin/export_playlist.pl
- /bin/import_playlist.pl
-
- 3. Führe das entsprechende Script aus.
-
- Die Perlskripte wurden von Andy Morgan erstellt.
diff --git a/docs/README.de b/docs/README.de
deleted file mode 100644
index 8e547c15..00000000
--- a/docs/README.de
+++ /dev/null
@@ -1,114 +0,0 @@
--------------------------------------------------------------------------------
---------- README - Ampache v.3.2 - 06/07/2004 -----------
--------------------------------------------------------------------------------
-
-Inhalt:
-
- 1. Einleitung
- a) Danksagungen
- 2. Komponenten herunterladen
- 3. Einrichten
- a) Upgraden
- 4. Lizenz
- a) Spenden (Bier!)
- 5. Kontaktinformationen
-
-1. Einleitung:
-
- Ampache stellt eine PHP-basierte Oberfläche dar, die
- ihre Informationen über MP3s in einer MySQL-Datenbank ablegt.
- Die Lieder werden per PHP gestreamt. Ältere Versionen erfordern
- mod_mp3, aber neuere Versionen arbeiten auch ohne mod_mp3.
- Die Songs werden mit Hilfe von PHP-Skripten katalogisiert.
- Mit dieser Version kommen viele neue Funktionen hinzu. Es wurden
- die Katalogfunktionen überarbeitet, sodass diese insbesondere auf
- größeren Systemen nun einfacher zu nutzen sind. Weiterhin wurden
- erste Ansätze implementiert, die es ermöglichen, die eigenen
- Kataloge mit denen von anderen Ampache-Systemen zu teilen oder
- gemeinsam zu nutzen. Weitere Informationen hierzu kann man im
- "Katalog" Bereich bei den Administratorwerkzeugen finden.
-
- Diese Kataloge basieren auf den ID3 Tags der MP3s. Wenn die Tags
- regelmäßig gepflegt und aktuell sind, dann ist dies das geeignete
- Werkzeug.
-
- Im CHANGELOG stehen weitere Informationen zu dieser Version.
-
- Danksagungen:
- a) Dank an diejenigen, die dazu beigetragen haben, dass Ampache
- das geworden ist, was es heute ist:
- Scott Kveton - Hauptperson, der die Idee zu Ampache hatte
- Robert Hopson - Libglue, Playlisten, Ogg Unterstützung & vieles mehr
- Andy Morgan - Protagonist
- Caleb Crome (Bugfixes und Verbesserungen)
- Mike Payson
- Jon Disnard
- Adriaan Peters (Eine Vielzahl an Patches und Bugfixes)
- Rob Kaandorp (Zeitberechnungsfix)
- Ian Cote (MP3.php Verbesserungen)
- Kurt Lieber (diverse Verbesserungen)
- Maan Bsat (diverse Verbesserungen)
- latka (von media.tangent.org) für die Vorschläge zur Behandlung von
- Liedern ohne ID3-Tags (orphaned song)
- Lamar Hansford (README/INSTALL Verbesserungen) & Upload
- Und viele weitere ...
-
-
-2. Komponenten herunterladen
-
- Apache >= 1.3.19 http://www.apache.org
- PHP >= 4.1.2 http://www.php.net
- MySQL >= 3.23
- Ampache nutzt die REPLACE Funktion von MySQL, was eine Version
- von >= 3.23 erfordert.
- http://www.mysql.com
- 16MB RAM
-
-3. Einrichten
-
- Ampache:
- Bei einem Upgrade von Version 3.0 auf 3.1 können vorhandenen
- Datenbanktabellen und die config.php nicht mehr genutzt werden.
- Diese müssen in das aktuelle Format konvertiert werden. Weitere
- Informationen hierzu finden sich in der INSTALL Datei.
-
-
-3a. Eine vorherige Ampache-Installation upgraden
-
- Für ein Upgrade empfiehlt sich die folgenden Vorgehenseweise:
- - Eine Kopie dies alten Verzeichnisses anlegen.
- -
- (Falls du von einer älteren Ampache-Installation upgradest, empfehlen
- wir dir, das alte Verzeichnis zu verschieben, das neue Archiv an
- dieser Stelle zu entpacken und dann die config.php neu zu erstellen.
- Alle Datenbankupgrades werden vom /update.php Skript erledigt.
- Es ist also nicht notwendig die /sql/ampache.sql neu einzufügen,
- falls bereits eine Ampache-Installation besteht.)
-
-
-4. License
-
- Ampache steht unter der Standard GPL. Nähere Informationen finden
- sich in der Datei, die in diesem Archiv mitgeliefert wird.
-
-4a. Spenden
-
- Wir wollen euer Geld nicht, aber wir nehmen gerne euer Bier an.
- Wenn dir Ampache gefällt, und du uns ermutigenn willst, das Programm
- weiter zu verbessern, dann besuche ampache.org um Informationen
- darüber zu bekommen, wie du uns Bier spenden kannst.
- Falls das nicht möglich ist, freuen wir uns auch über eine Postkarte.
-
-5. Kontaktinformationen
-
- Du hasst Ampache? Du liebst es? Lass es uns wissen. Lass es uns wissen,
- wenn du an neuen Features interessiert bist, Bugs melden willst usw.
-
- IRC: irc.ampache.org #ampache (Freenode)
- Foren: http://ampache.org/forums
- Bugs: http://bugs.ampache.org
-
- Ampache Development Team
- ampache-dev@lists.oregonstate.edu
-
- Karl Vollmer, Robert Hopson & Andy Morgan
diff --git a/lib/class/stats.class.php b/lib/class/stats.class.php
index f06f8f9f..057d2534 100644
--- a/lib/class/stats.class.php
+++ b/lib/class/stats.class.php
@@ -91,34 +91,6 @@ class Stats {
} // get_top
/**
- * get_ip_history
- * This returns the ip_history from the
- * last conf('user_ip_cardinality') days
- */
- function get_ip_history($count,$type,$user) {
-
- $count = intval($count);
- $type = $this->validate_type($type);
- $date = time() - (86400*conf('user_ip_cardinality'));
-
- /* Select ip history */
- $sql = "SELECT ip,date FROM ip_history" .
- " WHERE user='$user->username' AND date >= '$date'" .
- " ORDER BY `date` DESC LIMIT $count";
- $db_results = mysql_query($sql, dbh());
-
- $results = array();
-
- while ($r = mysql_fetch_assoc($db_results)) {
- $results[] = $r;
- }
-
- return $results;
-
- } // get_ip_history
-
-
- /**
* get_user
* This gets all stats for atype based on user with thresholds and all
* If full is passed, doesn't limit based on date
diff --git a/lib/class/user.class.php b/lib/class/user.class.php
index efa5db8c..80a88bd4 100644
--- a/lib/class/user.class.php
+++ b/lib/class/user.class.php
@@ -450,6 +450,12 @@ class User {
$sql = "INSERT INTO ip_history (`ip`,`user`,`date`) VALUES ('$ip','$user','$date')";
$db_results = mysql_query($sql, dbh());
+ /* Clean up old records */
+ $date = time() - (86400*conf('user_ip_cardinality'));
+
+ $sql = "DELETE FROM ip_history WHERE `date` < $date";
+ $db_results = mysql_query($sql,dbh());
+
return true;
} // insert_ip_history
@@ -535,14 +541,8 @@ class User {
$this->f_useage = round($total,2) . $name;
/* Get Users Last ip */
- $sql = "SELECT ip FROM ip_history WHERE user = '$this->username' ORDER BY ip DESC LIMIT 1";
- $db_results = mysql_query($sql, dbh());
-
- while ($r = mysql_fetch_assoc($db_results)) {
- $this->ip_history = int2ip($r[ip]);
- }
-
-
+ $data = $this->get_ip_history(1);
+ $this->ip_history = int2ip($data['0']['ip']);
} // format_user
@@ -824,6 +824,38 @@ class User {
} // get_recent
+ /**
+ * get_ip_history
+ * This returns the ip_history from the
+ * last conf('user_ip_cardinality') days
+ */
+ function get_ip_history($count='',$distinct='') {
+
+ $username = sql_escape($this->username);
+
+ if ($count) {
+ $limit_sql = "LIMIT " . intval($count);
+ }
+ if ($distinct) {
+ $group_sql = "GROUP BY ip";
+ }
+
+ /* Select ip history */
+ $sql = "SELECT ip,date FROM ip_history" .
+ " WHERE user='$username'" .
+ " $group_sql ORDER BY `date` DESC $limit_sql";
+ $db_results = mysql_query($sql, dbh());
+
+ $results = array();
+
+ while ($r = mysql_fetch_assoc($db_results)) {
+ $results[] = $r;
+ }
+
+ return $results;
+
+ } // get_ip_history
+
/*!
@function activate_user
@activates the user from public_registration
diff --git a/lib/init.php b/lib/init.php
index d5c6d560..dc6f79d3 100644
--- a/lib/init.php
+++ b/lib/init.php
@@ -73,7 +73,7 @@ if (!$results = read_config($configfile,0)) {
}
/** This is the version.... fluf nothing more... **/
-$results['version'] = '3.3.3-Alpha1 (Build 005)';
+$results['version'] = '3.3.3-Alpha1';
$results['raw_web_path'] = $results['web_path'];
$results['web_path'] = $http_type . $_SERVER['HTTP_HOST'] . $results['web_path'];
@@ -107,12 +107,14 @@ if (!$_SERVER['SERVER_NAME']) {
$_SERVER['SERVER_NAME'] = '';
}
if (!isset($results['auth_methods'])) {
- $results['auth_methods'] = 'mysql';
+ $results['auth_methods'] = array('mysql');
}
if (!is_array($results['auth_methods'])) {
$results['auth_methods'] = array($results['auth_methods']);
}
-
+if (!$results['user_ip_cardinality']) {
+ $results['user_ip_cardinality'] = 42;
+}
/* Variables needed for vauth Module */
diff --git a/lib/ui.lib.php b/lib/ui.lib.php
index a24b1ce0..2c7c0ecf 100644
--- a/lib/ui.lib.php
+++ b/lib/ui.lib.php
@@ -151,40 +151,6 @@ function show_users () {
} // show_users()
/**
- * show_ip_history
- * shows ip_history of specific user(admin function)
- */
-
-function show_ip_history (){
-
- $dbh = dbh();
- if (conf('user_ip_cardinality')) { $cardinality = conf('user_ip_cardinality'); } else { $cardinality = '42'; }
- $date = time() - (86400*$cardinality);
- $sql = "SELECT ip,date FROM ip_history where user = '$_REQUEST[user]' and date >= '$cardinality' ORDER BY date DESC";
- $db_results = mysql_query($sql, $dbh);
-
- show_box_top();
-echo " <table class=\"tabledata\" cellpadding=\"0\" cellspacing=\"0\" border=\"0\">\n".
- " <tr class=\"table-header\">\n".
- " <td colspan=2>$_REQUEST[user]: IP History</td>\n".
- " </tr>\n".
- " <tr class=\"table-header\">\n".
- " <td align=\"center\">\n".
- " <b>Date</b>\n".
- " </td>\n".
- " <td align=\"center\">\n".
- " <b>Ip Address</b>\n".
- " </td>\n".
- " </tr>\n";
-
-while ($r = mysql_fetch_array($db_results)){
- echo "<tr class=". flip_class() .">\n <td>".date("m\/d\/Y-H:i",$r[date])."</td>\n <td>".int2ip($r[ip])."</td>\n</tr>\n";
- }
-echo "</table>\n";
-show_box_bottom();
-} // show_ip_history
-
-/**
* return_referer
* returns the script part of the referer address passed by the web browser
* this is not %100 accurate. Also because this is not passed by us we need
diff --git a/play/index.php b/play/index.php
index 9878af0b..dde92d05 100644
--- a/play/index.php
+++ b/play/index.php
@@ -195,6 +195,9 @@ header("Accept-Ranges: bytes" );
// Prevent the script from timing out
set_time_limit(0);
+/* We're about to start record this persons IP */
+$user->insert_ip_history();
+
/* If access control is on and they aren't local, downsample! */
if (conf('access_control') AND conf('downsample_remote')) {
if (!$access->check('network',$_SERVER['REMOTE_ADDR'],$GLOBALS['user']->username,'25')) {
diff --git a/templates/show_add_access.inc b/templates/show_add_access.inc
index 3b92c65b..668cf7ab 100644
--- a/templates/show_add_access.inc
+++ b/templates/show_add_access.inc
@@ -85,7 +85,7 @@
<td colspan="2">
<br />
<input type="hidden" name="action" value="add_host" />
- <input type="submit" value="<?php echo _('Create ACL'); ?>" />
+ <input class="button" type="submit" value="<?php echo _('Create ACL'); ?>" />
</td>
</tr>
</table>
diff --git a/templates/show_add_playlist.inc.php b/templates/show_add_playlist.inc.php
index f356d6f7..1dae3679 100644
--- a/templates/show_add_playlist.inc.php
+++ b/templates/show_add_playlist.inc.php
@@ -39,7 +39,7 @@
</tr>
<tr>
<td colspan="2">
- <input type="submit" value="<?php echo _('Create'); ?>" />
+ <input class="button" type="submit" value="<?php echo _('Create'); ?>" />
<input type="hidden" name="action" value="Create" />
</td>
</tr>
diff --git a/templates/show_artist.inc b/templates/show_artist.inc
index d6d4f17f..748f5b75 100644
--- a/templates/show_artist.inc
+++ b/templates/show_artist.inc
@@ -24,9 +24,6 @@
$artist_id = $artist->id;
$web_path = conf('web_path');
?>
-<?php show_alphabet_form('',_('Artists'),'artists.php?action=match'); ?>
-<?php show_alphabet_form('',_('Albums'),'albums.php?aciont=mathc'); ?>
-<br />
<?php require (conf('prefix') . '/templates/show_artist_box.inc.php'); ?>
<!-- *** Multi-Album Art Display Thx MrBlahh Updated by clader *** -->
<?php show_box_top(); ?>
diff --git a/templates/show_ip_history.inc.php b/templates/show_ip_history.inc.php
new file mode 100644
index 00000000..dd251a3f
--- /dev/null
+++ b/templates/show_ip_history.inc.php
@@ -0,0 +1,44 @@
+<?php
+/*
+
+ Copyright (c) 2001 - 2006 Ampache.org
+ All rights reserved.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation; either version 2
+ of the License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+
+*/
+?>
+<?php show_box_top($temp_user->fullname . ' ' . _('IP History')); ?>
+<table border="0">
+<tr class="table-header">
+ <td align="center">
+ <?php echo _('Date'); ?>
+ </td>
+ <td align=\"center\">
+ <?php echo _('IP Address'); ?>
+ </td>
+</tr>
+<?php foreach ($history as $data) { ?>
+<tr class="<?php echo flip_class(); ?>">
+ <td>
+ <?php echo date("d/m/Y H\hi",$data['date']); ?>
+ </td>
+ <td>
+ <?php echo int2ip($data['ip']); ?>
+ </td>
+</tr>
+<?php } ?>
+</table>
+<?php show_box_bottom(); ?>
diff --git a/templates/show_users.inc b/templates/show_users.inc
index 10ed8a55..10ff4a18 100644
--- a/templates/show_users.inc
+++ b/templates/show_users.inc
@@ -46,41 +46,24 @@ $admin_menu = "admin/";
</td>
<td align="center">
<a href="<?php echo $web_path; ?>/<?php echo $_SESSION['view_script']; ?>?action=<?php echo $_REQUEST['action']; ?>&amp;keep_view=true&amp;sort_type=last_seen&amp;sort_order=0">
- <b><?php echo _("Last Seen"); ?></b>
+ <b><?php echo _('Last Seen'); ?></b>
</a>
</td>
<td align="center">
<a href="<?php echo $web_path; ?>/<?php echo $_SESSION['view_script']; ?>?action=<?php echo $_REQUEST['action']; ?>&amp;keep_view=true&amp;sort_type=create_date&amp;sort_order=0">
- <b><?php echo _("Registration Date"); ?></b>
+ <b><?php echo _('Registration Date'); ?></b>
</a>
</td>
<td align="center">
- <b><?php echo _("Activity"); ?></b>
+ <b><?php echo _('Activity'); ?></b>
</td>
<td align="center">
- <b><?php echo _("Last Ip"); ?></b>
+ <b><?php echo _('Last Ip'); ?></b>
</td>
<td colspan="5">&nbsp;</td>
- <!--
<td align="center">
- <b><?php echo _("Edit"); ?></b>
- </td>
- <td align="center">
- <b><?php echo _("Prefs"); ?></b>
- </td>
- <td align="center">
- <b><?php echo _("Stats"); ?></b>
- </td>
- <td align="center">
- <b><?php echo _("Access"); ?></b>
- </td>
- <td align="center">
- <b><?php echo _("Delete"); ?></b>
- </td>
- -->
- <td align="center">
- <b><?php echo _("On-line"); ?></b>
+ <b><?php echo _('On-line'); ?></b>
</td>
</tr>
<?php
@@ -110,7 +93,7 @@ while ($results = mysql_fetch_object($db_result)) {
<?php echo $user->f_useage; ?>
</td>
<td>
- <a href="<?php echo $web_path; ?>/admin/users.php?action=show_ip_history&amp;user=<?php echo $user->username; ?>">
+ <a href="<?php echo $web_path; ?>/admin/users.php?action=show_ip_history&amp;user_id=<?php echo $user->id; ?>">
<?php echo $user->ip_history; ?>
</a>
</td>