Файл: sysadm/users.php
Строк: 311
<?
define('ROOT','../');
require_once (ROOT.'system/power.php');
$fuser->aut();
if($admin->user_can('moder_user',$ya['id'],false) or $admin->user_can('ban',$ya['id'],false) or $admin->user_can('delete_user',$ya['id'],false)){
switch($do) {
// Список Юзеров //
case 'red':
$admin->user_can('moder_user',$ya['id'],true,ROOT.'sysadm/');
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$id."'");
if ($sql -> num_rows > 0) {
$user = $sql -> fetch_assoc();
$diz -> head('Проверка');
$diz -> title('Проверка');
echo '<div class="fon">'.$fuser->famname($user['id']).' (ID:<span class="text">'.$user['id'].'</span>) '.$fuser->online($id,true).'<br/>';
if($user['browser']!=null)echo ''.language('Браузер').': <span class="text">'.strtok($user['browser'],' ').' ('.$fuser->browser($user['browser']).')</span><br/>';
$style = $db -> query("SELECT * FROM `styles` where `url`='".$user['style']."'")->fetch_assoc();
if($user['browser']!=null)echo 'IP: <a href="/sysadm/poisk.php?do=ips&id='.$user['id'].'">'.strtok($user['ip'],' ').'</a><br/>';
echo ''.language('Стиль сайта').': <span class="text">'.$style['name'].'</span><br/>';
if($user['ip']!=null){
echo ''.language('Последняя активность').': <span class="date">'.$func->times(date('d m Y H:i',ustime($ya['gmt'],$user['lasttime']))).'</span><br/>';
if($user['act']=='no'){
echo 'Профиль не был одобрен администрацией</span><br/>';
}elseif($user['act']=='yes' and $user['actid']!='0'){
echo ''.language('Одобрено').' <span class="text">'.$func->user($user['actid']).'</span><br/>';
}
if($db->settings('time_online_users')==1)echo ''.language('Время в онлайне').': <span class="date">'.$func->ontime($user['online']).'</span><br/>';
echo ''.language('Дата регистрации').': <span class="date">'.$func->times(date('d m Y H:s',ustime($ya['gmt'],$user['time']))).'</span>';
}
echo '</div>';
///////////
if ($admin->user_can('ban',$ya['id'],false)and $id!=$ya['id']){
$ban = $db -> query("SELECT `id` FROM `ban` WHERE `iduser` = '".$user['id']."' LIMIT 1");
if ($ban -> num_rows == 0) {
$dey.= '<a class="zap_b" href="?do=ban&id='.$user['id'].'">'.language('Забанить').'</a>';
}else{
$dey.= '<a class="zap_b" href="?do=razban&id='.$user['id'].'">'.language('Разбанить').'</a>';
}
}
if ($admin->user_can('delete_user',$ya['id'],false)and $id!=$ya['id']){
$dey.= '<a class="zap_b" href="?do=nulled&id='.$user['id'].'">'.language('Аннулировать').'</a>';
$dey.= '<a class="zap_b" href="?do=del&id='.$user['id'].'">'.language('Удалить').'</a>';
}
if($dey!=null)echo '<div class="zap">'.$dey.'</div>';
///////////
if (empty($_POST['balls']) || empty($_POST['login'])) {
if($admin->group_user_id($id)!=0)$stat .= '<option value="'.$admin->group_user_id($id).'">'.$admin->group($admin->group_user_id($id)).'</option>';
$stat .= '<option value="0">'.language('Нет').'</option>';
$s = $db -> query("SELECT * FROM `user_groups` order by `sort` desc");
while ($assoc = $s -> fetch_assoc()) {
if($assoc['id']!=$admin->group_user_id($id))$stat .= '<option value="'.$assoc['id'].'">'.$assoc['name'].'</option>';
}
///////////
echo '<div class="fon"><form action="?do=red&id='.$id.'" method="post">
'.language('Логин').':<br/><input type="text" name="login" value="'.$user['login'].'" maxlength="12"/></br>
'.language('Баллов').':<br/><input type="text" name="balls" value="'.$user['balls'].'" maxlength="9"/></br>
'.language('Новый пароль').':<br/><input type="text" name="pass" maxlength="12"/></br>
'.language('Группа').':</br><select name="level">'.$stat.'</select>
<br/><input type="submit" value="'.language('Сохранить').'"/></form></div>';
}else{
$login = shit(trim($_POST['login']));
if($login!=$user['login']){
$sql = $db -> query("SELECT `id` FROM `users` WHERE `login` = '".$login."'");
if ($sql -> num_rows > 0) {
echo '<div class="fon">Ник занят</div>';
echo '<div class="levo"><a href="?do=users&mode=red&id='.$id.'" class="levo_tuch">'.$diz -> icon('back.png').' Назад</a></div>';
}else{
$login = shit($_POST['login']);
$db -> query("UPDATE `users` SET `login` = '".$login."' WHERE `id` = '".$id."'");
echo '<div class="fon">'.language('Логин был изменён').'</div>';
echo '<div class="levo"><a href="?do=users&mode=red&id='.$id.'" class="levo_tuch">'.$diz -> icon('back.png').' Назад</a></div>';
}
}else $login=$user['login'];
$level = (!empty($_POST['level'])) ? abs(intval($_POST['level'])) : 0;
$b = (!empty($_POST['balls'])) ? abs(intval($_POST['balls'])) : 0;
if(isset($_POST['pass']) and mb_strlen($func->delprobel($_POST['pass']))>=4)$pass=md5(md5($_POST['pass'])); else $pass=$user['pass'];
$admin->user_update($id,$level);
$db -> query("UPDATE `users` SET `login` = '".$login."',`balls`='".$b."',`pass` = '".$pass."' WHERE `id` = '".$id."'");
echo '<div class="fon">'.language('Изменения приняты').'</div>';
echo '<div class="levo"><a href="?do=red&id='.$id.'" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
}
} else header('Location: '.ROOT.'id'.$id);
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Пользователи').'</a></div>';
break;
////////////Бан
case 'ban':
$diz -> head('Бан пользователя');
$diz -> title('Бан пользователя');
$admin->user_can('ban',$ya['id'],true,ROOT.'sysadm/');
$sql_user = $db -> query("SELECT `login`,`ip`, `browser` FROM `users` WHERE `id` = '".$id."' LIMIT 1");
if ($sql_user -> num_rows > 0) {
$sql = $db -> query("SELECT `id` FROM `ban` WHERE `iduser` = '".$id."' LIMIT 1");
if ($sql -> num_rows == 0) {
$user = $sql_user -> fetch_assoc();
if ($ya['id']!=$id) {
$type = array('id' => 'По ID','ip' => 'По IP');
if (!isset($_POST['submit'])) {
$val = null;
foreach ($type as $key => $value) {
$val .= '<option value="'.$key.'">'.language($value).'</option>';
}
echo '<div class="fon">
<form action="?do=ban&id='.$id.'" method="post">';
echo language('Логин').': <span class="text">'.$user['login'].'</span> (id<span class="text">'.$id.'</span>)</br>';
if($user['ip']!=null)echo 'IP: <span class="text">'.$user['ip'].'</span></br>';
if($user['browser']!=null)echo language('Браузер').': <span class="text">'.strtok($user['browser'],' ').'</span><br/>';
echo ''.language('Тип').':<br/><select name="type">'.$val.'</select><br/>
'.language('Время').' ('.language('в минутах').'):<br/>
<input type="text" name="time" value="10" maxlength="6"/><br/>
'.language('Причина').':<br/><textarea name="text" rows="3" cols="20"></textarea><br/>
<input type="submit" name="submit" value="'.language('Забанить').'"/>
</form></div>';
} else {
$text = shit($_POST['text']);
$tip = shit($_POST['type']);
$time=abs(intval(time() + ($_POST['time']*60)));
if($type=='ip')$ip=$name['ip']; else $ip=null;
$db -> query("INSERT INTO `ban` set `yaid` = '".$ya['id']."',`iduser` = '".$id."',`type` = '".$tip."',`ip`='".$ip."',`text`='".$text."',`bantime`='".$time."',`time`='".time()."'");
echo '<div class="fon">'.$user['login'].' '.language('забанен').'</div>';
}
}else header('Location: ?');
} else echo '<div class="fon">'.language('Пользователь уже забане').'</div>';
} else header('Location: '.ROOT.'id'.$id);
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Пользователи').'</a></div>';
break;
//////Разбан
case 'razban':
$sql = $db -> query("SELECT * FROM `ban` WHERE `iduser` = '".$id."' LIMIT 1");
if ($sql -> num_rows > 0) {
$ass = $sql -> fetch_assoc();
$admin->user_can('ban',$ya['id'],true,ROOT.'sysadm/');
if ($ya['id']!=$id) {
$diz -> head('Разбан пользователя');
$diz -> title('Разбан пользователя');
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=razban&id='.$id.'&true">'.language('Да').'</a>
<a class="dialog_m" href="'.ROOT.'id'.$id.'">'.language('Нет').'</a>
</div>';
} else {
$db -> query("DELETE FROM `ban` WHERE `iduser` = '".$id."' LIMIT 1");
echo '<div class="fon">'.language('Пользователь был успешно разбанен').'</div>';
}
}else header('Location: ?');
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> img('back.png').' '.language('Пользователи').'</a></div>';
} else header('location: '.ROOT.'id'.$id.'');
break;
//////Аннуляция
case 'nulled':
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$id."' LIMIT 1");
if ($sql -> num_rows > 0) {
$ass = $sql -> fetch_assoc();
$admin->user_can('delete_user',$ya['id'],true,ROOT.'sysadm/');
if ($ya['id']!=$id) {
$diz -> head('Аннуляция пользователя');
$diz -> title('Аннуляция пользователя');
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=nulled&id='.$id.'&true">'.language('Да').'</a>
<a class="dialog_m" href="'.ROOT.'id'.$id.'">'.language('Нет').'</a>
</div>';
} else {
$files = $db -> query("SELECT * FROM `files` where `user`='".$id."'");
while ($f = $files -> fetch_assoc()) {
unlink(ROOT.'downloads/'.$f['what'].'/'.$f['url']);
}
$db -> query("DELETE FROM `files` WHERE `user` = '".$id."'");
$db -> query("DELETE FROM `lenta` WHERE `uid` = '".$id."'");
$db -> query("Update `users` SET `foto`='0' where `id`='".$id."'");
$db -> query("DELETE FROM `reit` WHERE `kto` = '".$id."' or `komy` = '".$id."'");
$db -> query("DELETE FROM `comes` WHERE `user` = '".$id."' or `idwh` = '".$id."'");
$db -> query("DELETE FROM `report` WHERE `user` = '".$id."' or `uid` = '".$id."'");
$db -> query("DELETE FROM `nuts` WHERE `user` = '".$id."' or `idwh` = '".$id."'");
$db -> query("DELETE FROM `mail` WHERE `fid` = '".$id."' or `oid` = '".$id."'");
$db -> query("DELETE FROM `dialogs` WHERE `user` = '".$id."' or `oid` = '".$id."'");
echo '<div class="fon">'.language('Пользователь был аннулирован').'</div>';
}
}else header('Location: ?');
echo '<div class="levo"><a href="?" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Пользователи').'</a></div>';
} else header('location: '.ROOT.'id'.$id.'');
break;
//////Удаление
case 'del':
$sql = $db -> query("SELECT * FROM `users` WHERE `id` = '".$id."' LIMIT 1");
if ($sql -> num_rows > 0) {
$ass = $sql -> fetch_assoc();
$admin->user_can('delete_user',$ya['id'],true,ROOT.'sysadm/');
if ($ya['id']!=$id) {
$diz -> head('Удаление пользователя');
$diz -> title('Удаление пользователя');
if (!isset($_GET['true'])) {
echo '<div class="fon">'.language('Вы подтверждаете это действие').'?</div>';
echo '<div class="dialog">
<a class="dialog_m" href="?do=del&id='.$id.'&true">'.language('Да').'</a>
<a class="dialog_m" href="'.ROOT.'id'.$id.'">'.language('Нет').'</a>
</div>';
} else {
$files = $db -> query("SELECT * FROM `files` where `user`='".$id."'");
while ($f = $files -> fetch_assoc()) {
unlink(ROOT.'downloads/'.$f['what'].'/'.$f['url']);
}
$db -> query("DELETE FROM `files` WHERE `user` = '".$id."'");
$db -> query("DELETE FROM `lenta` WHERE `uid` = '".$id."'");
$db -> query("DELETE FROM `reit` WHERE `kto` = '".$id."' or `komy` = '".$id."'");
$db -> query("DELETE FROM `comes` WHERE `user` = '".$id."' or `idwh` = '".$id."'");
$db -> query("DELETE FROM `nuts` WHERE `user` = '".$id."' or `idwh` = '".$id."'");
$db -> query("DELETE FROM `mail` WHERE `fid` = '".$id."' or `oid` = '".$id."'");
$db -> query("DELETE FROM `report` WHERE `user` = '".$id."' or `uid` = '".$id."'");
$db -> query("DELETE FROM `groups_users` WHERE `uid` = '".$id."'");
$db -> query("DELETE FROM `dialogs` WHERE `user` = '".$id."' or `oid` = '".$id."'");
$db -> query("DELETE FROM `ban` WHERE `iduser` = '".$id."'");
$db -> query("DELETE FROM `users` WHERE `id` = '".$id."' LIMIT 1");
echo '<div class="fon">'.language('Пользователь был удалён').'</div>';
}
}else header('Location: ?');
echo '<div class="levo"><a href="users.php" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Пользователи').'</a></div>';
} else header('location: /id'.$id.'');
break;
// главная
default:
$diz -> head('Пользователи');
$diz -> title('Пользователи');
$count = $db -> dbcount('COUNT(`id`)','users');
echo '<div class="fon">'.language('Всего пользователей').': <span class="count">'.$count.'</span></div>';
$num = isset($ya['num']) ? $ya['num'] : 10;
$total = intval(($count - 1) / $num) + 1;
if (!isset($_GET['page']) || !is_numeric($_GET['page']) || $_GET['page'] < 1 )
{
$page = 1;
} elseif($_GET['page'] > $total)
{ $page = $total;
} else $page = (int)$_GET['page'];
$start = $page * $num - $num;
$sql = $db -> query("SELECT `id`,`login`,`time` FROM `users` ORDER BY `id` ".$ya['sort']." LIMIT ".$start.",".$num);
while ($users = $sql -> fetch_assoc()) {
echo '<div class="menu">
<a href="'.ROOT.'id'.$users['id'].'" class="levo_tuch">
'.$fuser->avatar($users['id'],32,32,1).' id'.$users['id'].' '.$fuser -> famname($users['id'],0).'
<span class="date">'.$func -> times(date('d m Y H:s',ustime($ya['gmt'],$users['time']))).'</span></a></div>';
echo '<div class="zap">
<a class="zap_b" href="?do=red&id='.$users['id'].'">'.language('Редактировать').'</a>';
if ($admin->user_can('ban',$ya['id'],false)and $users['id']!=$ya['id']){
$ban = $db -> query("SELECT `id` FROM `ban` WHERE `iduser` = '".$users['id']."' LIMIT 1");
if ($ban -> num_rows == 0) {
echo '<a class="zap_b" href="?do=ban&id='.$users['id'].'">'.language('Забанить').'</a>';
}else{
echo '<a class="zap_b" href="?do=razban&id='.$users['id'].'">'.language('Разбанить').'</a>';
}
}
if ($admin->user_can('delete_user',$ya['id'],false)and $users['id']!=$ya['id']){
echo'<a class="zap_b" href="?do=nulled&id='.$users['id'].'">'.language('Аннулировать').'</a>';
echo'<a class="zap_b" href="?do=del&id='.$users['id'].'">'.language('Удалить').'</a>';
}
echo'</div>';
}
echo $func -> pagenav('?',$page,$total);
}
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Управление').'</a></div>';
echo '<div class="levo"><a href="'.ROOT.'" class="levo_tuch">'.$diz -> icon('home.png').' '.language('На главную').'</a></div>';
#####Копирайт#######
$diz -> out($msg);
}else header('Location: '.ROOT.'sysadm/');
?>