示例#1
0
 public function indexAction()
 {
     $this->_helper->layout()->setLayout("blank");
     $auth = new Zend_Session_Namespace('Zend_Auth');
     $auth->unsetAll();
     return $this->_redirect('/index');
 }
示例#2
0
 function clearSessionBYStep($step)
 {
     $session_step = new Zend_Session_Namespace('bookcitytour');
     if ($step == 1) {
         $session_step->unsetAll();
         // 			$session_step->pickup_date =null;
         // 			$session_step->pickup_time = null;
         // 			$session_step->pickup_mins = null;
         // 			$session_step->step2 =0;
         // 			$session_step->return_date = null;
         // 			$session_step->return_time =null;
         // 			$session_step->return_mins =null;
         // 			$session_step->vehiclevaliable = null;
     } elseif ($step == 2) {
         $session_step->step3 = 0;
         $session_step->vehicle_id = null;
         //$data get parram store value only not array
         $session_step->price = 0;
         $session_step->guideavaliable = null;
         $session_step->vehicle_name = null;
         $session_step->guide_id = null;
         $session_step->step4 = 0;
         $session_step->guidename = null;
         $session_step->guideprice = null;
     } elseif ($step == 3) {
         $session_step->guide_id = null;
         $session_step->step4 = 0;
         $session_step->guidename = null;
         $session_step->guideprice = null;
     }
 }
示例#3
0
 /**
  * Finish Action
  */
 public function finishAction()
 {
     $filename = $this->_configDir . $this->_configFile;
     $config = $this->_store->config->production->resources;
     $config->frontController->defaultModule = 'index';
     $config->layout->layout = 'default/layout';
     $writer = new Core_Config_Writer_Yaml();
     $writer->setConfig($this->_store->config);
     if (is_writable($this->_configDir)) {
         $writer->write($filename);
         $this->_store->unsetAll();
         //remove install module
         $pathToModules = APPLICATION_PATH . '/modules/';
         $module = 'install';
         $pathToModule = $pathToModules . $module;
         if (is_dir($pathToModules) && is_writable($pathToModules) && is_dir($pathToModule)) {
             rename($pathToModule, APPLICATION_PATH . '/modules/.' . $module);
             $this->_helper->flashMessenger($this->view->__('Remove module Install'));
         }
         $this->_helper->flashMessenger("Installation complete");
         $this->_helper->redirector(false, false, false);
     } else {
         $this->view->filename = $filename;
         $this->view->config = $writer->render();
     }
 }
示例#4
0
 public function logoutAction()
 {
     Zend_Auth::getInstance()->clearIdentity();
     $session = new Zend_Session_Namespace('userSession');
     $session->unsetAll();
     $this->_redirect("/giris/index");
 }
 /**
  * Renders the first form:
  * a list of available document types (that can be configured in config.ini
  * and different upload fields
  *
  * @return void
  *
  */
 public function indexAction()
 {
     $session = new Zend_Session_Namespace('Publish');
     //unset all possible session content
     $session->unsetAll();
     $this->view->title = 'publish_controller_index';
     $form = new Publish_Form_PublishingFirst();
     $this->view->action_url = $this->view->url(array('controller' => 'form', 'action' => 'upload'));
     $this->view->showBib = $form->bibliographie;
     $this->view->showRights = $form->showRights;
     $this->view->enableUpload = $form->enableUpload;
     if (!$form->enableUpload) {
         $this->view->subtitle = 'publish_controller_index_sub_without_file';
     } else {
         $this->view->subtitle = 'publish_controller_index_sub';
     }
     //initialize session variables
     // TODO hide initialization routine
     $session->documentType = "";
     $session->documentId = "";
     $session->additionalFields = array();
     $config = $this->getConfig();
     if (isset($config->publish->filetypes->allowed)) {
         $this->view->extensions = $config->publish->filetypes->allowed;
     }
     // Quick bug fix for OPUSVIER-3564
     $translate = Zend_Registry::get('Zend_Translate');
     if ($translate->isTranslated('tooltip_documentType')) {
         $this->view->documentType['hint'] = 'tooltip_documentType';
     }
 }
 public function indexAction()
 {
     $ns = new Zend_Session_Namespace('login');
     $ns->unsetAll();
     $this->_redirect('manager');
     $this->_helper->viewRenderer->setNoRender();
 }
