protected function login() { $user = $this->getUserObject(); if ($user->isLogged()) { $this->_status = self::FAILURE; $this->_error_info = array('code' => self::E_ALREADY_LOGGED_IN, 'msg' => 'Already logged in! Log out first!'); } else { $credentials = array('username' => $this->getFirstElementValue('username'), 'password' => $this->getFirstElementValue('password')); try { $kiwi_user = new Kiwi_User($credentials); $this->_status = self::SUCCESS; $kiwi_user->login(); } catch (Kiwi_User_Authentication_Failed_Exception $e) { $this->_status = self::FAILURE; $this->_error_info = array('code' => self::E_INVALID_CREDENTIALS, 'msg' => 'Incorrect login or password!'); } } }
protected function validate_prihlasovaci_jmeno() { $elems = $this->_index->get('prihlasovaci_jmeno'); if (empty($elems)) { return self::STR_MISSING; } $username = $elems[0]->vo->value; if ($username === '') { return self::STR_MISSING; } return Kiwi_User::getUserId($username) === null ? self::STR_OK : self::STR_USERNAME_DUPLICITY; }
public function save() { parent::save(); $dbh = Project_DB::get(); switch ($this->_type) { case self::PERSON: $data = $this->_person->toArray(); $table = 'clientsp'; $table_d = 'clientsc'; break; case self::COMPANY: $data = $this->_company->toArray(); $table = 'clientsc'; $table_d = 'clientsp'; break; default: throw new Kiwi_Exception('Kiwi_Client type unknown'); } foreach ($data as $key => $value) { if ($value === null) { unset($data[$key]); } } $data['ID'] = $this->_data->ID; $columns = implode(', ', array_keys($data)); $column_pdo_hooks = ':' . implode(', :', array_keys($data)); $query = "REPLACE {$table} ({$columns}) VALUES ({$column_pdo_hooks})"; $stmt = $dbh->prepare($query); foreach ($data as $key => $value) { $stmt->bindValue(":{$key}", $value, is_int($value) ? PDO::PARAM_INT : PDO::PARAM_STR); } $query2 = "DELETE FROM {$table_d} WHERE ID=:ID"; $stmt2 = $dbh->prepare($query2); $stmt2->bindValue(':ID', $this->_data->ID, PDO::PARAM_INT); $dbh->exec("LOCK TABLES {$table} WRITE, {$table_d} WRITE"); $locked = true; try { $stmt->execute(); $stmt2->execute(); } catch (PDOException $e) { $dbh->exec('UNLOCK TABLES'); $locked = false; $ei = $e->errorInfo; throw Kiwi_Exception("Failed to save client - {$ei[2]} ({$ei[0]})"); } if ($locked) { $dbh->exec('UNLOCK TABLES'); } }
protected function validate_prihlasovaci_jmeno() { $elems = $this->_index->get('prihlasovaci_jmeno'); if (!empty($elems)) { return parent::validate_prihlasovaci_jmeno(); } $username = $this->getFirstElementValue($this->_type == self::TYPE_PERSON ? 'email' : 'firma_email'); if ($username === '') { return self::STR_MISSING; } return Kiwi_User::getUserId($username) === null ? self::STR_OK : self::STR_USERNAME_DUPLICITY; }