public function confirmAction() { if (Zend_Auth::getInstance()->hasIdentity()) { $this->_redirect('dashboard'); } // action body define("MEMBER", 2); $request = $this->getRequest(); $bootstrap = $this->getInvokeArg('bootstrap'); $db = $bootstrap->getResource('db'); // Start a transaction explicitly. $db->beginTransaction(); try { // Update the User $userMapper = new Application_Model_UserMapper(); $userMapper->confirm($request->getParams()); // Add the UserHasRole // By default a user has a member role $userHasRoleMapper = new Application_Model_UserHasRoleMapper(); $userHasRole = new Application_Model_UserHasRole(); $userHasRole->setUserId($request->getParam('id')); $userHasRole->setRoleId(MEMBER); // @TODO 2 is the role id of member; should be a constant? $userHasRoleMapper->save($userHasRole); $db->commit(); $url = $this->view->url(array('action' => 'login', 'controller' => 'auth')); // Display success message $this->view->msg = "Your registration is complete. You may now <a href='{$url}'>login</a>. "; } catch (Exception $e) { $db->rollBack(); throw new Exception($e->getMessage(), $e->getCode()); } //@TODO Send an email with the user's username and password for reference }
public function save(Application_Model_UserHasRole $userHasRole) { $data = array('user_id' => $userHasRole->getUserId(), 'role_id' => $userHasRole->getRoleId()); return $this->getDbTable()->insert($data); }