Commit 5fe61287 authored by Nico Schallehn's avatar Nico Schallehn

Viele Änderungen zum Thema Rechte:

parent 8c5a140b
...@@ -27,15 +27,22 @@ class MediaDBAPI{ ...@@ -27,15 +27,22 @@ class MediaDBAPI{
private $Statistik = array("QueryCounter" => 0); private $Statistik = array("QueryCounter" => 0);
private $Querys; private $Querys;
private $SpaltenFilme = array("name", "imdbID", "3d", "year", "rating", "youtube", "resolution", "duration", "size", "hdd", "added", "lastView",
"Genre", "views", "checked", "width", "height", "totalbitrate", "vcodec","acodecger", "abitrateger", "channelsger", "acodeceng", "abitrateeng", "channelseng", "comment",
"md5" , "summary", "Schauspieler");
private $SpaltenEpisoden = array("episodenumber", "name", "source", "duration", "size", "hdd", "lastView", "added", "views", "checked",
"width", "height", "totalbitrate", "vcodec", "acodecger", "abitrateger", "channelsger", "acodeceng", "abitrateeng", "channelseng", "comment", "md5");
private $FilterEinfach = array("imdbID" => "imdbID", "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec", private $FilterEinfach = array("imdbID" => "imdbID", "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec",
"resolution" => "resolution", "channelsger" => "channelsger", "channelseng" => "channelseng", "hdd" => "hdd"); "resolution" => "resolution", "channelsger" => "channelsger", "channelseng" => "channelseng", "hdd" => "hdd");
private $FilterKomplex = array("Jahr" => "year", "Groesse" => "size", "Laufzeit" => "duration", "Hinzugefuegt" => "added", "Gesehen" => "lastView", private $FilterKomplex = array("Jahr" => "year", "Groesse" => "size", "Laufzeit" => "duration", "Hinzugefuegt" => "added", "Gesehen" => "lastView",
"Gesehenzaehler" => "views" ); "Gesehenzaehler" => "views", "FSK"=>"fsk");
private $FilterAndere = array("Suche", "3d", "Deutsch", "Englisch", "checked", "Youtube");
/* Speicher für Rechte Arrays*/ /* Speicher für Rechte Arrays*/
private $SpaltenFil = array(); private $SpaltenFil = array();
private $SpaltenEpi = array(); private $SpaltenEpi = array();
private $FilterEinf = array(); private $FilterEinf = array();
private $FilterKomp = array(); private $FilterKomp = array();
private $FilterAnde = array();
private $StatiViews = array(); private $StatiViews = array();
private $Update = FALSE; private $Update = FALSE;
...@@ -73,6 +80,7 @@ class MediaDBAPI{ ...@@ -73,6 +80,7 @@ class MediaDBAPI{
array_push($this->SpaltenEpi,"episodenumber", "season_nr", "series_nr", "name", "duration"); array_push($this->SpaltenEpi,"episodenumber", "season_nr", "series_nr", "name", "duration");
$this->FilterEinf = array_merge($this->FilterEinf, array("imdbID" => "imdbID")); $this->FilterEinf = array_merge($this->FilterEinf, array("imdbID" => "imdbID"));
$this->FilterKomp = array_merge($this->FilterKomp, array("Jahr" => "year", "Laufzeit" => "duration")); $this->FilterKomp = array_merge($this->FilterKomp, array("Jahr" => "year", "Laufzeit" => "duration"));
$this->FilterAnde = array_merge($this->FilterAnde, array("Deutsch", "Englisch"));
//array_push($this->StatiViews, ""); //array_push($this->StatiViews, "");
} }
if($this->API_Rechte >= 2){ // Einfacher Zugang mit einigen Technischen Infos if($this->API_Rechte >= 2){ // Einfacher Zugang mit einigen Technischen Infos
...@@ -88,11 +96,12 @@ class MediaDBAPI{ ...@@ -88,11 +96,12 @@ class MediaDBAPI{
$this->FilterEinf = array_merge($this->FilterEinf, array( "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec", $this->FilterEinf = array_merge($this->FilterEinf, array( "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec",
"channelsger" => "channelsger", "channelseng" => "channelseng")); "channelsger" => "channelsger", "channelseng" => "channelseng"));
$this->FilterKomp = array_merge($this->FilterKomp, array()); $this->FilterKomp = array_merge($this->FilterKomp, array());
$this->FilterAnde = array_merge($this->FilterAnde, array("Suche", "Youtube"));
//array_push($this->StatiViews, ""); //array_push($this->StatiViews, "");
} }
if($this->API_Rechte >= 4){ // Einfacher Zugang mit allen Infos Also wann man Welchen FIlm gesehen hat usw. if($this->API_Rechte >= 4){ // Einfacher Zugang mit allen Infos Also wann man Welchen FIlm gesehen hat usw.
array_push($this->SpaltenFil, "checked", "views", "comment", "added", "lastView"); array_push($this->SpaltenFil, "checked", "views", "comment", "added", "lastView");
array_push($this->SpaltenEpi, "checked", "views", "comment", "added", "lastView"); array_push($this->SpaltenEpi, "checked", "views", "comment", "added", "lastView", "Statistik");
/*$this->FilterEinf = array_merge($this->FilterEinf, array( "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec", /*$this->FilterEinf = array_merge($this->FilterEinf, array( "acodecger" => "acodecger", "acodeceng" => "acodeceng", "vcodec" => "vcodec",
"channelsger" => "channelsger", "channelseng" => "channelseng"));*/ "channelsger" => "channelsger", "channelseng" => "channelseng"));*/
$this->FilterKomp = array_merge($this->FilterKomp, array("Hinzugefuegt" => "added", "Gesehen" => "lastView", "Gesehenzaehler" => "views")); $this->FilterKomp = array_merge($this->FilterKomp, array("Hinzugefuegt" => "added", "Gesehen" => "lastView", "Gesehenzaehler" => "views"));
...@@ -113,12 +122,14 @@ class MediaDBAPI{ ...@@ -113,12 +122,14 @@ class MediaDBAPI{
//TODO überprüfen ob es die spalten auch wirklich gibt!!! //TODO überprüfen ob es die spalten auch wirklich gibt!!!
//Dafür den Array mit allein Spalten für die Reinfolge verwenden
} }
public function API_GetKeyRights($GET_arr, $POST_arr =""){ public function API_GetKeyRights($GET_arr, $POST_arr =""){
$array["SpaltenFilme"] = $this->SpaltenFil; $array["SpaltenFilme"] = $this->SpaltenFil;
$array["SpaltenEpisoden"] = $this->SpaltenEpi; $array["SpaltenEpisoden"] = $this->SpaltenEpi;
$array["FilterEinfach"] = $this->FilterEinf; $array["FilterEinfach"] = $this->FilterEinf;
$array["FilterKomplex"] = $this->FilterKomp; $array["FilterKomplex"] = $this->FilterKomp;
$array["FilterAndere"] = $this->FilterAnde;
$array["StatistikViews"] = $this->StatiViews; $array["StatistikViews"] = $this->StatiViews;
$array["Update"] = $this->Update; $array["Update"] = $this->Update;
return $array; return $array;
...@@ -148,7 +159,7 @@ class MediaDBAPI{ ...@@ -148,7 +159,7 @@ class MediaDBAPI{
// = Filter: // = Filter:
foreach ($this->FilterEinfach as $key => $value) { foreach ($this->FilterEinfach as $key => $value) {
if(isset($GET_arr[$key])){ //AND is_numeric($GET_arr[$key]) if(isset($GET_arr[$key]) AND in_array($key, $this->FilterEinf)){ //TODO Rechte einbauen!!
$Where .= ($first?"":" AND ").$value.' = "'.$GET_arr[$key].'"'; $Where .= ($first?"":" AND ").$value.' = "'.$GET_arr[$key].'"';
$first = false; $first = false;
} }
...@@ -174,7 +185,7 @@ class MediaDBAPI{ ...@@ -174,7 +185,7 @@ class MediaDBAPI{
} }
$first = false; $first = false;
} }
if(isset($GET_arr['Suche'])){ if(isset($GET_arr['Suche'])){ //TODO Rechte einbauen
$SucheWort = $GET_arr['Suche']; $SucheWort = $GET_arr['Suche'];
$Suche = " (`name` LIKE '%".$SucheWort."%' OR `md5` LIKE '%".$SucheWort."%' OR `comment` LIKE '%".$SucheWort."%')"; $Suche = " (`name` LIKE '%".$SucheWort."%' OR `md5` LIKE '%".$SucheWort."%' OR `comment` LIKE '%".$SucheWort."%')";
//OR `year` = '".$GET_arr['Suche']."' OR `resolution` LIKE '%".$GET_arr['Suche']."%' //OR `year` = '".$GET_arr['Suche']."' OR `resolution` LIKE '%".$GET_arr['Suche']."%'
...@@ -182,9 +193,10 @@ class MediaDBAPI{ ...@@ -182,9 +193,10 @@ class MediaDBAPI{
$Where .= (($first?"":" AND ").$Suche); $Where .= (($first?"":" AND ").$Suche);
$first = false; $first = false;
} }
//TODO youtube Filter einbauen!!
// größergleich oder kleinergleich Filter: // größergleich oder kleinergleich Filter:
foreach ($this->FilterKomplex as $key => $value) { foreach ($this->FilterKomplex as $key => $value) {
if(isset($GET_arr[$key])){ if(isset($GET_arr[$key]) AND in_array($key, $this->FilterKomp)){ //TODO Rechte einbauen!!!
if ((substr($GET_arr[$key],0,1) == "<") OR (substr($GET_arr[$key],0,1) == ">") OR !strpos($GET_arr[$key], ",")) { if ((substr($GET_arr[$key],0,1) == "<") OR (substr($GET_arr[$key],0,1) == ">") OR !strpos($GET_arr[$key], ",")) {
// Kleiner oder Größer und kein Komma! // Kleiner oder Größer und kein Komma!
$Number = str_replace(">", "", $GET_arr[$key]); $Number = str_replace(">", "", $GET_arr[$key]);
...@@ -273,13 +285,26 @@ class MediaDBAPI{ ...@@ -273,13 +285,26 @@ class MediaDBAPI{
if($GET_arr['Spalten'] == "imdbID"){ if($GET_arr['Spalten'] == "imdbID"){
$Group = "GROUP BY imdbID"; $Group = "GROUP BY imdbID";
} }
if($GET_arr['Spalten'] == "*"){
return $this->error($ErrID);
}
// Überprüfen ob Schauspieler oder Genre gefordert wird // Überprüfen ob Schauspieler oder Genre gefordert wird
$SpaltenArr = explode(",", $GET_arr['Spalten']); $SpaltenArr = explode(",", $GET_arr['Spalten']);
$ListGenre = (in_array("Genre", $SpaltenArr)?true:false); $ListGenre = (in_array("Genre", $SpaltenArr)?true:false);
$ListSchauspieler = (in_array("Schauspieler", $SpaltenArr)?true:false); $ListSchauspieler = (in_array("Schauspieler", $SpaltenArr)?true:false);
$Statistik = (in_array("Statistik", $SpaltenArr)?true:false); $Statistik = (in_array("Statistik", $SpaltenArr)?true:false);
//Spalten entfernen worauf keine Rechte sind...
$first = true;
$Spalten = "";
foreach ($SpaltenArr as $value) {
if(!(in_array($value, $this->SpaltenFil) OR in_array($value, array("Genre", "Schauspieler", "Statistik", "*")))){
unset($SpaltenArr[$value]);
}else{
$Spalten .= ($first?"":",").$value;
}
}
/*
// Lösche Schauspieler und Genre aus der Select Anweisung // Lösche Schauspieler und Genre aus der Select Anweisung
$GET_arr['Spalten'] = str_replace("Genre,", "", $GET_arr['Spalten']); $GET_arr['Spalten'] = str_replace("Genre,", "", $GET_arr['Spalten']);
$GET_arr['Spalten'] = str_replace(",Genre", "", $GET_arr['Spalten']); $GET_arr['Spalten'] = str_replace(",Genre", "", $GET_arr['Spalten']);
...@@ -290,23 +315,24 @@ class MediaDBAPI{ ...@@ -290,23 +315,24 @@ class MediaDBAPI{
$GET_arr['Spalten'] = str_replace("Statistik,", "", $GET_arr['Spalten']); $GET_arr['Spalten'] = str_replace("Statistik,", "", $GET_arr['Spalten']);
$GET_arr['Spalten'] = str_replace(",Statistik", "", $GET_arr['Spalten']); $GET_arr['Spalten'] = str_replace(",Statistik", "", $GET_arr['Spalten']);
$GET_arr['Spalten'] = str_replace("Statistik", "", $GET_arr['Spalten']); $GET_arr['Spalten'] = str_replace("Statistik", "", $GET_arr['Spalten']);
*/
/* wenn Genre oder Schauspieler gefordert sind, aber die imdbID nicht in der Spaltenliste ist... */ /* wenn Genre oder Schauspieler gefordert sind, aber die imdbID nicht in der Spaltenliste ist... */
$NoimdbID = false; $NoimdbID = false;
if((($ListGenre OR $ListSchauspieler) AND !in_array("imdbID", $SpaltenArr) AND ($this->iset($GET_arr['Spalten'], "*") != "*" ))){ if((($ListGenre OR $ListSchauspieler) AND !in_array("imdbID", $SpaltenArr) )){ //AND ($this->iset($GET_arr['Spalten'], "*") != "*" )
$Select = "imdbID,".$GET_arr['Spalten']; $Select = "imdbID,".$Spalten;
$NoimdbID = true; $NoimdbID = true;
}else{ }/*else{
$Select = $this->iset($GET_arr['Spalten'], "*"); $Select = $this->iset($GET_arr['Spalten'], "*");
} }*/
$Noseries_nr = false; $Noseries_nr = false;
if((($Statistik) AND !in_array("series_nr", $SpaltenArr) AND ($this->iset($GET_arr['Spalten'], "*") != "*" ))){ if((($Statistik) AND !in_array("series_nr", $SpaltenArr) )){ //AND ($this->iset($GET_arr['Spalten'], "*") != "*" )
$Select = "series_nr,".$GET_arr['Spalten']; $Select = "series_nr,".$Spalten;
$NoimdbID = true; $NoimdbID = true;
}else{ }/*else{
$Select = $this->iset($GET_arr['Spalten'], "*"); $Select = $this->iset($GET_arr['Spalten'], "*");
} }*/
/* /*
$Noseason_nr = false; $Noseason_nr = false;
if((($Statistik) AND !in_array("season_nr", $SpaltenArr) AND ($this->iset($GET_arr['Spalten'], "*") != "*" ))){ if((($Statistik) AND !in_array("season_nr", $SpaltenArr) AND ($this->iset($GET_arr['Spalten'], "*") != "*" ))){
...@@ -357,8 +383,8 @@ class MediaDBAPI{ ...@@ -357,8 +383,8 @@ class MediaDBAPI{
$tempArray["Schauspieler"] = explode(",", ($SchauspielerArr["Schauspieler"])); $tempArray["Schauspieler"] = explode(",", ($SchauspielerArr["Schauspieler"]));
} }
if ($Statistik == true) { if ($Statistik == true) {
if (($GET_arr['Tabelle'] == "Staffeln")) { if (($GET_arr['Tabelle'] == "Staffeln")) { //TODO hier ist auch was geändert aber noch nicht getestet!!
$Query = 'SELECT avg(e.checked) AS Checked, avg(e.views) AS Views, SUM(e.size) AS Size, SUM(e.duration) AS Duration, COUNT(e.name) AS Count '. $Query = 'SELECT avg(e.checked) AS Checked, '.(in_array("views", $this->SpaltenEpisoden)?'avg(e.views) AS Views,':'').' SUM(e.size) AS Size, SUM(e.duration) AS Duration, COUNT(e.name) AS Count '.
'FROM Staffeln AS s JOIN Episoden AS e ON s.season_nr = e.season_nr '. 'FROM Staffeln AS s JOIN Episoden AS e ON s.season_nr = e.season_nr '.
'WHERE s.season_nr = '.$entry["season_nr"]; 'WHERE s.season_nr = '.$entry["season_nr"];
$result = $this->query($Query); $result = $this->query($Query);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment