'Spieler', 1=>'Spieler', 2 => array(), 3 => 1); savesetting('sugroups',serialize($arr_grps)); } ksort($arr_grps); addnav('Zurück'); grotto_nav(); addnav('Aktionen'); output("`c`b`&Superusereditor`0`b`c"); if($session['message'] != '') { output('`n`b'.$session['message'].'`b`n`n'); $session['message'] = ''; } /* if(!is_array($mix_rights_in)) { $arr_rights = explode(';',$mix_rights_in); return ($arr_rights); } */ // MAIN SWITCH $op = ($_REQUEST['op'] ? $_REQUEST['op'] : ''); switch($op) { case 'editgroup': addnav("E?Edit beenden","su_usergroups.php"); $id = !isset($_REQUEST['id']) ? -1 : (int)$_REQUEST['id']; if($id > -1) { $arr_editgrp = user_get_sugroups($id); $arr_editgrp = array('', 'name_sing'=>$arr_editgrp[0], 'name_plur'=>$arr_editgrp[1], 'surights'=>$arr_editgrp[2], 'lst_show'=>$arr_editgrp[3], 'is_superuser'=>$arr_editgrp[4]); $arr_editgrp_rights = $arr_editgrp['surights']; foreach($arr_editgrp_rights as $r=>$v) { $arr_editgrp['surights['.$r.']'] = $v; } } $str_dependence = ''; //$surights = array('Superuser-Rechte,title'); foreach($access_control as $r=>$v) { $str_dependence = ''; // Titel if(is_string($v)) { $surights[] = $v.',title'; $surights['tools_'.$v] = 'Auswahl:,viewonly'; $arr_editgrp['tools_'.$v] = ' [ Alle markieren! ]  [ Alle demarkieren! ]'; } else { if(!empty($v['dependent'])) { $str_dependence = '`n(Abhängig von: '.$access_control[$v['dependent']]['desc'].')'; } $surights['surights['.$r.']'] = ''.$v['desc'].$str_dependence.'

 