示例#7
0
 /**
  * Test if login passes with user not logged it
  */
 public function testLoginWithoutSession()
 {
     $this->setExpectedException('Phprojekt_Auth_UserNotLoggedInException');
     $authNamespace = new Zend_Session_Namespace('Phprojekt_Auth-login');
     $authNamespace->unsetAll();
     Phprojekt_Auth::isLoggedIn();
 }
 protected function _checkForModifications($initialize = false)
 {
     return true;
     // Just disable it for now
     $currentSignature = $this->_session->currentInstallerSignature;
     $installedPackages = $this->_packageManager->listInstalledPackages();
     $currentInstallerPackage = $installedPackages->offsetGet('core-install');
     if (!$currentInstallerPackage || strlen($currentSignature) == 40) {
         $signature = sha1(file_get_contents(__FILE__));
     } else {
         $signature = $currentInstallerPackage->getVersion();
     }
     // Initialize
     if (true === $initialize) {
         $this->_session->currentInstallerSignature = $signature;
         return true;
     } else {
         if ($signature != $this->_session->currentInstallerSignature) {
             $extractedPackages = $this->_packageManager->listExtractedPackages();
             $this->view->extractedPackageKeys = $extractedPackages->getArrayKeys();
             $this->view->extractedPackageKeys = array_diff($this->view->extractedPackageKeys, array($extractedPackages->getKeyByGuid('core-install'), $extractedPackages->getKeyByGuid('library-engine')));
             $this->_session->unsetAll();
             $this->_helper->viewRenderer->renderScript('_installerUpdated.tpl');
             return false;
         }
     }
     // Was not updated
     return true;
 }
 /**
  * Setzt alle Daten des Layouts aus den Einstellungsdateien
  * @throw Zend_Controller_Dispatcher_Exception
  */
 public function preDispatch()
 {
     parent::preDispatch();
     $modulename = $this->getRequest()->getModuleName();
     $this->view->modulename = $modulename;
     $controllername = $this->getRequest()->getControllerName();
     $this->view->controllername = $controllername;
     $actionname = $this->getRequest()->getActionName();
     $recordAccount = null;
     if (Zend_Registry::get('Dragon_Package_Registry')->isAvailable('DragonX', 'Account') && Zend_Registry::get('Dragon_Package_Registry')->isAvailable('DragonX', 'Emailaddress')) {
         $sessionNamespace = new Zend_Session_Namespace();
         if (isset($sessionNamespace->sessionhash)) {
             $logicSession = new DragonX_Account_Logic_Session();
             try {
                 $recordAccount = $logicSession->getAccount($sessionNamespace->sessionhash);
                 $this->view->sessionhash = $sessionNamespace->sessionhash;
                 Zend_Registry::set('recordAccount', $recordAccount);
                 $this->view->recordAccount = $recordAccount;
                 $logicEmailaddress = new DragonX_Emailaddress_Logic_Emailaddress();
                 $this->view->recordEmailaddress = $logicEmailaddress->getEmailaddress($recordAccount);
                 $logicDeletion = new DragonX_Account_Logic_Deletion();
                 $recordDeletion = $logicDeletion->getDeletion($recordAccount);
                 if (isset($recordDeletion)) {
                     $this->view->recordDeletion = $recordDeletion;
                 }
             } catch (Exception $exception) {
                 $sessionNamespace->unsetAll();
                 if ($modulename == 'homepage' && $controllername == 'account' && $actionname == 'logout') {
                     $this->_helper->FlashMessenger('<div class="alert alert-success">Abmeldung erfolgreich</div>');
                 } else {
                     $this->_helper->FlashMessenger('<div class="alert alert-error">Die Session ist abgelaufen. Profil muss neu angemeldet werden</div>');
                 }
             }
         }
     }
     $this->view->configApplication = new Dragon_Application_Config('dragon/application/application');
     $modulenamearray = explode('_', $modulename);
     $controllerarea = end($modulenamearray);
     $this->view->controllerarea = $controllerarea;
     switch ($controllerarea) {
         case 'homepage':
             $this->view->configNavigation = new Dragon_Application_Config('dragonx/homepage/navigation/homepage');
             break;
         case 'administration':
             if (!Zend_Registry::get('Dragon_Package_Registry')->isAvailable('DragonX', 'Account') || !Zend_Registry::get('Dragon_Package_Registry')->isAvailable('DragonX', 'Emailaddress')) {
                 throw new Dragon_Application_Exception_User('incorrect controller', array('controllername' => $controllername));
             }
             if (!isset($recordAccount)) {
                 $this->_helper->FlashMessenger('<div class="alert alert-error">Die Session wurde noch nicht gestartet oder ist abgelaufen. Profil muss angemeldet werden</div>');
                 $this->_redirect('account/showlogin?' . http_build_query(array('redirect' => $modulename . '/' . $controllername . '/' . $actionname)));
             }
             if (Zend_Registry::get('Dragon_Package_Registry')->isAvailable('DragonX', 'Acl')) {
                 $logicAcl = new DragonX_Acl_Logic_Acl();
                 $this->view->resources = $logicAcl->getResources($recordAccount);
             }
             $this->view->configNavigation = new Dragon_Application_Config('dragonx/homepage/navigation/administration');
             break;
     }
 }
 public function logoutAction()
 {
     $this->_helper->layout->disableLayout();
     $this->_helper->viewRenderer->setNoRender();
     $authNamespace = new Zend_Session_Namespace('identify');
     $authNamespace->unsetAll();
     $this->_redirect('/');
 }
 /**
  * Only page user sees, sets up the component and stores in session
  * 
  * @return void
  */
 public function index()
 {
     $ns = new Zend_Session_Namespace('quiz');
     $ns->unsetAll();
     $quiz = new MowattMedia_Components_Quiz();
     $values = $quiz->populate();
     $ns->quiz = serialize($quiz);
 }
