assign('ueberschrift','Rechte bereinigen'); if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Sollen wirklich alle Verknüpfungen Rechte-Rechtegruppe gelöscht werden?'); $_tmpl->assign('url', '/admin/rechte.html'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); } else{ $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechteid = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); weiterleiten('/admin/rechte.html','Das Rechte wurde erfolgreich bereinigt'); } break; case 'aendern': if(!pruefeRechte('a_rechte_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $_tmpl->assign('ueberschrift','Rechte ändern'); if(!isset($_POST['speichern'])){ $query = "SELECT id, sort, bezeichnung FROM ".DB_PREFIX."rechte WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->holeDaten($query); if($_db->holeAnzahl() != 1){ $_tmpl->assign('fehler','Das Recht existiert nicht.'); break; } $_tmpl->assign('daten',$_db->holeZeile()); $_inh .= $_tmpl->fetch('admin/21.rechte-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 = "UPDATE ".DB_PREFIX."rechte SET sort = ".text_format($_POST['sort'],'db').", bezeichnung = '".text_format($_POST['bezeichnung'],'db')."' WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); weiterleiten('/admin/rechte.html','Das Recht »'.text_format($_POST['bezeichnung'],'html').'« wurde geändert'); } else{ $_tmpl->assign('daten',$_POST); $_tmpl->assign('fehler',$f); $_inh .= $_tmpl->fetch('admin/21.rechte-formular.inc.html'); } } break; case 'anlegen': if(!pruefeRechte('a_rechte_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $_tmpl->assign('ueberschrift','Rechte anlegen'); if(!isset($_POST['speichern'])){ $_inh .= $_tmpl->fetch('admin/21.rechte-formular.inc.html'); } else{ $f = ''; require_once('func/pruefen.inc.php'); $f .= pruefen($_POST['id'],'leer','Die ID darf nicht leer sein'); $f .= pruefen($_POST['id'],'minlaenge','Die ID muss aus mindestens 4 Zeichen bestehen',4); $f .= pruefen($_POST['id'],'maxlaenge','Die ID darf aus höchstens 35 Zeichen bestehen',35); $f .= pruefen($_POST['id'],'regexpr','Die ID darf nur aus Kleinbuchstaben und Unterstrichen bestehen','^[a-z_]+$'); $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."rechte SET id = '".text_format($_POST['id'],'db')."', sort = ".text_format($_POST['sort'],'db').", bezeichnung = '".text_format($_POST['bezeichnung'],'db')."'"; $_db->fuehreQueryAus($query); $text = 'Das Rechte »'.text_format($_POST['bezeichnung'],'html').'« wurde angelegt'; if(!isset($_POST['anschl']) OR (isset($_POST['anschl']) AND $_POST['anschl'] == 'uebers')){ weiterleiten('/admin/rechte.html',$text); } else{ weiterleiten('/admin/rechte.html?aktion=anlegen',$text); } } else{ $_tmpl->assign('daten',$_POST); $_tmpl->assign('fehler',$f); $_inh .= $_tmpl->fetch('admin/21.rechte-formular.inc.html'); } } break; case 'loeschen': if(!pruefeRechte('a_rechte_bearbeiten')){ $_inh = T_KEINZUGRIFF; break; } $_tmpl->assign('ueberschrift','Rechte löschen'); if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Soll das Recht wirklich gelöscht werden?'); $_tmpl->assign('url', '/admin/rechte.html'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); } else{ $query = "DELETE FROM ".DB_PREFIX."rechte WHERE id = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); $query = "DELETE FROM ".DB_PREFIX."rechtegruppen_rechte WHERE rechteid = '".text_format($_GET['id'],'db')."'"; $_db->fuehreQueryAus($query); weiterleiten('/admin/rechte.html','Das Rechte wurde erfolgreich gelöscht'); } break; default: $query = "SELECT id FROM ".DB_PREFIX."rechte"; $_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 r.id, r.sort, r.bezeichnung, count(rgr.rechteid) AS anzahl FROM ".DB_PREFIX."rechte AS r LEFT JOIN ".DB_PREFIX."rechtegruppen_rechte AS rgr ON r.id = rgr.rechteid GROUP BY r.id ORDER BY sort ".($s!='alle'?'LIMIT '.((($s-1)*$proseite).",".$proseite):'').""; $_db->holeDaten($query); $_tmpl->assign('ueberschrift','Rechteübersicht'); $_tmpl->assign('blaettern',array('anzahl'=>$anzahl,'seite'=>$s,'proseite'=>$proseite)); $_tmpl->assign('rechte',$_db->ergebnis['daten']); $_inh .= $_tmpl->fetch('admin/21.rechte-uebersicht.inc.html'); break; } } # Ende Rechte-else, EOF ?>