,checkbox,1'; } } if(0 == $id) { $arr_editgrp['info'] = 'Standard-Spielergruppe; alle neuangemeldeten Accounts landen automatisch in dieser Gruppe!'; } $form = array('Allgemeines,title', 'info'=>'Bemerkungen,viewonly', 'name_sing'=>'Name Singular', 'name_plur'=>'Name Plural', 'lst_show'=>'In "Wer ist online?"-Liste auf Startseite gesondert aufführen?,bool', 'is_superuser'=>'Ist das eine Superusergruppe?,bool' ); $form = array_merge($form,$surights); $link = "su_usergroups.php?op=savegroup"; $out .= "
"; addnav("",$link); if($_GET['copy']) { $arr_editgrp['name_sing'] = 'Kopie '.$arr_editgrp['name_sing']; $id = -1; } else { $out .= ""; addnav('Kopie anlegen','su_usergroups.php?op=editgroup&id='.$id.'©=1'); } output($out,true); showform($form,$arr_editgrp,false,'Speichern',6); break; // Gruppe löschen case 'delgroup': $id = (int)$_GET['id']; $sql = 'SELECT login FROM accounts WHERE superuser='.$id.' ORDER BY acctid'; $res = db_query($sql); if(0 == $id) { output('`$Diese Gruppe darf nicht gelöscht werden!`n'); } else { if(db_num_rows($res)) { output('`$Folgende Superuser-Accounts befinden sich noch in dieser Gruppe:`n`n'); while($a = db_fetch_assoc($res)) { output('`&'.$a['login'].'`n'); } output('`n`$Bitte zuerst diese Accounts einer anderen Gruppe zuordnen!'); } else { unset($arr_grps[$id]); savesetting( 'sugroups', addslashes(serialize($arr_grps)) ); $session['message'] = '`@Erfolgreich gelöscht!'; redirect('su_usergroups.php'); } } break; // Speichern case 'savegroup': $id = (int)$_REQUEST['id']; // Übersetzung der Formulardaten in numerische Array-Schlüssel $arr_savegrp = array(0=>$_POST['name_sing'], 1=>$_POST['name_plur'], 2=>user_set_surights($_POST['surights']), 3=>$_POST['lst_show'], 4=>$_POST['is_superuser']?true:false); if($id > -1) { systemlog('Superuser-Gruppe '.$arr_grps[$id][0].' geändert.',$session['user']['acctid']); $arr_grps[$id] = $arr_savegrp; } else { ksort($arr_grps); end($arr_grps); $int_lastkey = (int)key($arr_grps); $arr_grps[$int_lastkey+1] = $arr_savegrp; } savesetting( 'sugroups', addslashes(serialize($arr_grps)) ); $session['message'] = '`@Erfolgreich gespeichert!`0'; //Objekt leeren, es hat offensichtlich neue Informationen $mem_cache->delete('obj_access_control'); redirect('su_usergroups.php'); break; // User mit SU-Rechten ermitteln case 'check_su_user': $out = ''; if($_GET['act'] == 'reset') { $int_acctid = (int)$_GET['id']; if($int_acctid) { if($int_acctid == $session['user']['acctid']) { $out .= '`$DAS willst du nicht wirklich ; )`0`n`n'; } else { user_update( array ( 'surights'=>'', 'superuser'=>0 ), $int_acctid ); systemlog('`7SU-Rechte zurückgesetzt.',$session['user']['acctid'],$int_acctid); $out .= '`@AcctID '.$int_acctid.' wurde der Bürde seiner SU-Rechte enthoben!`0`n`n'; } } } addnav('Zurück','su_usergroups.php'); // Länge eines leeren serialisierten Arrays $serLen = strlen(serialize(array())); $sql = 'SELECT name,acctid,superuser,surights FROM accounts WHERE (CHAR_LENGTH(surights)>'.$serLen.' OR superuser>0) ORDER BY acctid ASC'; $res = db_query($sql); $arr_rights = array(); $out .= '`&`bZeige User mit Superuser-Rechten:`b`n`n'; $navout = '`bFolgende User haben SU-Rechte:`b`n`n'; while($a = db_fetch_assoc($res)) { $navout .= '`&'.$a['name'].'`0`n'; $str_grpname = '`i'.(isset($arr_grps[ $a['superuser'] ]) ? $arr_grps[ $a['superuser'] ][0] : 'Keine Gruppe').'`i'; $out .= '
`n`&`b'.$a['acctid'].', '.$a['name'].'`&:`b ('.$str_grpname.')`n [ ' .create_lnk('Alle Rechte abnehmen!','su_usergroups.php?op=check_su_user&act=reset&id='.$a['acctid'],true,false,'Wirklich Rechte abnehmen?') .' ] [ ' .create_lnk('In Usereditor laden!','user.php?op=edit&userid='.$a['acctid']) .' ]`n`&'; if($a['superuser']) { $out .= '`@Darf Grotte betreten.`0`n`n'; } $arr_rights = array(); $arr_urights = unserialize( stripslashes($a['surights']) ); if(isset($arr_grps[ $a['superuser'] ])) { $arr_usergroup = $arr_grps[ $a['superuser'] ]; // Einzelrechte überschreiben Gruppenrechte $arr_rights = $arr_usergroup[2]; if(is_array($arr_urights)) { foreach($arr_urights as $key=>$r) { $arr_rights[$key] = ($r == 1 ? 2 : 0); } } } else { $arr_rights = $arr_urights; } // Ausgabe foreach ($arr_rights as $key => $val) { if($val) { $out .= '`^'.$access_control[$key]['desc'].'`& => `@Ja '.($val == 2 ? '(Sonderrecht)' : '').'`0`n'; } } } output($navout.'
'.$out,true); break; // Standardansicht, Auswahl default: $out = '`c'; addnav('Neue Gruppe','su_usergroups.php?op=editgroup&id=-1'); addnav('User mit Rechten','su_usergroups.php?op=check_su_user'); foreach($arr_grps as $id => $g) { $style = ($style == 'trlight' ? 'trdark' : 'trlight'); $editlink = create_lnk('Edit','su_usergroups.php?op=editgroup&id='.$id); $dellink = create_lnk('Del','su_usergroups.php?op=delgroup&id='.$id,true,false,'Die Gruppe wirklich löschen?'); $out .= ''; } $out .= '
`bID`b `bName`b `bAktionen`b
'.$id.(0 == $id ? ' `$(Standard-Spielergruppe)`0' : '').' '.$g[0].' / '.$g[1].'`& [ '.$editlink.' ] [ `$'.$dellink.'`& ]
`c'; output($out,true); break; } page_footer(); ?>