Я использую Zend_Auth с проектом с использованием doctrine.I считаю, что каждый самонастройки сделано правильно, и я могу войти вКак получить роль от Zend_Auth/Zend_ACL при использовании адаптера Doctrine? . Получать все работы вместе
мой адаптер выглядит следующим образом:
class Abra_Auth_Adapter_Doctrine implements Zend_Auth_Adapter_Interface {
protected $_resultArray;
private $username;
private $password;
public function __construct($username, $password) {
$this->username = $username;
$this->password = $password;
}
//based on feedbacks as response authenticate has changed to this
public function authenticate() {
$q = Doctrine_Query::create()
->from("Abra_Model_User u")
->leftJoin("u.Role r")
->where("u.username=? AND u.password=?", array($this->username,$this->password));
$result = $q->execute();
if (count($result) == 1) {
return new Zend_Auth_Result(Zend_Auth_Result::SUCCESS, $result->get("Mylibrary_Model_User"), array());//autoloaderNamespaces[] = "Mylibrary_" in application.ini
} else {
return new Zend_Auth_Result(Zend_Auth_Result::FAILURE, null, array("Authentication Unsuccessful"));
}
}
мои взгляды Abra_Controller_Pluging_Acl как этот
class Abra_Controller_Plugin_Acl extends Zend_Controller_Plugin_Abstract {
public function preDispatch(Zend_Controller_Request_Abstract $request) {
parent::preDispatch($request);
$controller = $request->getControllerName();
$action = $request->getActionName();
$module = $request->getModuleName();
$auth = Zend_Auth::getInstance();
if($auth->hasIdentity()){
$identity = $auth->getIdentity();
$roles = $identity["Role"];
$role = $roles["name"];
$role = (empty ($role) || is_null($role))? "regular" : $role ;
} else {
$role = "guest";
}
}
теперь есть Doctrine_Event неисправимая ошибка: spl_autoload() [function.spl-AutoLoad]: Класс Doctrine_Event не может быть загружен. я видел это post here, и мне интересно, как это может повлиять на мое использование Zend_Session, и это правда, что у меня есть apc.dll в моем php.thanks много для чтения этого
спасибо за то, что вы использовали письмо all.i've отредактируйте мое сообщение, чтобы вопрос 2 был более ясным. –
привет, я обновил сценарий с результатами и проблемами, обнаруженными при реализации ваших идей. Я надеюсь, что другие люди смогут вмешаться и теперь поделиться своим опытом. В любом случае –
Роль - это массив? Определена ли модель User с hasMany («Роль»)? Как отдельная мысль, почему вы хотите, чтобы адаптер auth преобразовывал все в массив. Doctrine создает граф объекта; почему бы не сохранить его? –