私は(管理者としてログインして)特定のユーザーとしてログインする方法を探しています(私はユーザーのリストから選択して、リストは既に存在しています)onclickを知らずにそれはパスワードですか?Cakephp:管理者としてログインonClick
すべてのユーザーは異なるパスワードを使用しているため、同等のパスワードはオプションではありません。
OK、質問が閉じました。ここに解決策があります:
P.S. ID 2のグループは管理グループです。
function loginasuser($user_id = null) {
if (!$user_id) {
$this->Session->setFlash(__('Invalid User.', true));
$this->redirect(array('action'=>'index'));
}
$data = $this->Auth->user();
if($data['User']['group_id'] == 2 || $_SESSION['Auth']['Admin']['id']==$user_id) {
$user_data = $this->User->find('first', array('conditions' => array('User.id' => $user_id)));
if ($user_data['User']['group_id']==2 && $user_data['User']['id']<>$_SESSION['Auth']['Admin']['id']) {
$this->Session->setFlash(__('You can only log in as user', true));
$this->redirect($this->Auth->redirect('/users'));
}
$_SESSION['Auth']['User']['id']=$user_data['User']['id'];
$_SESSION['Auth']['User']['username']=$user_data['User']['username'];
$_SESSION['Auth']['User']['group_id']=$user_data['User']['group_id'];
$_SESSION['Auth']['User']['client_id']=$user_data['User']['client_id'];
$_SESSION['Auth']['User']['created']=$user_data['User']['created'];
$_SESSION['Auth']['User']['modified']=$user_data['User']['modified'];
$_SESSION['Auth']['Admin']['id']=$data['User']['id'];
if($_SESSION['Auth']['User']['group_id']==2) {
$this->redirect($this->Auth->redirect('/ADMINHOME'));
}
else {
$this->redirect($this->Auth->redirect('/USERSHOME'));
}
}
else {
$this->Session->setFlash(__('Only admins are alowed to do so!', true));
$this->redirect(array('action'=>'index'));
}
}
そして、管理者として戻って、あなたができる:
<? if($_SESSION['Auth']['Admin']['id']>0) { ?>
<a href="/loginasuser/<?=$_SESSION['Auth']['Admin']['id'];?>">Go Back as Admin</a><? }
ありがとう、私は右のdirektionを指摘しました。私は誰かがそれを必要とする場合に備えて私の完全な機能を掲示します。 – Timur