<?php
namespace KIF\Core;

use Cas\Module\BackPassport;

/**
 * 继承自MVC里的Controller,封装了后台用户登录状态、用户信息等一些方法
 * @author lishumingoo@gmail.com
 */
class BKController extends \KIF\Core\Controller {
	
	/**
	 * 判断用户登录状态
	 * @return Boolean
	 */
	static public function isLogin() {
		return (boolean) self::getUid();
	}
	
	/**
	 * 要求未登陆用户去登陆
	 * @return boolean
	 */
	static public function requireLogin() {
		if (!self::isLogin()) {
			$referer = Request::url();
			$url = Request::schemeDomain() . '/?c=Admin_BackUser&a=Login&referer=' . urlencode($referer);
			parent::redirect($url);
		}
	
		return true;
	}
	
	/**
	 * 获取用户id
	 * @return false | int
	 */
	static public function getUid() {
		$user = self::getUser();
		if (!$user) {
			return false;
		}
		
		return $user['uid'];
	}
	
	/**
	 * 获取用户名
	 * 这里的用户名是不靠谱的!!!
	 * @return string
	 */
	static public function getUsername() {
		$user = self::getUser();
		if (!$user) {
			return false;
		}
		
		return $user['name'];
	}
	
	/**
	 *
	 * 从Cookie中获取用户的登陆信息
	 * @return boolean | array
	 */
	public function getUser() {
		static $user = null;
		if ($user) {
			return $user;
		}
	
		$user = array();
		
			$objBackPassport = new BackPassport();
			$tmpResult = $objBackPassport->getLoginInfo();
			if ($tmpResult->isSuccess()) {
				$user = $tmpResult->getData();
			}
			
	
		return $user;
	}
	
	public function run() {
		$action = $this->action;
		$this->$action();
	}
}