ログインしてるときはユーザ名を、ログインしていないときはguestと表示

これまた簡単。

まずは、見せたいページ(/entries/readとする)のコントローラ、entries_controllerに以下の記述を追加。これにより、AUTHコンポーネントは有効にするけども、ログインしてないユーザを強制的に/users/login/に飛ばす処理は省かれる。

var $components = array('Auth');
function beforeFilter() {
$this->Auth->allow('read');
}

次に、同コントローラに以下の判定を入れる。$this->Auth->user()の戻り値は未ログインであればnullなので、nullの場合はログインした場合に取得できるであろうユーザデータと同じ形態でデータを突っ込む。

function read($param1 = null){
//認証情報取得
$user_data = $this->Auth->user();
if(is_null($user_data)){
$user_data['User']['username'] = 'guest';
}
$this->set("user_data",$user_data);

あとはview側で$user_data['User']['username']をechoで表示させればログイン/非ログインにより表示を変えることができます。

同様の考え方で、予めusersテーブルに権限設定用のカラム(groups)を作成しておき、上記同様に登録ユーザとゲストで格納する値を変えてやれば、ログインユーザとゲストで挙動を変えることが可能になります。

うわっ、簡単すぎる。。。なんでもっと早く手を出さなかったのだろうかと後悔していますw