assign('ueberschrift','Rechtegruppe bereinigen'); if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Sollen wirklich alle Verknüpfungen Mitglieder-Rechtegruppe bzw. Rechte-Rechtegruppe gelöscht werden?'); $_tmpl->assign('url', '/admin/rechtegruppen.html'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); } else{ $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechtegrid = ".text_format($_GET['id'],'db').""; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_mitglieder WHERE rechtegrid = ".text_format($_GET['id'],'db').""; $_db->fuehreQueryAus($query); weiterleiten('/admin/rechtegruppen.html','Die Rechtegruppe wurde erfolgreich bereinigt'); } break; case 'aendern': $_tmpl->assign('ueberschrift','Rechtegruppe ändern'); if(!pruefeRechte('a_rechtegruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $query = "SELECT id FROM ".DB_PREFIX."rechtegruppen WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); if($_db->ergebnis['anzahl'] != 1){ $_tmpl->assign('fehler','Die Rechtegruppe existiert nicht.'); break; } $query = "SELECT id, bezeichnung FROM ".DB_PREFIX."rechte WHERE SUBSTRING(bezeichnung,1,1) != '_' ORDER BY sort"; $_db->holeDaten($query); $_tmpl->assign('r',$_db->baueArray('bezeichnung','id')); if(!isset($_POST['speichern'])){ $query = "SELECT rechteid FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechtegrid = ".$_GET['id'].""; $_db->holeDaten($query); $s_rg = $_db->baueArray('rechteid'); $query = "SELECT id, sort, bezeichnung FROM ".DB_PREFIX."rechtegruppen WHERE id = ".$_GET['id'].""; $_db->holeDaten($query); $daten = $_db->holeZeile(); $daten['r'] = $s_rg; $_tmpl->assign('daten',$daten); $_inh = $_tmpl->fetch('admin/22.rechtegruppen-formular.inc.html'); } else{ $f = ''; require_once('func/pruefen.inc.php'); $f .= pruefen($_POST['sort'],'leer','Das Feld »sort« darf nicht leer sein'); $f .= pruefen($_POST['sort'],'zahl','Das Feld »sort« muss eine Zahl enthalten'); $f .= pruefen($_POST['sort'],'maxlaenge','Das Feld »sort« darf höchstens 6 Ziffern enthalten',6); if($_GET['id'] >= 10){ $f .= pruefen($_POST['bezeichnung'],'leer','Die Bezeichnung darf nicht leer sein'); $f .= pruefen($_POST['bezeichnung'],'minlaenge','Die Bezeichnung muss aus mindestens 2 Zeichen bestehen',2); $f .= pruefen($_POST['bezeichnung'],'maxlaenge','Die Bezeichnung darf aus höchstens 100 Zeichen bestehen',100); } if(empty($f)){ $query = "UPDATE ".DB_PREFIX."rechtegruppen SET sort = ".text_format($_POST['sort'],'db').""; if($_GET['id'] >= 10){ $query .= ", bezeichnung = '".text_format($_POST['bezeichnung'],'db')."'"; } $query .= " WHERE id = ".$_GET['id']; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechtegrid = ".$_GET['id'].""; $_db->fuehreQueryAus($query); if($_GET['id'] != 5 and isset($_POST['r']) and count($_POST['r']) > 0){ foreach($_POST['r'] as $id){ $query = "INSERT INTO ".DB_PREFIX."rechtegruppen_rechte SET rechteid = '".$id."', rechtegrid = ".$_GET['id'].""; $_db->fuehreQueryAus($query); } } weiterleiten('/admin/rechtegruppen.html','Die Rechtegruppe »'.text_format($_POST['bezeichnung'],'html').'« wurde geändert'); } else{ $_tmpl->assign('daten',$_POST); $_tmpl->assign('fehler',$f); $_inh = $_tmpl->fetch('admin/22.rechtegruppen-formular.inc.html'); } } break; case 'anlegen': if(!pruefeRechte('a_rechtegruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $_tmpl->assign('ueberschrift','Rechtegruppe anlegen'); if(!isset($_POST['speichern'])){ $_inh .= $_tmpl->fetch('admin/22.rechtegruppen-formular.inc.html'); } else{ $f = ''; require_once('func/pruefen.inc.php'); $f .= pruefen($_POST['sort'],'leer','Das Feld »sort« darf nicht leer sein'); $f .= pruefen($_POST['sort'],'zahl','Das Feld »sort« muss eine Zahl enthalten'); $f .= pruefen($_POST['sort'],'maxlaenge','Das Feld »sort« darf höchstens 6 Ziffern enthalten',6); $f .= pruefen($_POST['bezeichnung'],'leer','Die Bezeichnung darf nicht leer sein'); $f .= pruefen($_POST['bezeichnung'],'minlaenge','Die Bezeichnung muss aus mindestens 2 Zeichen bestehen',2); $f .= pruefen($_POST['bezeichnung'],'maxlaenge','Die Bezeichnung darf aus höchstens 100 Zeichen bestehen',100); if(empty($f)){ $query = "INSERT INTO ".DB_PREFIX."rechtegruppen SET sort = ".text_format($_POST['sort'],'db').", bezeichnung = '".text_format($_POST['bezeichnung'],'db')."'"; $_db->fuehreQueryAus($query); $text = 'Die Rechtegruppe »'.text_format($_POST['bezeichnung'],'html').'« wurde angelegt'; if(!isset($_POST['anschl']) OR (isset($_POST['anschl']) AND $_POST['anschl'] == 'uebers')){ weiterleiten('/admin/rechtegruppen.html',$text); } else{ weiterleiten('/admin/rechtegruppen.html?aktion=anlegen',$text); } } else{ $_tmpl->assign('daten',$_POST); $_tmpl->assign('fehler',$f); $_inh .= $_tmpl->fetch('admin/22.rechtegruppen-formular.inc.html'); } } break; case 'loeschen': $_tmpl->assign('ueberschrift','Rechtegruppe löschen'); if(!pruefeRechte('a_rechtegruppen_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Soll die Rechtegruppen wirklich gelöscht werden?'); $_tmpl->assign('url', '/admin/rechtegruppen.html'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); } else{ $query = "DELETE FROM ".DB_PREFIX."rechtegruppen WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechtegrid = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_mitglieder WHERE rechtegrid = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); weiterleiten('/admin/rechtegruppen.html' ,'Die Rechtegruppe wurde erfolgreich gelöscht'); } break; default: $query = "SELECT id FROM ".DB_PREFIX."rechtegruppen"; $_db->holeDaten($query); $anzahl = $_db->ergebnis['anzahl']; $s = 1; $proseite = $_einst['globaleeinstellungen']['blaetternseiten']!=0?$_einst['globaleeinstellungen']['blaetternseiten']:25; if(isset($_GET['seite']) and $_GET['seite'] == 'alle'){ $s = 'alle'; } elseif(isset($_GET['seite']) and ctype_digit($_GET['seite']) and $_GET['seite']!=0){ if($proseite*($_GET['seite']-1) > $anzahl){ $s = ceil($anzahl/$proseite); } else{ $s = (int)$_GET['seite']; } } $query = "SELECT rg.id, rg.sort, rg.bezeichnung, count(rgr.rechtegrid) AS anzahl FROM ".DB_PREFIX."rechtegruppen AS rg LEFT JOIN ".DB_PREFIX."rechtegruppen_rechte AS rgr ON rg.id = rgr.rechtegrid GROUP BY rg.id ORDER BY sort ".($s!='alle'?'LIMIT '.((($s-1)*$proseite).",".$proseite):'').""; $_db->holedaten($query); $tmpdaten1 = $_db->ergebnis['daten']; $query = "SELECT rg.id, rg.sort, rg.bezeichnung, count(rgm.rechtegrid) AS anzahl FROM ".DB_PREFIX."rechtegruppen AS rg LEFT JOIN ".DB_PREFIX."rechtegruppen_mitglieder as rgm ON rg.id = rgm.rechtegrid GROUP BY rg.id ORDER BY sort ".($s!='alle'?'LIMIT '.((($s-1)*$proseite).",".$proseite):'').""; $_db->holedaten($query); $tmpdaten2 = $_db->ergebnis['daten']; $anz = count($_db->ergebnis['daten']); $ausg = array(); for($i=0;$i<$anz;$i++){ $tmpdaten1[$i]['anzahl'] += $tmpdaten2[$i]['anzahl']; } $_tmpl->assign('rechtegruppen',$tmpdaten1); $_tmpl->assign('ueberschrift','Rechtegruppenübersicht'); $_tmpl->assign('blaettern',array('anzahl'=>$anzahl,'seite'=>$s,'proseite'=>$proseite)); $_inh = $_tmpl->fetch('admin/22.rechtegruppen-uebersicht.inc.html'); break; } } # Ende Rechte-else, EOF ?>