2011-06-05 73 views
0

我嘗試登錄時顯示的用戶名和用戶角色成功
CakePHP的問題,當登錄成功後

這個我按照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) && $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

您可以將您在啓動功能中設置的用戶變量傳遞給您的視圖並顯示其中的信息。

控制器

$this->set('authUser', $this->user); 

視圖

<div id="welcome"> 
    Welcome, <?php echo $authUser['User']['username'];?> 
</div>