assign('ueberschrift','Adminbereich'); if(!$erlaubt){ $_inh = T_KEINZUGRIFF; } else{ $_GET['aktion'] = isset($_GET['aktion'])?$_GET['aktion']:''; switch($_GET['aktion']){ case 'neueversion': $url = 'http://tkswim.de/daten.php?inhalt=neueversion&version='.TKSWIM_VERSION; $meldung = ''; $ok = false; if(ini_get('allow_url_fopen') != 1){ $meldung = 'Es konnte nicht abgerufen werden, ob eine neue Version verfügbar ist, bitte manuell auf tkswim.de prüfen.'; } else{ $fh = fopen($url, 'r'); if($fh === false){ $meldung = 'Es konnte nicht abgerufen werden, ob eine neue Version verfügbar ist, bitte manuell auf tkswim.de prüfen.'; } else{ $ok = true; $meldung = fgets($fh, 20); } } $_tmpl->assign('ueberschrift','Neue Version von tkswim verfügbar?'); $_tmpl->assign('ok', $ok); $_tmpl->assign('meldung', $meldung); $_inh .= $_tmpl->fetch('admin/2.neueversion.inc.html'); break; case 'vorhandenelogins': if(!pruefeRechte('m_logins')){ $_inh = T_KEINZUGRIFF; break; } if(isset($_GET['sperren']) and isset($_GET['id']) and ctype_digit($_GET['id'])){ $query = "UPDATE ".DB_PREFIX."logins SET freigeschaltet = 0 WHERE id = ".$_GET['id'].""; $_db->fuehreQueryAus($query); weiterleiten('/admin/?aktion=vorhandenelogins','Das Mitglied wurde gesperrt'); } if(isset($_GET['freischalten']) and isset($_GET['id']) and ctype_digit($_GET['id'])){ $query = "UPDATE ".DB_PREFIX."logins SET freigeschaltet = 1 WHERE id = ".$_GET['id'].""; $_db->fuehreQueryAus($query); weiterleiten('/admin/?aktion=vorhandenelogins','Das Mitglied wurde freigeschaltet'); } if(isset($_GET['loeschen']) and isset($_GET['id']) and ctype_digit($_GET['id'])){ if(!isset($_GET['sicher'])){ $_tmpl->assign('frage','Sollen die Logindaten wirklich gelöscht werden?'); $_tmpl->assign('query','aktion=vorhandenelogins'); $_tmpl->assign('url', '/admin/'); $_inh .= $_tmpl->fetch('tools/9902.loeschfrage.inc.html'); break; } else{ $query = "DELETE FROM ".DB_PREFIX."logins WHERE id = ".$_GET['id'].""; $_db->fuehreQueryAus($query); weiterleiten('/admin/?aktion=vorhandenelogins','Die Logindaten wurden gelöscht.'); } } $_tmpl->assign('ueberschrift','vorhandene Logins'); $query = "SELECT m.id, CONCAT(m.nachname,', ',m.vorname) as name, l.anmeldename, IF(l.passwort='','nein','ja') as pw, IF(l.freigeschaltet=1,'ja','nein') as fg FROM ".DB_PREFIX."mitglieder as m LEFT JOIN ".DB_PREFIX."logins as l ON m.id=l.id WHERE l.freigeschaltet IS NOT NULL ORDER BY nachname, vorname"; $_db->holeDaten($query); $_tmpl->assign('daten',$_db->ergebnis['daten']); $_inh .= $_tmpl->fetch('admin/2.vorhandenelogins-uebersicht.inc.html'); break; case 'zugangsdatenverschicken': if(!pruefeRechte('a_zugangsdatenverschicken')){ $_inh = T_KEINZUGRIFF; break; } if(!isset($_GET['id']) or !ctype_digit($_GET['id'])){ $_tmpl->assign('ueberschrift','Zugangsdaten verschicken - Mitglied auswählen'); require_once('func/mitgliedwaehlen.inc.php'); $_inh .= mitgliedwaehlen('/admin/', 'aktion=zugangsdatenverschicken'); } else{ if(!isset($_POST['speichern'])){ $query = "SELECT m.vorname, m.nachname, m.email, l.anmeldename FROM ".DB_PREFIX."mitglieder as m LEFT JOIN ".DB_PREFIX."logins as l ON m.id=l.id WHERE m.id = ".$_GET['id'].""; $_db->holeDaten($query); if($_db->holeAnzahl() == 0){ weiterleiten('/admin/','das Mitglied existiert nicht.'); } $row = $_db->holeZeile(); $_tmpl->assign('ueberschrift','Zugangsdaten an '.$row['vorname'].' '.$row['nachname'].' verschicken'); if(empty($row['email'])){ $_tmpl->assign('fehler','Bei dem gewählten Mitglied ist keine E-Mailadresse angegeben'); break; } $daten = array( 'name' => $row['vorname'].' '.$row['nachname'], 'pw' => '' ); if(is_null($row['anmeldename'])){ $von = array(' ','ö','ä','ü','ß'); $nach = array('','oe','ae','ue','s'); $daten['anmeldename'] = str_replace($von, $nach, strtolower($row['vorname'].$row['nachname'])); } else{ $daten['anmeldename'] = $row['anmeldename']; } $_tmpl->assign('daten',$daten); } else{ require_once('func/pruefen.inc.php'); $f = ''; $f .= pruefen($_POST['daten']['anmeldename'],'leer','Der Anmeldename fehlt'); $f .= pruefen($_POST['daten']['anmeldename'],'regexpr','Der Anmeldename darf nur aus Kleinbuchstaben ([a-z]) bestehen','^[a-z]+$'); $f .= pruefen($_POST['daten']['anmeldename'],'minlaenge','Der Anmeldename ist zu kurz (min 2 Zeichen)',2); $f .= pruefen($_POST['daten']['anmeldename'],'maxlaenge','Der Anmeldename ist zu lang (max 50 Zeichen)',50); if(empty($f)){ $query = "SELECT id FROM ".DB_PREFIX."logins WHERE anmeldename = '".text_format($_POST['daten']['anmeldename'],'db')."'"; $_db->holeDaten($query); if($_db->holeAnzahl() != 0 and $_db->holeWert() != $_GET['id']){ $f .= 'Der Anmeldename existiert bereits
'; } } if(isset($_POST['pwgenerieren'])){ require_once('func/generierepasswort.inc.php'); $_POST['daten']['pw'] = generierePasswort(); } else{ $f .= pruefen($_POST['daten']['pw'],'leer','Das Passwort fehlt'); $f .= pruefen($_POST['daten']['pw'],'passwort','Das Passwort muss aus mindestens je eines der Zeichen [a-zöäüß], [A-ZÖÄÜ] und [0-9] enthalten und mindestens 8 Zeichen lang sein.'); } if(empty($f)){ require_once('class/mail.inc.php'); $query = "SELECT m.id as mid, vorname, nachname, mw, email, l.id as lid FROM ".DB_PREFIX."mitglieder as m LEFT JOIN ".DB_PREFIX."logins as l ON m.id=l.id WHERE m.id = ".$_GET['id'].""; $_db->holeDaten($query); $user = $_db->holeZeile(); $variablen = array('daten' => array( 'name' => $_POST['daten']['anmeldename'], 'pw' => $_POST['daten']['pw'] )); $_email = parse_ini_file(PFAD_INCLUDE.'conf/emails.ini',true); $mail = new email; $mail->setzeBetreff($_email['betreff']['zugangsdaten'],false); $mail->setzeTextTemplate('admin/25.freischaltmail.inc.txt', $_tmpl, $user, $variablen); $mail->verschickeMail(); if(is_null($user['lid'])){ $query = "INSERT INTO ".DB_PREFIX."logins SET id = ".$user['mid'].", anmeldename = '".$_POST['daten']['anmeldename']."', passwort = '".md5($_POST['daten']['pw'])."', freigeschaltet = 1"; } else{ $query = "UPDATE ".DB_PREFIX."logins SET anmeldename = '".$_POST['daten']['anmeldename']."', passwort = '".md5($_POST['daten']['pw'])."', freigeschaltet = 1 WHERE id = ".$user['lid'].""; } $_db->fuehreQueryAus($query); require_once('func/mitglieder_rechtegruppensetzen.inc.php'); mitglieder_rechtegruppensetzen($user['mid']); weiterleiten('/admin/','Die Zugangsdaten für '.text_format($user['vorname'],'html').' '.text_format($user['nachname'],'html').' wurden verschickt.'); } else{ $_tmpl->assign('daten',$_POST['daten']); $_tmpl->assign('fehler',$f); } } $_inh .= $_tmpl->fetch('admin/2.zugangsdatenverschicken-formular.inc.html'); } break; case 'dbbackup': if(!pruefeRechte('a_dbbackup')){ $_inh = T_KEINZUGRIFF; break; } ini_set('memory_limit','32M'); $query = "SHOW TABLES FROM `".DB_NAME."` LIKE '".DB_PREFIX."%'"; $_db->holeDaten($query, E_USER_ERROR, 'row'); $tabellen = $_db->baueArray('0','#'); $inhalt = $_db->exportiereDatenbank('',$tabellen); $dateiname = date('Y-m-d_H-i').'_tkswim.sql'; require_once('class/zip.inc.php'); $zip = new zipfile(); $zip->addFile_daten($inhalt, $dateiname, time()); $zip->gebeDateiaus($dateiname.'.zip'); exit; default: $_inh .= $_tmpl->fetch('admin/2.index.inc.html'); break; } } # Ende Rechte-else, EOF ?>