#cakephp #cakephp-1.3
#cakephp #cakephp-1.3
Вопрос:
Я пытаюсь показать имя пользователя и роль пользователя при успешном входе в систему
я следую примеру в net.tusplus
class AccessComponent extends Object{
var $components = array('Acl', 'Auth');
var $user;
function startup(){
$this->user = $this->Auth->user();
}
function check($aco, $action='*'){
if(!empty($this->user) amp;amp; $this->Acl->check('Group::'.$this->user['Group']['id'], $aco, $action)){
return true;
} else {
return false;
}
}
function checkHelper($aro, $aco, $action = "*"){
App::import('Component', 'Acl');
$acl = new AclComponent();
return $acl->check($aro, $aco, $action);
}
}
class AccessHelper extends Helper {
var $helpers = array("Session");
var $Access;
var $Auth;
var $user;
function beforeRender() {
App::import('Component', 'Access');
$this->Access = new AccessComponent();
App::import('Component', 'Auth');
$this->Auth = new AuthComponent();
$this->Auth->Session = $this->Session;
$this->user = $this->Auth->user();
}
function check($aco, $action='*') {
if (empty($this->user))
return false;
return $this->Access->checkHelper('Group::' . $this->user['Users']['id'], $aco, $action);
}
function isLoggedin() {
return!empty($this->user);
}
Я пытаюсь отобразить статус на странице просмотра
<div id="status">
<?php
if ($access->isLoggedin()) {
echo "Welcome";
echo $this->Html->link('Sign Out', array('controller' => 'users', 'action' => 'logout'));
} else {
echo $this->Html->link('Sign In', array('controller' => 'users', 'action' => 'login'));
echo"</br>";
echo $this->Html->link('Sign Up', array('controller' => 'users', 'action' => 'register'));
}
?>
Если я хочу показать имя группы и имя пользователя. Что мне делать
Ответ №1:
Вы могли бы передать пользовательскую переменную, которую вы установили в своей функции запуска, в свой view и отобразить информацию из нее.
контроллер
$this->set('authUser', $this->user);
Вид
<div id="welcome">
Welcome, <?php echo $authUser['User']['username'];?>
</div>