Файл: system/class/admin.php
Строк: 109
<?
////////////////////////////////////////////////////////////////
////////////////Файл,отвечающий за функции и операции///////////
///////////////////по работе с админкой/////////////////////////
final class admin {
///проверка может ли выполнять конкретный пользователь конкретное действие
public function user_can($function_name,$user_id,$refresh=true,$url=ROOT){
global $db;
$level=false;
///проверяем,существует ли функция под кодом fction
$sql1 = $db -> query("SELECT `id` FROM `function` WHERE `function` = '".$function_name."' LIMIT 1");
if ($sql1-> num_rows > 0) {
///запоминаем код функции
$func_id=$sql1->fetch_assoc();
///проверяем,входит ли пользователь в группу
$sql2 = $db -> query("SELECT `group` FROM `groups_users` WHERE `uid` = '".$user_id."'");
if ($sql2-> num_rows > 0) {
//запоминаем id Группы
$group=$sql2->fetch_assoc();
//проверяем,может ли данная группа выполнять эту функцию
$sql3 = $db -> query("SELECT `id` FROM `groups_function` WHERE `group` = '".$group['group']."' and `function` = '".$func_id['id']."'");
if ($sql3-> num_rows > 0) {
$level=true;
$func=$sql3->fetch_assoc();
}
}
}
//если нужна переадресация и булиан=false
if($level==false and $refresh==true){
header('Location: '.$url);
//во всех остальных случаях выводим итог в булиан (true/false)
}else {
return $level;
}
}
//проверяем отображается ли админ панель хотя бы по одной из функций
public function panel($user_id){
global $db;
///проверяем,входит ли пользователь в группы и какие у неё функции
$sql = $db -> query("Select `id` from `function` where `admin_panel`='1' and `id` in(SELECT `function` FROM `groups_function` WHERE `group` in(select `group` from `groups_users` where `uid`='".$user_id."'))");
if ($sql-> num_rows > 0) {
$function=$sql->fetch_assoc();
return true;
}else return false;
}
///вывод id привелегий группы массивом
public function group_functions($group){
global $db;
$array=array();
//проверка существования группы
$sql = $db -> query("SELECT * FROM `user_groups` where `id`='".$group."'");
if ($sql -> num_rows > 0) {
//создание массива из id функций группы
$sql2 = $db -> query("SELECT `function` FROM `groups_function` where `group`='".$group."'");
while ($group = $sql2 -> fetch_assoc()) {
array_push($array, $group['function']);
}
}
return $array;
}
//вывод названия функции под id
public function function_name($function_id){
global $db;
//проверка существования функции по id
$sql = $db -> query("SELECT * FROM `function` where `id`='".$function_id."'");
if ($sql -> num_rows > 0) {
//вывод названия функции по id
$function = $db -> query("SELECT `name` FROM `function` where `id`='".$function_id."'")-> fetch_assoc();
return $function['name'];
}
}
//вывод названия группы под id
public function group($id){
global $db;
//проверка существования функции по id
$sql = $db -> query("SELECT `name` FROM `user_groups` where `id`='".$id."'");
if ($sql -> num_rows > 0) {
$group=$sql->fetch_assoc();
return $group['name'];
}else return 'null';
}
//////////////////
///изменение привилегии
public function user_update($user,$group=0){
global $db;
$sql1 = $db -> query("SELECT `id` FROM `users` WHERE `id` = '".$user."'");
if ($sql1-> num_rows > 0) {
if($group!=0)$sql2 = $db -> query("SELECT `id` FROM `user_groups` WHERE `id` = '".$group."'");
if($sql2-> num_rows > 0 or $group==0) {
$db -> query("DELETE FROM `groups_users` WHERE `uid` = '".$user."' and `group`<>'".$group."'");
if($group!=0)$db -> query("INSERT INTO `groups_users` set `uid` = '".$user."',`group` = '".$group."',`yaid` = '".$ya['id']."',`time`='".time()."'");
return true;
exit;
}
}
return false;
}
///вывод ID группы пользователя
public function group_user_id($user){
global $db;
$sql = $db -> query("SELECT `group` FROM `groups_users` WHERE `uid` = '".$user."'");
if ($sql-> num_rows > 0) {
$group=$sql->fetch_assoc();
$group_id=$group['group'];
}else $group_id=0;
return $group_id;
}
//////////////////
///проверка вхождения пользователя в группы
public function level($user){
global $db;
$sql = $db -> query("SELECT `group` FROM `groups_users` WHERE `uid` = '".$user."'");
if ($sql-> num_rows > 0) {
return true;
}else return false;
}
/////////////
}
?>