/** * The file name to use for final storage, minus the extension * * @param string $controller Name of controller (or other id) * @return string */ public function getLongtermFileName($controller) { $date = new \MUtil_Date(); $name[] = $controller; $name[] = $date->toString('YYYY-MM-ddTHH-mm-ss'); $name[] = preg_replace('/[^a-zA-Z0-9_]/', '', $this->currentUser->getLoginName()); $name[] = $this->getOrganizationCode(); return implode('.', array_filter($name)); }
/** * The password should not contain the name of the user or the login name. * * @param mixed $parameter * @param string $password */ protected function notTheName($parameter, $password) { $on = $parameter != 0; if ($on) { $lpwd = strtolower($password); if (false !== strpos($lpwd, strtolower($this->user->getLoginName())) || null === $password) { $this->_addError($this->translate->_('should not contain your login name')); } } }
/** * Sets the user up as a new staff user * * @param \Gems_User_User $user * @param string $password */ protected function makeNewStaffUser(\Gems_User_User $user, $password) { $staff_id = $user->getUserId(); $sql = 'SELECT gul_id_user FROM gems__user_logins WHERE gul_can_login = 1 AND gul_login = ? AND gul_id_organization = ?'; try { $user_id = $this->db->fetchOne($sql, array($user->getLoginName(), $user->getBaseOrganizationId())); $currentTimestamp = new \MUtil_Db_Expr_CurrentTimestamp(); // Move to USER_STAFF $values['gup_id_user'] = $user_id; $values['gup_password'] = $this->hashNewPassword($password); $values['gup_reset_key'] = null; $values['gup_reset_requested'] = null; $values['gup_reset_required'] = 0; $values['gup_changed'] = $currentTimestamp; $values['gup_changed_by'] = $staff_id; $values['gup_created'] = $currentTimestamp; $values['gup_created_by'] = $staff_id; $this->db->insert('gems__user_passwords', $values); // Update user class $values = array(); $values['gul_user_class'] = \Gems_User_UserLoader::USER_STAFF; $values['gul_changed'] = $currentTimestamp; $values['gul_changed_by'] = $staff_id; $this->db->update('gems__user_logins', $values, $this->db->quoteInto('gul_id_user = ?', $user_id)); // Remove old password $values = array(); $values['gsf_password'] = null; $values['gsf_changed'] = $currentTimestamp; $values['gsf_changed_by'] = $user_id; $this->db->update('gems__staff', $values, $this->db->quoteInto('gsf_id_user = ?', $staff_id)); $user->refresh(\Gems_User_UserLoader::USER_STAFF); } catch (\Zend_Db_Exception $e) { \GemsEscort::getInstance()->logger->log($e->getMessage(), \Zend_Log::ERR); // Fall through as this does not work if the database upgrade did not run // \MUtil_Echo::r($e); } }
/** * Returns an initialized \Zend_Auth_Adapter_Interface * * @param \Gems_User_User $user * @param string $password * @return \Zend_Auth_Adapter_Interface */ public function getAuthAdapter(\Gems_User_User $user, $password) { $adapter = new \Zend_Auth_Adapter_DbTable($this->db, 'gems__user_passwords', 'gul_login', 'gup_password'); $pwd_hash = $this->hashPassword($password); $select = $adapter->getDbSelect(); $select->join('gems__user_logins', 'gup_id_user = gul_id_user', array())->where('gul_can_login = 1')->where('gul_id_organization = ?', $user->getBaseOrganizationId()); $adapter->setIdentity($user->getLoginName())->setCredential($pwd_hash); return $adapter; }
/** * Returns an initialized \Zend_Auth_Adapter_Interface * * @param \Gems_User_User $user * @param string $password * @return \Zend_Auth_Adapter_Interface */ public function getAuthAdapter(\Gems_User_User $user, $password) { $adapter = new \Gems_Auth_Adapter_Callback(array($this->project, 'checkSuperAdminPassword'), $user->getLoginName(), array($password)); return $adapter; }
/** * Returns an initialized \Zend_Auth_Adapter_Interface * * @param \Gems_User_User $user * @param string $password * @return \Zend_Auth_Adapter_Interface */ public function getAuthAdapter(\Gems_User_User $user, $password) { //Ok hardcoded for now this needs to be read from the userdefinition $configData = $this->loadConfig(array('gor_id_organization' => $user->getBaseOrganizationId())); $config = array('ip' => $configData['grcfg_ip'], 'authenticationport' => $configData['grcfg_port'], 'sharedsecret' => $configData['grcfg_secret']); //Unset empty foreach ($config as $key => $value) { if (empty($value)) { unset($config[$key]); } } $adapter = new \Gems_User_Adapter_Radius($config); $adapter->setIdentity($user->getLoginName())->setCredential($password); return $adapter; }