I use Zend_Auth to authenticate users and then store their details in the
default Zend_Auth session. This means that when a user edits his details,
these changes won't be reflected in the application until he
re-authenticates.
I want to avoid this problem as so:
When the user logs in we only store his user ID in a Zend_Auth session
On each request we fetch the user's details from the database in a
preDispatch() hook, using the user ID which was stored upon login in the
Zend_Auth session:
class Plugin_Auth extends Zend_Controller_Plugin_Abstract{ public
function preDispatch(Zend_Controller_Request_Abstract $request) {
if ($auth->hasIdentity()) { $id =
$auth->getIdentity()->id; $userModel = new Model_User();
$user = $userModel->fetchOne($id); // Where do I store this
user object ??? } }}
The problem is: where do i store this User object? I think we shouldn't use
sessions for this, since the goal of sessions is to persist data. There's no
need for persistence though, since we re-fetch the data from the database on
each request. Only the user ID must be persistent. Would storing the User
object in Zend_Registry be an option here?
--
View this message in context:
http://zend-framework-community.634137.n4.nabble.com/Updating-Zend-Auth-storage-after-editing-user-details-tp4658269.html
Sent from the Zend Framework mailing list archive at Nabble.com.