示例#12
0
 public function logoutAction()
 {
     $this->getHelper('viewRenderer')->setNoRender();
     //remove other display
     $ud = new Zend_Session_Namespace("visitor");
     $ud->unsetAll();
     $this->_helper->redirector("index", "index", "default");
 }
示例#13
0
 /**
  * Remove a certain key from the store
  * @param String $key
  * @return $this
  */
 public function destroy($key = false)
 {
     if ($key) {
         unset($this->_session->{$key});
     } else {
         $this->_session->unsetAll();
     }
     return $this;
 }
示例#14
0
 public function logout()
 {
     $owner = UserMap::getUser();
     $dataToLog["owner_name"] = $owner["first_name"] . " " . $owner["last_name"];
     $dataToLog["owner_id"] = $owner["owner_id"];
     Mongo_Logger::logEvent($dataToLog, Mongo_Logs_LogFactory::LogoutOwer, Mongo_Interface::LOGS);
     $session = new Zend_Session_Namespace("LeadsChat_Owner_Auth");
     $session->unsetAll();
 }
示例#15
0
 function doDeleteAction()
 {
     $batch = new Am_BatchProcessor(array($this, 'deleteUser'));
     $context = null;
     if (!$batch->run($context)) {
         $this->sendDelRedirect();
     }
     $this->delDemoHistory($this->session->params['demo-id']);
     $this->session->unsetAll();
     $this->_redirect('admin-build-demo');
 }
 public function logoutAction()
 {
     if (Zend_Auth::getInstance()->hasIdentity()) {
         Zend_Auth::getInstance()->clearIdentity();
         $namespace = new Zend_Session_Namespace('client');
         $namespace->unsetAll();
         $this->_redirect('/account');
     }
     print __LINE__;
     exit;
     $this->_redirect('/account');
 }
 /**
  * login page
  *
  * @return void
  */
 public function indexAction()
 {
     $form = new Users_Form_Auth_Login();
     $form->setAction($this->view->url(array(), 'login'));
     if ($this->_request->isPost()) {
         if ($form->isValid($this->_getAllParams())) {
             if ($this->_manager->login($form->getValues())) {
                 /** redirect to previously */
                 $session = new Zend_Session_Namespace('Zend_Request');
                 if (isset($session->params)) {
                     $router = $this->getFrontController()->getRouter();
                     $url = $router->assemble($session->params, 'default', true);
                     $session->unsetAll();
                 }
                 if (empty($url) || strpos($url, 'login') !== false) {
                     $url = $this->getHelper('url')->url(array('module' => 'index', 'controller' => 'index', 'action' => 'index'), 'default', true);
                 }
                 $this->_flashMessenger->addMessage('Now You\'re logged in');
                 $this->_redirect($url, array('prependBase' => false));
             } else {
                 // small brute force shield
                 sleep(1);
                 // TODO: failure: clear database row from session
                 $message = 'Authorization error. Please check login or/and password';
             }
         } else {
             // small brute force shield
             sleep(1);
             // failure: form
             $message = 'Authorization error. Please check login or/and password';
         }
         $this->view->messages = $message;
     }
     if (Zend_Registry::isRegistered('fbConfig')) {
         $fbConfig = Zend_Registry::get('fbConfig');
         if ($fbConfig['appId']) {
             $this->view->facebook = true;
         }
     }
     if (Zend_Registry::isRegistered('twitterConfig')) {
         $twitterConfig = Zend_Registry::get('twitterConfig');
         if ($twitterConfig['consumerKey']) {
             $this->view->twitter = true;
         }
     }
     if (Zend_Registry::isRegistered('googleConfig')) {
         $googleConfig = Zend_Registry::get('googleConfig');
         if ($googleConfig['consumerKey']) {
             $this->view->google = true;
         }
     }
     $this->view->form = $form;
 }
 public function indexAction()
 {
     if ($this->getRequest()->isPost()) {
         $post = $this->getRequest()->getPost();
         if ($post['action'] == 'delete') {
             if (isset($post['deletes'])) {
                 $deletes = $post['deletes'];
                 foreach ($deletes as $index => $article_id) {
                     $article = $this->_article->fetchRow(array('id = ?' => $article_id));
                     if (null != $article) {
                         $article->delete();
                     }
                 }
             }
         } else {
             if ($post['action'] == 'filter') {
                 $this->_filter->article = $post['filter'];
                 $this->_helper->redirector('index');
             } else {
                 if ($post['action'] == 'reset') {
                     $this->_filter->unsetAll();
                 }
             }
         }
     }
     $user_id = null;
     if (!$this->_userInfo->canApprove) {
         $user_id = $this->_userInfo->id;
     }
     $data = $this->_article->findAll($user_id, $this->_filter->article);
     $messages = $this->_helper->flashMessenger->getMessages();
     $paginator = Zend_Paginator::factory($data);
     $pageNumber = $this->_getParam('page');
     $paginator->setItemCountPerPage(5);
     $paginator->setCurrentPageNumber($pageNumber);
     $this->view->messages = $messages;
     $this->view->filter = $this->_filter->article;
     $this->view->userCanApprove = $this->_userInfo->canApprove;
     $this->view->paginator = $paginator;
 }
 /**
  * redirectes to the following page according to session data
  * as a default redirects to portal
  */
 private function goAhead()
 {
     $session = new Zend_Session_Namespace(self::SESSION_NAMESPACE);
     $pathInfo = $session->pathInfo;
     if (is_null($pathInfo)) {
         // if previous location stored, redirect back
         $session->unsetAll();
         $this->_redirect($pathInfo);
         return;
     }
     // else go to portal
     $this->_helper->getHelper('Redirector')->goto('view', 'portal');
 }
 public function logoutAction()
 {
     if ($this->getRequest()->getParam('value') == 1) {
         $aut = Zend_Auth::getInstance();
         $aut->clearIdentity();
         $session_user = new Zend_Session_Namespace('auth');
         $session_user->unsetAll();
         $session_stock = new Zend_Session_Namespace('stock');
         $session_stock->unsetAll();
         $this->_redirect('/');
         exit;
     }
 }
