View file vineti/system/classes/admin.php

File size: 2.51Kb
<?php

class admin {
	public static function profilePanel($d, $act) {
		global $user;
		return 	(self :: getAccess($user,  array('a'=>3)) ? "
		<div class=\"list _bg-blue\">
		<div class=\"sw-block_\"><div class=\"sw-cont sw-3\">
			<div class=\"sw-item\"><a href=\"/admin/?act=user/info&amp;id={$d['id']}\" class=\"sw-c".($act == 1 ? " sw-act" : '' )."\">Информация</a></div>
			<div class=\"sw-item\"><a href=\"/admin/?act=user/block&amp;id={$d['id']}\" class=\"sw-c".($act == 2 ? " sw-act" : '' )."\">Блок</a></div>
			<div class=\"sw-item\"><a href=\"/admin/?act=user/edit&amp;id={$d['id']}\" class=\"sw-c".($act == 3 ? " sw-act" : '' )."\">Редактировать</a></div>
		</div></div>
			<div>
				<span class=\"_gray\">Последний визит:</span> ".system :: times($d['last_time'])."
			</div>
			<div>
				<span class=\"_gray\">IP:</span> ".$d['adm_ip']."
			</div>
			<div>
				<span class=\"_gray\">UA:</span> ".$d['adm_ua']."
			</div>
		</div>
		" : '' ).
		( self :: getAccess($user,  array('a'=>3,'m'=>1)) ? system :: touch("#",system :: icon("info")."История блокировок <span class=\"touch-count\">{$d['count_blocks']}</span>") : '' );
	}
	public static function getLevel($d) {
		$level = explode("|",$d['level']);
		$r = array(
				'a'			=>		$level[0], 		// Админ.
				'h'			=>		$level[1], 		// Помощник.
				'm_file'	=>		$level[2], 		// Модер файлов
				'm_chat'	=>		$level[3], 		// Модер чата
				'm_note'	=>		$level[4] 		// Модер записей
			);
		return $r;
	}
	public static function getAccess($d, $a = array()) {
		global $user,$userLevel;
		$l = ( isset($userLevel) && $d['id'] == $user['id'] ? $userLevel : self :: getLevel($d) );
		$m = false;
		if(isset($a['m'])) { $m = true; } // Все модеры.
		// Доступ для админов. 
		if($l['a'] != 0) {
			if($l['a'] == 1){ return true; } // Разработчик 100% доступ.
			if((isset($a['a']) && $l['a'] <= $a['a']) || (!isset($a['a']) && $l['a'] <= 3)){ return true; } // Фильтруем админов.
		}
		if(($m || isset($a['m_file'])) && $l['m_file'] != 0){ return true; } // Модер файлов.
		if(($m || isset($a['m_chat'])) && $l['m_chat'] != 0){ return true; } // Модер чата.
		if(($m || isset($a['m_note'])) && $l['m_note'] != 0){ return true; } // Модер записей.

		return false;
	}
	public static function access($a = array()) {
		global $user;
		if(!(self :: getAccess($user, $a))) {
			system :: redirect(NULL,"/"); return;
		}	
	}
}