/** * ログインユーザーのデータを取得する * * @return array */ public static function loginUser() { $Session = new CakeSession(); $sessionKey = BcUtil::getLoginUserSessionKey(); $user = $Session->read('Auth.' . $sessionKey); if (!$user) { if (!empty($_SESSION['Auth'][$sessionKey])) { $user = $_SESSION['Auth'][$sessionKey]; } } return $user; }
/** * ログインしているユーザーのセッションキーを取得 */ public function testGetLoginUserSessionKey() { // セッションキーを未設定の場合 $result = BcUtil::getLoginUserSessionKey(); $this->assertEquals('User', $result, 'セッションキーを取得を正しく取得できません'); // セッションキーを設定した場合 BcAuthComponent::$sessionKey = 'Auth.Hoge'; $result = BcUtil::getLoginUserSessionKey(); $this->assertEquals($result, 'Hoge', 'セッションキーを取得を正しく取得できません'); }
/** * View用のデータを読み込む。 * beforeRenderで呼び出される * * @return void * @access private */ private function __loadDataToView() { $this->set('subMenuElements', $this->subMenuElements); // サブメニューエレメント $this->set('crumbs', $this->crumbs); // パンくずなび $this->set('search', $this->search); $this->set('help', $this->help); $this->set('preview', $this->preview); /* ログインユーザー */ $sessionKey = BcUtil::getLoginUserSessionKey(); if (BC_INSTALLED && isset($_SESSION['Auth'][$sessionKey]) && $this->name != 'Installations' && !Configure::read('BcRequest.isUpdater') && !Configure::read('BcRequest.isMaintenance') && $this->name != 'CakeError') { $this->set('user', $_SESSION['Auth'][$sessionKey]); if (!empty($this->request->params['admin'])) { $this->set('favorites', $this->Favorite->find('all', array('conditions' => array('Favorite.user_id' => $_SESSION['Auth'][$sessionKey]['id']), 'order' => 'Favorite.sort', 'recursive' => -1))); } } if (!empty($this->request->params['prefix'])) { $currentPrefix = $this->request->params['prefix']; } else { $currentPrefix = 'front'; } $this->set('currentPrefix', $currentPrefix); $currentUserAuthPrefixes = array(); if ($this->Session->check('Auth.' . $sessionKey . '.UserGroup.auth_prefix')) { $currentUserAuthPrefixes = explode(',', $this->Session->read('Auth.' . $sessionKey . '.UserGroup.auth_prefix')); } $this->set('currentUserAuthPrefixes', $currentUserAuthPrefixes); /* 携帯用絵文字データの読込 */ // TODO 実装するかどうか検討する /* if (isset($this->request->params['prefix']) && $this->request->params['prefix'] == 'mobile' && !empty($this->EmojiData)) { $emojiData = $this->EmojiData->find('all'); $this->set('emoji',$this->Emoji->EmojiData($emojiData)); } */ }
/** * ログイン状態にする * * @return void */ protected function _login() { $User = ClassRegistry::init('User'); $user = $User->find('first', array('conditions' => array('User.id' => 1))); unset($user['User']['password']); $this->BcBaser->set('user', $user['User']); $user['User']['UserGroup'] = $user['UserGroup']; $sessionKey = BcUtil::getLoginUserSessionKey(); $_SESSION['Auth'][$sessionKey] = $user['User']; }