示例#21
0
 private function clearSession()
 {
     $req = Zend_Controller_Front::getInstance()->getRequest();
     $module = $req->getModuleName();
     $controller = $req->getControllerName();
     $action = $req->getActionName();
     $clr = array(array("s" => "search_hotline", "m" => "cs", "c" => "cs-reports", "a" => "index"));
     foreach ($clr as $key => $r) {
         if ($module !== $r['m'] && $controller !== $r['c'] && $action !== $r['a']) {
             $ses_search = new Zend_Session_Namespace($r['s']);
             $ses_search->unsetAll();
         }
     }
 }
示例#22
0
 public function stepFinishAction()
 {
     $this->_install->setStep(Axis_Install_Model_Wizard::STEP_FINISH);
     $this->view->pageTitle = 'Axis was successfully installed';
     $this->view->user_login = $this->_session->user_login;
     $this->view->user_password = $this->_session->user_password;
     $this->view->crypt_key = $this->_session->store_cryptKey;
     $this->view->permitInstallation = $this->_session->permit_installation;
     $this->view->frontend = $this->_session->store_baseUrl;
     $this->view->backend = $this->view->frontend . '/' . $this->_session->store_adminUrl;
     $locale = $this->_session->current_locale;
     $this->_session->unsetAll();
     $this->_session->current_locale = $locale;
     $this->render('step-finish');
 }
 /**
  * Test of json save Module -in fact, default json save
  */
 public function testJsonSavePart2()
 {
     // Save
     $this->setRequestUrl('Core/module/jsonSave');
     $this->request->setParam('id', null);
     $this->request->setParam('name', 'test');
     $this->request->setParam('label', 'test');
     $this->request->setParam('saveType', 0);
     $this->request->setParam('active', 1);
     $this->request->setParam('nodeId', 1);
     $response = $this->getResponse();
     $this->assertContains('The module was added correctly', $response, 'Response was: ' . $response);
     // Reset cache for modules
     $moduleNamespace = new Zend_Session_Namespace('Phprojekt_Module_Module-_getCachedIds');
     $moduleNamespace->unsetAll();
 }
