/** * @param \User\Model\User $user */ public function signup(\User\Model\User $user) { $user->setSalt(substr(md5(time() . rand(2000, 5000)), 0, 20)); $user->setCreatedDate(DateBase::getCurrentDate()); $user->setCreatedDateTime(DateBase::getCurrentDateTime()); $user->setPassword(md5($user->getSalt() . $user->getPassword())); $user->setRegisteredDate(date('Y-m-d')); $user->setRegisteredFrom(str_replace('www.', '', strtolower($_SERVER['HTTP_HOST']))); $user->setActiveKey(md5($user->getUsername() . $user->getPassword() . time())); $user->setActiveLink('http://' . $_SERVER['HTTP_HOST'] . '/user/active?u=' . $user->getUsername() . '&c=' . $user->getActiveKey()); $user->setRole(\User\Model\User::ROLE_MEMBER); $sl = $this->getServiceLocator(); $translator = $this->getServiceLocator()->get('translator'); /** @var $mapper \User\Model\UserMapper */ $mapper = $sl->get('User\\Model\\Usermapper'); $mapper->save($user); }
/** * @return array|null * @param \User\Model\User $user * todo l?y user theo email vĂ activeCode */ public function getUserNotActive($user) { if (!$user->getEmail() || !$user->getActiveKey()) { return null; } $select = $this->getDbSql()->select(array('u' => self::TABLE_NAME)); $select->where(['email' => $user->getEmail(), 'activeKey' => $user->getActiveKey()]); $select->limit(1); $query = $this->getDbSql()->buildSqlString($select); $results = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); if ($results->count()) { $data = $results->current(); $user->exchangeArray((array) $results->current()); return $user; } return null; }
/** * @param \User\Model\User $user * @return true|false */ public function checkExistsUserActive($user) { if (!$user->getActiveKey() || !$user->getUsername()) { return false; } $select = $this->getDbSql()->select(self::TABLE_NAME); $select->where(['username' => $user->getUsername(), 'activeKey' => $user->getActiveKey()]); $select->where('active IS NULL'); $query = $this->getDbSql()->buildSqlString($select); $result = $this->getDbAdapter()->query($query, Adapter::QUERY_MODE_EXECUTE); if ($result->count() == 1) { return true; } return false; }