public function __set($key, $value) { switch ($key) { case 'id': $this->_id = strtolower($value); break; case 'email': $this->_email = strtolower($value); break; case 'password': $this->_password = renegade_security_hash($value); break; } }
require $_SERVER['DOCUMENT_ROOT'] . '/application/functions/SecurityFunctions.php'; if (count($_POST)) { $context = array(AMForm::kDataKey => $_POST); $form = AMForm::formWithContext($context); $form->addValidator(new AMPatternValidator('inputPassword', true, '/^[\\S]{4,}$/', 'Invalid password')); $isEmail = false; if (strpos($form->inputName, '@') !== false) { $form->addValidator(new AMEmailValidator('inputName', true, 'Invalid username')); $isEmail = true; } else { $form->addValidator(new AMPatternValidator('inputName', true, '/^[\\w]{4,}$/', 'Invalid username')); } if ($form->isValid) { $valid = false; $name = strtolower(trim($form->inputName)); $password = renegade_security_hash(trim($form->inputPassword)); $db = Renegade::database(RenegadeConstants::kDatabaseRedis, RenegadeConstants::kDatabaseUsers); $key = RenegadeConstants::kTypeUser . ':' . $name; $user = array('ok' => false, 'error' => 'invalid user'); $data = null; if ($isEmail) { $key = json_decode($db->get($key)); if ($key) { $name = $key; $key = RenegadeConstants::kTypeUser . ':' . $key; $data = $db->get($key); } } else { $data = $db->get($key); } if ($data) {
} if (strlen($form->inputPassword) > 0) { $form->addValidator(new MatchValidator('inputPassword', 'inputPasswordVerify', true, 'Password must match')); $form->addValidator(new InputValidator('inputPassword', true, 4, null, 'Password must be at least 4 characters long')); $form->addValidator(new InversePatternValidator('inputPassword', true, '/\\s/', 'Password may not contain spaces')); $context |= $kPasswordUpdate; } if ($context > 0) { $form->validate(); if ($form->isValid) { $user = Renegade::authorizedUser(); if ($context & $kEmailUpdate) { $user['email'] = $form->inputEmail; } if ($context & $kPasswordUpdate) { $user['password'] = renegade_security_hash($form->inputPassword); } $db = Renegade::database(); $db->put($user, $user['_id']); $response->ok = true; } else { $response->error = 'invalid'; $response->reason = 'validators'; $response->validators = array(); foreach ($form->validators as $validator) { if ($validator->isValid == false) { $error = new stdClass(); $error->key = $validator->key; $error->reason = $validator->message; $response->validators[] = $error; }