示例#24
0
 function indexAction()
 {
     $user_dates = new Zend_Session_Namespace();
     if ($user_dates->status == '1') {
         $this->_redirect('/profile/');
         return;
     }
     $this->view->title = "User authentication Page";
     $warnings = new Zend_Session_Namespace();
     if (!isset($warnings->status)) {
         $warnings->status = ' hide';
     }
     $this->view->username = $warnings->username;
     $this->view->status = $warnings->status;
     $this->view->error = $warnings->error;
     $warnings->unsetAll();
 }
示例#25
0
 static function clearSessionSearch()
 {
     $request = Zend_Controller_Front::getInstance()->getRequest();
     $module = $request->getModuleName();
     if ($module != 'transfer') {
         //Clear session in module transfer
         $session_transfer = new Zend_Session_Namespace('search_transfer');
         $session_transfer->unsetAll();
     }
     if ($module != 'user') {
         //Clear session in module user
         $session_search_user = new Zend_Session_Namespace('search_user');
         $session_search_user->unsetAll();
     }
     if ($module != 'subagent') {
         //Clear session in module sub agent
         $session_search_subagent = new Zend_Session_Namespace('search_subagent');
         $session_search_subagent->unsetAll();
     }
     if ($module != 'reports') {
         //clear session in module Report
         $session_search_rpt = new Zend_Session_Namespace('search_rpt');
         $session_search_rpt->unsetAll();
     }
     if ($module != 'agent') {
         //Cleat session in module agent
         $session_search_agent = new Zend_Session_Namespace('search_agent');
         $session_search_agent->unsetAll();
     }
     if ($module != 'exchange') {
         //Cleat session in module exchange
         $session_search_agent = new Zend_Session_Namespace('search_exhcange');
         $session_search_agent->unsetAll();
     }
     if ($module != 'acl') {
         //Cleat session in module acl
         $session_search_agent = new Zend_Session_Namespace('search_acl');
         $session_search_agent->unsetAll();
         $session_search_agent = new Zend_Session_Namespace('search_user_type');
         $session_search_agent->unsetAll();
         $session_search_agent = new Zend_Session_Namespace('search_user_type');
         $session_search_agent->unsetAll();
     }
 }
 /**
  * Finish Action
  */
 public function finishAction()
 {
     $filename = $this->_configDir . $this->_configFile;
     $config = $this->_store->config->production->resources;
     $config->frontController->defaultModule = 'index';
     $config->layout->layout = 'default/layout';
     $writer = new Core_Config_Writer_Yaml();
     $writer->setConfig($this->_store->config);
     if (is_writable($this->_configDir)) {
         $writer->write($filename);
         $this->_store->unsetAll();
         //TODO remove install module
         $this->_helper->flashMessenger("Installization complete <br /> " . $this->view->__('And remove module Install'));
         $this->_helper->redirector(false, false, false);
     } else {
         $this->view->filename = $filename;
         $this->view->config = $writer->render();
     }
 }
示例#27
0
 public function rollnoAction()
 {
     $rollNo = $this->getRequest()->getParam('roll_no');
     $application_basis = $this->getRequest()->getParam('application_basis');
     $candidate = new Admsn_Model_Member_Candidate();
     $status = $candidate->setRoll_no($rollNo)->exists();
     $applicant = new Zend_Session_Namespace('applicant');
     $applicant->unsetAll();
     if (isset($status['is_locked']) and $status['is_locked'] == 1) {
         throw new Zend_Exception($rollNo . ' has locked the application.', Zend_Log::ERR);
     } elseif ($status) {
         $applicant->roll_no = $status['roll_no'];
         $applicant->application_basis = $status['application_basis'];
     } else {
         $applicant->roll_no = $rollNo;
         $applicant->application_basis = $application_basis;
     }
     $this->_helper->json($status);
 }
