diff options
author | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-10-29 00:51:53 +0000 |
---|---|---|
committer | Karl 'vollmerk' Vollmer <vollmer@ampache.org> | 2006-10-29 00:51:53 +0000 |
commit | 9cfb075df5c8fcd0f83f019dee67fa907dae6265 (patch) | |
tree | d4cbb031a0534715d9caec54c27945e234c7aea1 | |
parent | 5038eb20d7322af95d1fef7035f6d533b49c25a6 (diff) | |
download | ampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.tar.gz ampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.tar.bz2 ampache-9cfb075df5c8fcd0f83f019dee67fa907dae6265.zip |
3.3.1-Alpha1 release
-rw-r--r-- | admin/users.php | 55 | ||||
-rw-r--r-- | artists.php | 2 | ||||
-rwxr-xr-x | docs/CHANGELOG | 2 | ||||
-rw-r--r-- | docs/INSTALL.de | 252 | ||||
-rw-r--r-- | docs/MIGRATION.de | 31 | ||||
-rw-r--r-- | docs/README.de | 114 | ||||
-rw-r--r-- | lib/class/stats.class.php | 28 | ||||
-rw-r--r-- | lib/class/user.class.php | 48 | ||||
-rw-r--r-- | lib/init.php | 8 | ||||
-rw-r--r-- | lib/ui.lib.php | 34 | ||||
-rw-r--r-- | play/index.php | 3 | ||||
-rw-r--r-- | templates/show_add_access.inc | 2 | ||||
-rw-r--r-- | templates/show_add_playlist.inc.php | 2 | ||||
-rw-r--r-- | templates/show_artist.inc | 3 | ||||
-rw-r--r-- | templates/show_ip_history.inc.php | 44 | ||||
-rw-r--r-- | templates/show_users.inc | 29 |
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&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&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']; ?>&keep_view=true&sort_type=last_seen&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']; ?>&keep_view=true&sort_type=create_date&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"> </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&user=<?php echo $user->username; ?>"> + <a href="<?php echo $web_path; ?>/admin/users.php?action=show_ip_history&user_id=<?php echo $user->id; ?>"> <?php echo $user->ip_history; ?> </a> </td> |