示例#28
0
 public function Login($username, $pass)
 {
     $this->conn = new StoredConnections(false);
     $query = "call selectSalt('" . $username . "')";
     $salt = $this->conn->result($query);
     if (!is_array($salt)) {
         $this->test->type = "error";
         $this->test->info = "nouser";
         Zend_Session::destroy(true);
         return $this->test;
     }
     $pasWithSalt = $pass . $salt[0][0];
     $hash = sha1($pasWithSalt);
     $query = "call   selectLoginUser('" . $username . "','" . $hash . "')";
     $loginData = $this->conn->result($query);
     if (!is_array($loginData)) {
         $this->test->type = "error";
         $this->test->info = "nouser";
         Zend_Session::destroy(true);
         return $this->test;
     }
     if ($loginData[0][1] == 0) {
         $this->test->type = "error";
         $this->test->info = "nouser";
         Zend_Session::destroy(true);
         return $this->test;
     }
     $databaseInfo = new Zend_Session_Namespace('DatabaseInfo');
     $databaseInfo->unsetAll();
     $databaseInfo->setExpirationSeconds(2666);
     $databaseInfo->remoteIp = $_SERVER['REMOTE_ADDR'];
     $userData = array();
     $userData[0] = $loginData[0][0];
     $userData[1] = $loginData[0][1];
     $databaseInfo->userData = $userData;
     $databaseInfo->lock();
     $this->test->type = "ok";
     return $this->test;
 }
 protected function _finishPayment($state = 'active')
 {
     $viewer = Engine_Api::_()->user()->getViewer();
     $user = $this->_user;
     // No user?
     if (!$this->_user) {
         return $this->_helper->redirector->gotoRoute(array(), 'default', true);
     }
     // Log the user in, if they aren't already
     if (($state == 'active' || $state == 'free') && $this->_user && !$this->_user->isSelf($viewer) && !$viewer->getIdentity()) {
         Zend_Auth::getInstance()->getStorage()->write($this->_user->getIdentity());
         Engine_Api::_()->user()->setViewer();
         $viewer = $this->_user;
     }
     // Handle email verification or pending approval
     if ($viewer->getIdentity() && !$viewer->enabled) {
         Engine_Api::_()->user()->setViewer(null);
         Engine_Api::_()->user()->getAuth()->getStorage()->clear();
         $confirmSession = new Zend_Session_Namespace('Signup_Confirm');
         $confirmSession->approved = $viewer->approved;
         $confirmSession->verified = $viewer->verified;
         $confirmSession->enabled = $viewer->enabled;
         return $this->_helper->_redirector->gotoRoute(array('action' => 'confirm'), 'user_signup', true);
     }
     // Clear session
     $errorMessage = $this->_session->errorMessage;
     $userIdentity = $this->_session->user_id;
     $this->_session->unsetAll();
     $this->_session->user_id = $userIdentity;
     $this->_session->errorMessage = $errorMessage;
     // Redirect
     if ($state == 'free') {
         return $this->_helper->redirector->gotoRoute(array(), 'default', true);
     } else {
         return $this->_helper->redirector->gotoRoute(array('action' => 'finish', 'state' => $state));
     }
 }
 /**
  * Save the roles-user relation for one projectId.
  *
  * @param array   $roles     Array with the roles ID.
  * @param array   users      Array with the users ID.
  * @param integer $projectId The project ID.
  *
  * @return void
  */
 public function saveRelation($roles, $users, $projectId)
 {
     $where = sprintf('project_id = %d', (int) $projectId);
     foreach ($this->fetchAll($where) as $relation) {
         $relation->delete();
     }
     // Save roles only for allowed users
     $activeRecord = new Phprojekt_User_User();
     $result = $activeRecord->getAllowedUsers();
     foreach ($result as $user) {
         $userId = $user['id'];
         if (in_array($userId, $users)) {
             $clone = clone $this;
             $clone->roleId = $roles[$userId];
             $clone->userId = $userId;
             $clone->projectId = $projectId;
             $clone->save();
             // Reset cache
             $sessionName = 'Project_Models_ProjectRoleUserPermissions-fetchUserRole-' . $projectId . '-' . $userId;
             $roleNamespace = new Zend_Session_Namespace($sessionName);
             $roleNamespace->unsetAll();
         }
     }
 }